Skip to content

fix(deps): update dependency agno to >=3.1.2 - #3034

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/agno-3.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/agno-3.x

Conversation

@renovate

@renovate renovate Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
agno >=2.5.13 → >=3.1.2 age confidence

Release Notes

agno-agi/agno (agno)

v3.1.2

Compare Source

Changelog

New Features:

  • Conversation Compaction: Agent(compaction=True) keeps long sessions inside the context window by folding older turns into a summary. Stored messages are never rewritten: a CompactionRecord in the new agno_compactions table drives a derived model payload, so removing the record restores the full conversation. Tune with Compaction(model=..., compact_at_tokens=..., uncompacted_runs=...), fold on demand with agent.compact() / acompact(), and inspect run.compaction. With searchable=True the agent gets a search_compacted_history tool, a regex grep over the archived transcript. See cookbook. (#​9873)
  • Codex External Agent: Added CodexAgent, an adapter for OpenAI Codex built on the openai-codex SDK, alongside the Claude Agent SDK, LangGraph, DSPy and Antigravity adapters. Codex runs its own agent loop; the adapter translates its notifications into Agno run and tool-call events, maps each Agno session to one Codex thread (persisted when a db is set), and exposes sandbox, approval_mode, reasoning_effort, output_schema and MCP config. Works standalone and through AgentOS. See cookbook. (#​10901)
  • HyDE Query Transform: Added QueryTransformer as a new retrieval hook and HyDE as its first implementation: Knowledge(vector_db=..., query_transformer=HyDE()) searches with a hypothetical answer instead of the raw question, while rerankers still score against the original query. HyDE uses its own model, then the calling agent or team's model, then the framework default. See cookbook. (#​10527)
  • Browser Origin Policy: Added AgentOS(cors=CORSConfig(origins=..., origin_regex=..., merge_base_app=...)) and opt-in PublicSurface(enforce_browser_origins=True). One origin policy is now shared by CORS preflights, public run and cancel admission, auth error headers, workflow WebSockets and MCP aliases, and CORS is the outermost middleware so error responses carry consistent headers. cors_allowed_origins keeps its existing behaviour. See cookbook. (#​10869)
  • Configurable Follow-ups: followups: bool | FollowupConfig on Agent and Team. FollowupConfig sets a count range (num_followups or min_followups / max_followups), a separate model and custom instructions that go only to the follow-up call. The default prompt now stays within the answer's boundaries and no longer re-offers a request the answer declined. Existing num_followups callers keep getting exactly N suggestions. See cookbook. (#​10087)
  • Heabsy: Added Heabsy as an OpenAI-compatible model provider, also resolvable as "heabsy:<model>". See cookbook. (#​10828)
  • FlexAI: Added FlexAI as an OpenAI-compatible model provider for open-weight models, also resolvable as "flexai:<model>". See cookbook. (#​10871)
  • SixtyDBTools: New toolkit for the 60db hosted speech API: discover workspace voices and generate speech as WAV audio artifacts. See cookbook. (#​10786)

Improvements:

  • Page Sync Logs: Page synchronization now logs lock waits, discovery, progress every 25 pages and final counts, so long syncs show progress without a custom callback. Added an AgentOS cookbook that syncs documentation into PostgreSQL-backed knowledge pages and exposes them through the agent's filesystem. See cookbook. (#​10868)
  • OpenAIResponses & OpenRouterResponses: Recognise GPT-6 (OpenAI) and GPT-5/6 (OpenRouter) as reasoning models, so reasoning-state chaining and encrypted reasoning replay apply and tool-call follow-ups no longer fail with missing reasoning-item errors. (#​10830)
  • PerplexitySearch: Requests now send an X-Pplx-Integration: agno header so Perplexity can attribute traffic from the integration. (#​10827)

Bug Fixes:

  • Approvals: Each @approval tool call in a run now gets its own approval record, for agents and teams. Previously a second pause in the same run created no record and the next continue ran the new call against the approval resolved for the first one. (#​10812)
  • Model Response Cache: Pydantic output_schema classes are keyed by their JSON schema instead of their class name, so two schemas with the same name but different fields no longer share a cached response. (#​10621)
  • Usage Metrics: MessageMetrics.cache_write_tokens is now populated from OpenAI Chat Completions and Responses usage (#​10313) and from LiteLLM's prompt_tokens_details (#​10476). Previously it was always zero.
  • JsonDb: Tables are serialized to a staging file and published with os.replace, so a failed write leaves the last successfully saved table readable instead of a truncated file. (#​10794)
  • MongoDb & MongoVectorDb: session_name, search_content and keyword-search filters are regex-escaped, so a value like (draft no longer returns HTTP 500 from GET /sessions and GET /memories, and v1.2 no longer matches v1x2. (#​10709)
  • Tool Schemas: Annotated[T, ...] hints are unwrapped to T before JSON schema generation instead of falling through to an empty object schema. (#​10858)
  • SQLTools: Connection URLs are built with URL.create, so a password like p@ssword is no longer split into password p and host ssword@.... (#​10800)
  • FileTools: replace_file_chunk rejects negative, reversed and out-of-bounds line ranges with an error and leaves the file untouched; a valid replacement preserves the trailing newline. (#​10798)
  • GoogleCalendarTools: find_available_slots compares the full slot end against closing time on its start date, so a 45 minute slot is no longer offered at 16:30 for a 17:00 close and slots cannot cross midnight. (#​10878)
  • BaiduSearchTools, Searxng & SpiderTools: An explicit max_results=0 / fixed_max_results=0 now means no results instead of falling back to the default. (#​10877)
  • Readers: TextReader, MarkdownReader (#​10779) and JSONReader (#​10634) accept streams whose name is an integer or None, such as descriptor-backed temporary files, instead of returning nothing or raising.
  • Cookbooks: Fixed the DynamoDb import path in the DynamoDB storage README. (#​10788)

What's Changed

New Contributors

Full Changelog: agno-agi/agno@v3.1.1...v3.1.2

v3.1.1

Compare Source

Changelog

New Features

  • Live progress & cancellation for page sync: Knowledge.stream_sync_pages() / astream_sync_pages() yield typed PageSyncProgress snapshots plus one terminal SyncReport, and sync_pages / async_sync_pages accept an on_progress observer. A workflow function step can now yield StepProgress(content=..., data=...) before its StepOutput, emitted as a native StepProgressEvent under the existing workflow run/step ID — AgentOS streams it over the existing workflow REST/SSE route, and AgentOSClient.run_workflow_stream() parses it. Cancelling a sync now actually reaches the work instead of draining to the end. (#​10098)
  • Page sync reports name failed pages: SyncReport.failed_paths lists the site paths of pages that failed to publish/delete (capped at the first 20, like errors; failed keeps the full count; defaults to () so existing callers/stored reports are unaffected). Logs now name the page and its cause chain, e.g. Page sync failed for /guides/setup.md (SyncFailed: sync_failed <- ConnectError: [Errno 104] Connection reset by peer), plus a new Page delete failed for … warning on the prune path. (#​10729)

Bug Fixes

  • Retry transient page-fetch failures with backoff: on large corpora (e.g. docs.agno.com, 3,913 pages) 1–2 random pages failed per run with Connection reset by peer. Each attempt previously consumed the entire 30s fetch deadline (leaving no time to retry) and retries were too short — both are fixed with a bounded per-attempt timeout and backoff. (#​10730)
  • Complete page sync for Mintlify-style sites: large Mintlify sites (e.g. docs.langchain.com) synced as partial even when every page indexed — and a partial result skips pruning, so removed pages stayed searchable indefinitely. Discovery now skips links to non-page files (.json, .yaml, .xml, .csv, .pdf, images/audio/video, archives, fonts — while keeping .js/.css as valid page names like /guides/node.js), and handles nested indexes, MDX code blocks and redirect aliases. Off-host page links still block pruning (by design). (#​10726)

What's Changed

Full Changelog: agno-agi/agno@v3.1.0...v3.1.1

v3.1.0

Compare Source

New Features

  • User Management / Authorization (RBAC): a new agno.os.authz package adds role-based access control to AgentOS — a role store, scope policy, audit log, user directory and an admin router, with pluggable authorization engines (a native engine plus a fine-grained fga engine). Scopes and auth middleware were extended to enforce it.
  • AgentOS Filesystem: a new agno.fs filesystem (DbFileSystem) with dedicated /filesystem routes (list/read/manage files) backed by an agno_fs table.
  • MCP config / auth updates: refreshed MCP server config and built-in MCP auth handling.
  • AIMLAPITools: new toolkit for image, video, speech and transcription via the AI/ML API.

⚠️ Breaking Changes

  • Filesystem table re-key (agno_fs): v3.1 keys the filesystem table by (namespace, user_id, path), where user_id is the user partition ("" for the shared/no-user partition). A table created by an earlier release is refused with SchemaOutdatedError until upgraded — the re-key never runs automatically. Upgrade once, with the application stopped, using the script for your database (#​10530):

This affects you only if you use DbFileSystem. The table is managed by DbFileSystem (its own schema, buildable from a bare db_url), so it is deliberately not part of MigrationManager.

python libs/agno/migrations/migrate_filesystem_postgres.py   # PostgreSQL
python libs/agno/migrations/migrate_filesystem_sqlite.py     # SQLite
  • MCP default & lifecycle tools are now opt-in: MCPConfig(tools=[...]) now publishes exactly the tools you list — both default_tools and lifecycle_tools default to False. Previously a tools=[...] config also served the built-in default tools (and the lifecycle continue_run / cancel_run).

Bug Fixes

  • HITL: continuing a paused run with background + stream no longer duplicates the paused run in its own history.
  • OpenAIResponses: recover requests when the chained (previous) response is gone.
  • DB: an async delete that failed is no longer reported as a run that wasn't there — the two cases are distinguished.
  • Structured output: don't crash when a JSON fragment provides a scalar before a list.
  • Python tool results: distinguish Nonevalued results from missing variables.
  • Chunking: reject an overlap that is not smaller than the chunk size.
  • CSV readers: handle CR (\r) record endings.
  • CsvTools: honor explicit zero row limits.
  • Shell / workspace command tools: honor an explicit zero tail.
  • GeminiTools: store raw video bytes in the generate_video artifact.
  • GithubTools: build branch links from the repository web URL (#​10509); get_file_content preserves valid non-ASCII UTF-8 text
  • LocalFileSystemTools: read and write local files as UTF-8.
  • PubMed: preserve metadata for short abstracts.
  • Claude citations: preserve nullable document titles.

What's Changed

New Contributors

Full Changelog: agno-agi/agno@v3.0.11...v3.1.0

v3.0.11

Compare Source

Changelog

New Features:

  • Knowledge Retrieval Pipeline: Knowledge.search() now runs a knowledge level retrieval pipeline that can widen the candidate pool before a reranker reorders it, so rerankers no longer need to be implemented per vector db.
  • MMR Reranker: Added MMRReranker (Maximal Marginal Relevance) as a retrieval strategy that balances relevance against diversity so near-duplicate chunks do not crowd out the result set.
  • Page Source Relocation: Added Knowledge.inspect_page_source / ainspect_page_source and guarded migrate_page_source / amigrate_page_source to move an indexed documentation source to a new hostname. Migration is a dry run by default.
  • Recency Reranker: Added RecencyReranker, which blends the search score with an exponential decay on a timestamp so newer revisions outrank superseded ones. Built on the knowledge level pipeline, focused on pgvector.
  • Typed Page Tool Results: Added PageCommandResult and PageFileSystem.run_command_result / arun_command_result with explicit error, completeness and truncation metadata. Knowledge.get_tools(page_results=True) returns ranked SearchResult objects, including as MCP structured output.
  • Y-API: Added YAPI as an OpenAI-compatible model provider.
  • Cancellation Stage: Added a machine-readable cancellation_stage (PENDING, EXECUTING, INTERRUPTED, or unknown) to RunOutput, TeamRunOutput, WorkflowRunOutput and the run API schemas, so clients no longer match on the cancellation message text.
  • OpenAIResponses: Added use_previous_response_id so store=True no longer forces automatic previous_response_id chaining.

Improvements:

  • MCP Tool Schemas: Every argument on the AgentOS MCP tools now carries a description in its inputSchema, and get_sessions bounds limit and page to a minimum of 1.
  • Reasoning Detection: DeepSeek thinking-mode model IDs are recognised as reasoning models when served through any OpenAILike provider such as DashScope.
  • Tools: Removed phantom Args entries from tool docstrings and corrected streaming docstring parameter names in two model classes.

Bug Fixes:

  • Tool Hooks: Sync hooks that return function_call(**arguments) now work in the async execution path. Previously the chain treated the unawaited coroutine as the tool result and the tool body never ran.
  • MCP Server Card: Bare mcp=True now installs the same routing layer as MCPConfig, so the Host check and mount prefix apply on both spellings. Dropped the unimplemented ETag / If-None-Match CORS headers.
  • MCP Tools: Tool discovery over a raw ClientSession now collects every tools/list page instead of only the first.
  • AG-UI: Support ag-ui-protocol 1.0, including list-valued tool result content on resume.
  • Workflows over WebSocket: Version-pinned submissions are no longer queued without their pin, session ownership is checked on the write path, and a missing session id mints a new session like HTTP.
  • JSONReader: Preserve scalar JSON roots.
  • CSVReader: Read text streams, not only byte streams.
  • CSVReader & FieldLabeledCSVReader: Validate page_size before reading, so zero or negative values raise ValueError instead of silently returning no documents.
  • Structured Output Parsing: Ignore unmatched closing braces in prose when extracting JSON objects from model output.
  • GoogleDriveTools: Read text inside grouped shapes and honour line breaks when extracting .pptx text.
  • UTF-8 Files: read_yaml_file / write_yaml_file, AntigravityTools and AirflowTools now read and write files as UTF-8 regardless of locale.
  • DuckDbTools: Escape CSV delimiters.
  • TavilyTools: Forward extract options.
  • Cookbooks & Docs: Replaced dead links in knowledge sources and fixed a duplicated word in the V3 migration guide. Added Inspeximus memory and Confident AI observability examples.

Deprecations:

  • Vector DB Reranker: The reranker parameter on vector databases is deprecated in favour of the reranker on Knowledge, which applies to every vector db and supports async.

What's Changed

New Contributors

Full Changelog: agno-agi/agno@v3.0.10...v3.0.11

v3.0.10

Compare Source

Changelog

New Features:

  • Azure OpenAI Responses: Added AzureOpenAIResponses to use the Responses API with Azure OpenAI deployments. See cookbook.
  • Elasticsearch: Added Elasticsearch vector database with vector, keyword and hybrid search. See cookbook.
  • DocumentationMarkdown: Added a transform for Knowledge.sync_pages that converts Mintlify and Fumadocs components into plain Markdown. See cookbook.

Improvements:

  • MCPConfig: Added root_host, path and path_aliases to serve MCP on a dedicated hostname or a custom endpoint path.
  • MCP Server Card: /mcp/server-card now returns pretty-printed JSON.

Bug Fixes:

  • MCP Tools: Preserve AudioContent from MCP tool results as audio artifacts.
  • Slack: Deduplicate event retries by event_id instead of dropping them.
  • Remote Agents: RemoteAgent.role and RemoteTeam.role are now properties that return the role instead of a bound method; use .role, not .role().
  • Readers: TextReader, MarkdownReader and FieldLabeledCSVReader now accept text streams.
  • PPTXReader: Read text inside grouped shapes.
  • JSONReader: async_read() now uses the chunking strategy's async achunk().
  • Chunking: Preserve newlines and tabs when cleaning text before chunking.
  • CSVReader: async_read() keeps every data row across pages with RowChunking(skip_header=True).
  • SitemapReader: Keep filenames like myindex.html intact and continue discovery past an invalid .xml.gz sitemap.
  • Tools & Workflows: Keep falsy values like 0, False and [] in sync tool results and Parallel workflow step outputs.
  • agnoctl: agno connect now reads and writes client configs as UTF-8 (agnoctl 0.2.1).
  • DynamoDB: Serialize booleans as native BOOL values.

Breaking Changes:

  • CodingTools: run_shell is now opt-in (enable_run_shell=True), and restricted mode runs commands without a shell.
  • PublicSurface: With authorization=True and PublicSurface(mcp=True), MCP now accepts only localhost by default; add your domain to MCPConfig(allowed_hosts=[...]).

What's Changed

New Contributors

Full Changelog: agno-agi/agno@v3.0.9...v3.0.10

v3.0.9

Compare Source

What's Changed

Full Changelog: agno-agi/agno@v3.0.8...v3.0.9

v3.0.8

Compare Source

Changelog

New Features

  • Complete page reads: Knowledge.read_full_page and aread_full_page return an entire published page from one bounded SQL read and read-only snapshot. Both support revision pinning, character limits and deadlines. Oversized pages return None; missing or changed pages retain typed errors. Calls share the existing eight-slot page-read worker pool. (feat: add bounded full-page reads and shared fence tracking #​10063)
  • Shared PostgreSQL engine factories: create_postgres_engine and create_async_postgres_engine expose Agno's connection-pool and JSON serialization defaults with configurable SQLAlchemy options. Plain postgres:// and postgresql:// URLs select Psycopg 3 in these new factories; explicit drivers and TLS settings are preserved. Existing database constructor driver selection is unchanged. (feat: add PostgreSQL engine factories with shared defaults #​10062)

Improvements

  • Shared Markdown fence tracking: agno.utils.markdown.advance_code_fence exposes the page chunker's fence rules for application transforms that need to preserve code examples. A full-page cookbook demonstrates reads and prose normalization. (feat: add bounded full-page reads and shared fence tracking #​10063)
  • Magic Hour hosted MCP cookbook: a

❗ Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: uv.lock
Using CPython 3.14.8 interpreter at: /opt/containerbase/tools/python/3.14.8/bin/python3
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.14.*' and sys_platform == 'win32')
  cause: Because gradio[mcp]==6.28.0 depends on mcp>=1.21.0,<2.0.0 and all of:
             gradio[mcp]==6.28.0
             gradio[mcp]>=6.30.0
         depend on mcp>=1.21.0,<2.0.0, we can conclude that all of:
             gradio[mcp]==6.28.0
             gradio[mcp]>=6.30.0
         depend on mcp>=1.21.0,<2.0.0.
         And because all of:
             gradio[mcp]==6.28.0
             gradio[mcp]>=6.29.1
         depend on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.28.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.28.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.27.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.26.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.26.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.25.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.24.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.24.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.23.1 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.22.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.22.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.21.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.20.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.20.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.19.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.18.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.18.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.17.3 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.16.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.16.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.15.2 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.15.1 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.15.1 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.15.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.14.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.14.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.13.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.12.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.12.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.11.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.10.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.10.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.9.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.8.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.8.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.7.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.6.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.6.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.5.1 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.5.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.5.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.4.0 depends on mcp>=1.21.0,<2.0.0 and gradio[mcp]>=6.3.0 depends on mcp>=1.21.0,<2.0.0, we can conclude that gradio[mcp]>=6.3.0 depends on mcp>=1.21.0,<2.0.0.
         And because gradio[mcp]>=6.2.0 depends on mcp>=1.21.0,<2.0.0 and agno[mcp]>=3.1.2 depends on mcp>=2.1.0,<3.0.0, we can conclude that agno[mcp]>=3.1.2 and gradio[mcp]>=6.2.0 are incompatible.
         And because gradio>=5.50.0.dev0,<=5.50.1.dev1 depends on pydantic>=2.0,<=2.12.3 and gradio>=5.50.0,<=5.50.1.dev1 depends on pydantic>=2.0,<=2.12.3, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.3
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]==5.50.0.dev0
             gradio[mcp]==5.50.1.dev0
             gradio[mcp]>=6.2.0
          are incompatible.
         And because all of:
             gradio==5.50.0
             gradio==5.50.1.dev1
         depend on pydantic>=2.0,<=2.12.3 and all of:
             gradio>=5.48.0,<=5.49.1
             gradio>=6.0.0.dev0,<=6.0.0.dev1
         depend on pydantic>=2.0,<2.12, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.3
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]==5.50.0.dev0
             gradio[mcp]>=5.50.1.dev0,<=6.0.0.dev0
             gradio[mcp]>=6.2.0
          are incompatible.
         And because all of:
             gradio>=5.48.0,<=5.49.1
             gradio==6.0.0.dev1
         depend on pydantic>=2.0,<2.12 and gradio>=6.0.0.dev3,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]==5.50.0.dev0
             gradio[mcp]>=5.50.1.dev0,<=6.0.0.dev3
             gradio[mcp]>=6.2.0
          are incompatible.
         And because gradio>=6.0.0.dev4,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4 and gradio>=6.0.0.dev5,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]==5.50.0.dev0
             gradio[mcp]>=5.50.1.dev0,<=6.0.0.dev5
             gradio[mcp]>=6.2.0
          are incompatible.
         And because gradio>=5.48.0,<=5.49.1 depends on pydantic>=2.0,<2.12 and gradio>=5.49.0,<=5.49.1 depends on pydantic>=2.0,<2.12, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]>=5.48.0,<=5.49.0
             gradio[mcp]==5.50.0.dev0
             gradio[mcp]>=5.50.1.dev0,<=6.0.0.dev5
             gradio[mcp]>=6.2.0
          are incompatible.
         And because gradio==5.49.1 depends on pydantic>=2.0,<2.12 and gradio==5.50.0 depends on pydantic>=2.0,<=2.12.3, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]>=5.48.0,<=6.0.0.dev5
             gradio[mcp]>=6.2.0
          are incompatible.
         And because gradio>=6.0.0,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4 and gradio>=6.0.1,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, all of:
             gradio[mcp]>=5.48.0,<=6.0.1
             gradio[mcp]>=6.2.0
          are incompatible.
         And because gradio>=6.0.2,<=6.1.0 depends on pydantic>=2.11.10,<=2.12.4 and gradio==6.1.0 depends on pydantic>=2.11.10,<=2.12.4, we can conclude that all of:
             pydantic<2.0
             pydantic>2.12.4
         , agno[mcp]>=3.1.2, gradio[mcp]>=5.48.0 are incompatible.
         And because agno[google]>=3.1.2 depends on pydantic>=2.12.5 and your project depends on agno[google]>=3.1.2, we can conclude that your project, agno[mcp]>=3.1.2, gradio[mcp]>=5.48.0 are incompatible.
         And because your project depends on agno[mcp]>=3.1.2 and gradio[mcp]>=5.48.0, we can conclude that your project's requirements are unsatisfiable.

hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.

@semanticdiff-com

Copy link
Copy Markdown

Review changes with  SemanticDiff

@coderabbitai

coderabbitai Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 61c903da-04ff-45bb-881f-887d8fb892c8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@renovate
renovate Bot force-pushed the renovate/agno-3.x branch 3 times, most recently from b2353d3 to 644bd17 Compare September 21, 2026 14:15
@renovate renovate Bot changed the title Update dependency agno to >=3.0.10 fix(deps): update dependency agno to >=3.0.10 Sep 21, 2026
@renovate
renovate Bot force-pushed the renovate/agno-3.x branch 5 times, most recently from c03b55d to 7768be2 Compare September 23, 2026 18:16
@renovate renovate Bot changed the title fix(deps): update dependency agno to >=3.0.10 fix(deps): update dependency agno to >=3.0.11 Sep 23, 2026
@renovate
renovate Bot force-pushed the renovate/agno-3.x branch from 7768be2 to 01f11e5 Compare September 24, 2026 04:58
@renovate
renovate Bot force-pushed the renovate/agno-3.x branch from 01f11e5 to 52ef809 Compare October 1, 2026 14:33
@renovate renovate Bot changed the title fix(deps): update dependency agno to >=3.0.11 fix(deps): update dependency agno to >=3.1.0 Oct 1, 2026
@deepsource-io

deepsource-io Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 444e7d5...d76a029 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Shell Oct 8, 2026 10:55p.m. Review ↗
Python Oct 8, 2026 10:55p.m. Review ↗
Docker Oct 8, 2026 10:55p.m. Review ↗
Secrets Oct 8, 2026 10:55p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@renovate
renovate Bot force-pushed the renovate/agno-3.x branch from 52ef809 to 821ed5a Compare October 2, 2026 14:45
@renovate renovate Bot changed the title fix(deps): update dependency agno to >=3.1.0 fix(deps): update dependency agno to >=3.1.1 Oct 2, 2026
@renovate
renovate Bot force-pushed the renovate/agno-3.x branch from 821ed5a to d76a029 Compare October 8, 2026 22:55
@renovate renovate Bot changed the title fix(deps): update dependency agno to >=3.1.1 fix(deps): update dependency agno to >=3.1.2 Oct 8, 2026
@sonarqubecloud

sonarqubecloud Bot commented Oct 8, 2026

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants