Agno's Knowledge now takes a reranker that runs on every vector database. It fetches a wider pool of candidates, reorders them and returns the top results, so one reranker works across backends.
Agno's new MMRReranker uses Maximal Marginal Relevance to pick knowledge results that are relevant but unlike each other, so near-duplicate chunks stop crowding out other answers.
Agno's new RecencyReranker blends the search score with an exponential time decay, so a current policy or doc outranks the revision it replaced. It works best on PgVector.
Agno's RunOutput, TeamRunOutput and WorkflowRunOutput now carry cancellation_stage, a machine-readable PENDING, EXECUTING or PAUSED that tells clients where a cancelled run stopped.
Agno Knowledge adds inspect_page_source and migrate_page_source, a guarded way to point indexed documentation at a new HTTPS host. Migration is a dry run unless you pass dry_run=False.
Agno's PageFileSystem.run_command_result returns a PageCommandResult with explicit error, completeness and truncation fields, and Knowledge.get_tools(page_results=True) returns ranked SearchResult objects, including as MCP structured output.
Agno's OpenAIResponses adds use_previous_response_id. Set it to False to keep store=True for OpenAI's response logs while Agno sends its own history and instructions on every request.
Agno now ships a YAPI model class for Y-API, an OpenAI-compatible gateway that serves models from several vendors behind one endpoint. Use it as YAPI(id=...) or as a 'yapi:<model>' string.
Agno now awaits the result of a sync tool hook in the async tool path, so a hook that returns function_call(**arguments) runs the tool body under arun() and returns its real output.
Every argument on Agno's AgentOS MCP tools now carries a description in its inputSchema, and get_sessions rejects a limit or page below 1 with a clear validation error.
Agno's MCPTools now follows tools/list pagination on a caller-supplied ClientSession and registers the tools from every page, where it used to stop after the first page.
Agno now recognizes DeepSeek thinking-mode model IDs such as deepseek-v4-pro as native reasoning models when you serve them through DashScope or any other OpenAILike provider.
Agno's JSONReader keeps a scalar JSON root as one document, CSVReader reads text streams, both CSV readers reject a negative page_size, and TavilyReader sends its extract options to Tavily.
Agno's GoogleDriveTools reads text in grouped shapes and line breaks in .pptx files, the YAML helpers, AntigravityTools and AirflowTools use UTF-8 on every locale, and DuckDbTools escapes CSV delimiters.
Agno's new AzureOpenAIResponses model runs agents on Azure OpenAI through the Responses API, with API key or Entra ID authentication and the same tools, streaming and structured output as OpenAIResponses.
Agno now supports Elasticsearch as a vector database. One index serves vector, keyword and hybrid search, with filters, per-user isolation and sync and async clients.
Agno's DocumentationMarkdown transform converts Mintlify and Fumadocs components such as steps, tabs and callouts into plain Markdown while Knowledge.sync_pages publishes your docs.
Agno's MCPConfig now takes root_host, path and path_aliases, so an AgentOS MCP server can answer at its own hostname, a custom path and older URLs. The server card is pretty-printed too.
An AgentOS with authorization=True and PublicSurface(mcp=True) now applies the localhost-only host check to anonymous MCP requests. Add your domain to MCPConfig(allowed_hosts=[...]) before you upgrade.
Agno's TextReader, MarkdownReader and FieldLabeledCSVReader now read StringIO objects and files opened in text mode. Those inputs used to return no documents.
Agno's FixedSizeChunking and RecursiveChunking now keep newlines and tabs when they clean text, so code, lists and Markdown keep their structure in each chunk.
Agno's CSVReader.async_read() with RowChunking(skip_header=True) now keeps the first data row of every page after the first, so async and sync reads return the same rows.
Agno's PPTXReader now reads text inside grouped shapes, JSONReader async reads use your strategy's async chunking, and SitemapReader keeps pages like myindex.html and continues past a broken compressed sitemap.
Agno's DynamoDB storage now writes booleans as native BOOL values, so sessions, memories, traces and spans with a boolean field save without a ValidationException.
An Agno AgentOS with both PublicSurface and JWT authorization now serves anonymous users on its public routes and the full API to authorized tokens on one URL, so the Control Plane can manage it.
Agno fixed a scope check in AgentOS apps mounted inside another app, where a valid JWT or service-account token could reach management routes without the required scopes.
AgentOS now creates the durable queue table before workers begin polling, so a fresh Agno deployment stops logging errors before its first job and continuations run.
Agno debug logs now leave out PostgreSQL connection-pool chatter. Log output outside a terminal is plain text, and workflow step summaries move to DEBUG.
Agno's Knowledge.read_full_page returns an entire published page from one bounded read, pinned to the revision your search returned. It returns None when the page is over your character budget.
Agno's create_postgres_engine and create_async_postgres_engine build SQLAlchemy engines with Agno's pool and JSON settings. One tuned pool can then back your database, files and vectors.
Agno's agno.utils.markdown.advance_code_fence exposes the rules Agno's page chunker uses to find code fences. Your own Markdown transforms can use it to leave code examples untouched.
Agno's PublicSurface checks the lifecycle tools an AgentOS MCP server actually exposes, so a public server of custom functions starts with lifecycle_tools left on.
Agno's Knowledge can now sync a documentation site from its llms.txt. Page storage publishes each page's text and vectors together, so a failed refresh keeps the last good version.
AgentOS's new PublicSurface serves selected agents, teams, workflows and a stateless MCP server to anonymous users, with shared rate limits, request and output bounds, CORS and service authentication.
Agno's PageFileSystem toolkit lets an agent run ls, cat, rg and other read-only commands over published pages. It can't run a shell or write files, and every command is bounded.
An Agno agent's callable dependencies can now take run_input and session alongside agent and run_context, so they can build context from the user's question and earlier turns.
Agno's PageSearchConfig sets PostgreSQL planner options for one knowledge base's page search, scoped to its own search transactions. Unset values inherit the database setting.
Agno's AIMLAPI model now sends a fixed set of analytics-only attribution headers that you can inspect and override. Its default model moves from the retired gpt-4o-mini to gpt-5.6-luna.
Agno saves a failed workflow run with its final status before sending the last streaming event, so the run keeps its record and completed step outputs.
Agno page serving now retries sources reliably, deduplicates canonical links, binds sources at publish time, bounds page checkout and orders dependencies when an Agent run continues.
A new protocol_mode argument on MCPTools picks which MCP protocol era the client negotiates. It defaults to legacy, so existing servers are unaffected.
A new GET /mcp/server-card endpoint lists the tools your MCP server serves, with a configurable name, version and instructions, so a client can see what an instance offers before connecting.
AuthorizationConfig.excluded_route_paths lists the custom routes that skip auth, so one public route no longer means disabling authorization across AgentOS.
Remote entities now receive wire fields rather than the internal RunContext object, and run errors reach the client over the AG-UI stream instead of disappearing.
A chunk that fails to embed is now visible and recoverable: files that only partly embedded are marked partial, retries are available, and embedders raise instead of returning an empty vector. Check your error handling when you upgrade.
A new headers argument on MCPTools passes connect-time auth headers for Streamable HTTP and SSE directly, without building a StreamableHTTPClientParams object first.
The new GandrTools toolkit lets an agent turn text into speech through the Gandr TTS API, built for voice agents and covering 23 languages with six voices.
AgentOS now serves each agent, team, workflow, and toolkit you pass to MCPConfig.tools as its own named MCP tool, so a client calls it by name instead of through a generic run tool.
Agno agents can now provision and operate their own email inbox through Atomic Mail, registering it themselves with no account setup and no human step.
Run metadata now resolves component, then session, then call-site, so metadata passed to run() overrides the same key on agent.metadata. A behavior change worth checking when you upgrade.
For Gemini, Claude, Ollama, OpenRouter, and Moonshot, Agno now asks the provider whether a model supports reasoning before falling back to matching on the model id.
Strict mode no longer raises a KeyError when a tool schema leaves out the properties key, so schemas registered verbatim, including MCP server schemas, now work.
For Gemini 3 and later models, images and documents returned from tools are now nested inside the function response instead of being sent as sibling parts.
Set offload_tool_results=True and any tool result over 16,000 characters goes to AgentFS instead of into context, leaving a short envelope with a preview, the size, and a result_id the agent can read or search on demand.
Set media_storage and images, audio, video and files go to object storage instead of being persisted as base64 in the session row, leaving a small MediaReference behind. A 113 KB JPEG drops from about 151,000 characters to 2,897.
An accepted background run is committed to your database before it starts, so any replica can pick it up and finish it. The queue is backed by your database, and Redis becomes optional coordination rather than the source of truth.
Yash Pratap Solanky, Kaustubh Shukla, and 2 others
CodeMode gives an agent a persistent Python kernel in place of a long list of individual tool calls. The model gets execute and restart, writes real Python, and calls your tools as awaitable handles.
create_* now writes a private draft that serves no one until you publish it, published versions are immutable with rollback behind them, and compare-and-set guards reject a stale write with a typed 409 instead of clobbering a change.
Each run is now a row in a dedicated agno_runs table with real columns rather than being packed into the session record, so writes scale linearly and the item-size ceiling on stores like DynamoDB and Firestore is gone. A migration is required before v3.0 serves traffic.
Kaustubh Shukla, Yash Pratap Solanky, and 3 others
Per-user data isolation extends beyond sessions to metrics, schedules, evals, knowledge, components, entity memory and 17 vector databases, so you can run a multi-tenant product on a single AgentOS with real boundaries between users.
FinanceTools is a single finance toolkit with swappable data providers, so an agent pulls prices, fundamentals and market data through one consistent interface while you choose the source underneath.
Ramp Router joins as a model provider, and the xAI SuperGrok model now authenticates with device-code OAuth so you can connect it without pasting a long-lived key.
Every toolkit now carries a stable id that AgentOS uses to reference its tools, so a tool reference stays valid across restarts and deploys instead of depending on load order.
Cerebras and CerebrasOpenAI now default to gpt-oss-120b, Gemini defaults to 3.7 Flash, and Groq’s deprecated llama-3.3-70b-versatile default is now openai/gpt-oss-120b. Setting a model id explicitly is unaffected.
The condensed reference for every 2.x user upgrading to v3.0, covering storage, AgentOS, agents, teams and workflows, tools, knowledge, the scheduler, evals and models. The database migration is mandatory.
New StudioRunnerTools hands out run access on its own: tools to list the components an orchestrator may run and to run one by id, with no create, edit or delete anywhere in the toolkit. Dispatched runs execute as the calling user.
The A2A stream client no longer drops Task-level metadata when it breaks on a status-update event. Metadata attached to a task now survives the stream instead of being lost partway through.
A workflow run started over WebSocket now uses the version you selected rather than falling back to another. The version you pin is the version that executes.
Paused member runs are now persisted, so a team HITL resume works after the session is reloaded. An approval that arrives after a reload resolves against the run that was waiting for it.
Loading a persisted component now keeps its toolkit instructions instead of dropping them, so a rehydrated agent behaves the same as it did before it was saved.
New AdvisorTools lets an agent run a fast, cheap model as its primary and consult heavier models only when it decides a problem needs one. Hand it a list of advisors and it can ask one by name or ask them all and compare.
New OpenRouteServiceTools swaps an LLM's distance guesses for a real routing engine. Pass plain place names and an agent gets back accurate distances, real drive times, and turn-by-turn routes from live map data.
You can now override the FileSystemTools toolkit name instead of using the default, which makes it practical to mount more than one filesystem toolkit on a single agent and name each for the job it does.
Loading a saved component no longer drops tools that are identified by their toolkit-qualified name. Persisted agents now restore their full tool set instead of coming back with pieces missing.
A top-level confirmation now carries through to tool_execution when a requirement is deserialized, so an approval resolves against the right tool after a save-and-reload round trip.
An explicit 0 for temperature, top_k, seed, frequency_penalty, or presence_penalty is no longer dropped before the request. Cohere calls now honor a deliberate zero instead of silently ignoring it.
New SmallestTools lets an agent generate speech with Smallest AI's Lightning models. Call text_to_speech to turn text into natural audio, or get_voices to see what's on offer.
OpenSearch is now a supported vector database in Agno through agno.vectordb.opensearch. It handles vector, keyword, and hybrid search, in both sync and async variants, so you can back a knowledge base…
New AgentOSTools gives an agent a read-only ops view of the AgentOS it runs on. Point it at your database and it can report on usage, latency, failures, schedules, evals, components, and pending…
Traces now report latency and error stats grouped by agent, team, workflow, or endpoint, along with tool and model call stats, so you can see exactly where time goes and where things fail rather than…
delete_by_metadata now binds metadata keys and values as query parameters rather than inlining them, so deletions run correctly and safely regardless of what the metadata contains.
TwelveLabsTools now supports Marengo embeddings. Marengo embeds text into the same latent space TwelveLabs uses for video, audio, and image, so a written query and a video clip come out as vectors you…
stream_sub_agent_events is now supported across all context providers, not just a subset. Any provider that runs a sub-agent can surface its events as they happen, so you get consistent real-time…
A new AdanosTools toolkit gives agents multi-source stock sentiment and Reddit cryptocurrency sentiment from Adanos, drawing on signals across Reddit, X, financial news, and prediction markets.
New in Agno: SuperserveTools, which lets an agent write and run its own code inside a Superserve sandbox. The sandbox is a Firecracker microVM, and the part that matters is that it persists.
We've added an observability integration with The Context Company, so you can trace Agno agent runs and understand how they behave in the wild. Setup is one line.
agno create is now interactive, prompting you for a starter template and a project name instead of making you get the invocation exactly right up front.
Tavily searches now accept domain, date range, topic, and country filters, so you can pin an agent's searches to exactly the sources, timeframe, and region that matter.
Oxylabs website scraping can now return full page content as Markdown, so an agent receives clean, structured text it can actually read and reason over rather than raw HTML.
ValkeyDb brings Valkey to Agno as an in-memory database for agents, teams, and workflows. Your sessions and state live in memory, so reads and writes stay quick under load.
Valkey also lands as a vector store, and it runs both vector and keyword search from the same backend. You can do semantic and lexical retrieval over one in-memory store.
New RedmineTools lets an agent work directly in Redmine, the open source project tracker. It can find and read issues, create and update them, leave comments, and log time against them.
Saving session context no longer makes an extra model call it didn't need. Cutting that redundant round trip trims latency and token cost on every save, so long-running sessions stay leaner without…
AG-UI now extends its support for human-in-the-loop confirmation, input, and feedback, so more of your approval and input flows work natively through the interface.
Memory and profile extraction from conversations is now more dependable, so agents pick up and retain the right details about a user more consistently.
MCP tools that respond with just structuredContent and no text block now work correctly. Agno reads the structured payload as intended, so tools following that response shape integrate without special…
Set AgentOS(mcp_auth=...) to put standards-based OAuth in front of your /mcp endpoint. Instead of relying only on tokens, you can gate MCP access through a proper OAuth flow, so connecting clients…
agno connect gains the controls you need once you're wiring up more than one target. You can select multiple targets at once, tear a connection down with disconnect, and lean on restart hints when a…
A2A scope mappings now live on the interface itself, with proper support for custom mount prefixes. Routes served under a non-default prefix get the scope checks they're supposed to, so authorization…
A new CLI ships as agnoctl on PyPI and runs as agno. agno connect discovers an AgentOS, mints per-client PATs, and writes MCP config for Claude Code, Claude Desktop, Cursor, Codex, and ChatGPT, then…
A new agno.eval layer gives you a proper suite runner built from Case and run_cases/arun_cases, plus an argparse CLI that supports team subjects and numeric judge scoring.
check_route_scopes now runs identically across JWT, service-account, and MCP paths, and a data-driven get_resource_context_from_path replaces the old hardcoded substring matching.
MCP components now resolve through shared resolve_* helpers that make create_fresh deep copies instead of sharing singleton state, and a fresh session is minted per call whenever session_id is…
A new TwelveLabsTools toolkit lets your agents analyze videos and generate multimodal text embeddings, so video becomes something an agent can search, summarize, and reason over rather than a black…
A new SofyaTools toolkit gives agents search, extraction, and research in one place, so they can find sources, pull content, and dig into a topic through a single integration.
A new SearchApiTools toolkit wires up SearchAPI's Google, News, Images, and YouTube endpoints, so an agent can run several kinds of search from one toolkit instead of stitching together separate…
StudioTool is now StudioTools, bringing it in line with the plural naming the other toolkits use. A backward-compatible alias keeps the old name working, so existing code runs unchanged while you move…
LocalFileSystemTools can now read files, not just write them, once you set the enable_read_file flag. By default it keeps every file operation inside your target_directory, so an agent stays within…
Land your traces in ClickHouse and let a column store built for analytics carry the load. It ingests heavy trace volume and runs fast OLAP scans, so aggregating and slicing observability data stays…
Run AgentOS on FastAPI >= 0.137 and get_routes() returns every registered route. You get the full picture of your deployment when you introspect it, rather than a partial list.
Turn on native structured outputs and JSON schema outputs for LiteLLM per provider with supports_native_structured_outputs or supports_json_schema_outputs.
Google toolkits now share one auth base class, so authentication works consistently across all of them. You get a cleaner, more predictable foundation and integrations that are easier to maintain.
Surface as many suggested prompts as your interface calls for. AgentOS drops the three-per-entity cap on quick_prompts, so you shape the list around your users instead of an arbitrary limit.
Agno now checkpoints runs at the tool-batch level and exposes a unified /continue endpoint that handles both regenerating a run and forking it, along with support for forking sessions.
A new StudioTool toolkit lets an agent dynamically compose other Agno primitives, assembling agents, teams, and workflows at runtime rather than wiring them all up ahead of time.
The PII guardrail's custom_patterns now accepts raw regex strings and compiles them for you, so you can add a pattern inline instead of pre-compiling it yourself.
The registry now deduplicates toolkits by their type, name, and function set, so a toolkit that gets re-instantiated collapses onto the existing entry instead of adding a duplicate.
AgentOS now exposes create, read, update, and delete endpoints for learnings, giving you direct control over what an agent has learned instead of treating that store as write-only.
For providers that use json_object structured output, Agno now passes the JSON formatting instructions into the follow-up prompt as well, not just the initial one.
A ready-made Slack app manifest now ships for the AgentOS Slack interface (v2.6.13), so you can create the Slack app from a known-good configuration instead of assembling scopes and settings by hand.
Paused workflows now surface approval requests and take responses over a live socket connection (v2.6.13), so a reviewer can approve or reject mid-workflow in real time rather than polling for pending…
The registry gained knowledge and managers support (v2.6.10), and the AgentOS registry now auto-populates from the agents, teams, and workflows you've defined (v2.6.13).
Context providers now stream their sub-agent events through to the parent run (v2.6.10, refined in v2.6.13), so a provider that runs its own sub-agent surfaces that work as it happens instead of going…
A new Latitude observability example sends traces via OpenInference, giving you a ready reference for piping agent traces into Latitude rather than figuring out the integration yourself.
A new worked WorkOS RBAC example gives you a concrete starting point for wiring role-based access control into an AgentOS deployment, instead of assembling the pattern from scratch.
The AG-UI integration now emits state events, so a front-end built on AG-UI can follow an agent's state as it changes and react in real time rather than waiting for the run to finish.
A new Manifest adds per-entity UI metadata to AgentOS, so every agent, team, and workflow carries its own presentation details rather than sharing one generic look.
The Parallel integration now reaches beyond web search. v2.6.11 added tools for Parallel's Task API and Monitor API, so an agent can kick off task executions and track their progress rather than only…
Context providers can now stream the events from their sub-agents, so a provider that runs its own agent surfaces that work as it happens instead of going quiet until the final result.
The registry now supports knowledge and managers alongside the components it already tracks, so you can register and reuse those pieces through the same mechanism rather than wiring them up by hand…
The RunCompleted event now carries a files field, so anything listening for run completion can grab the files a run produced directly off the event instead of fetching them separately.
The model string parser now recognizes the google-interactions provider, so you can select GeminiInteractions through a model string rather than importing and constructing the class yourself.
Post-hooks and observability integrations can now read the complete resolved approval record, including resolved_by and resolved_at, through run_response.metadata["approval"].
Claude on Anthropic, AWS, and VertexAI used to silently drop an explicit 0 for temperature, top_p, or top_k, since a bare truthiness check treated 0.0 as unset and fell back to the API default near…
You can now run Google's two most capable managed agents, autonomous research and a code-running sandbox, without leaving the Gemini setup you already have.
EvalsDomainConfig drops its unused available_models field, leaving the top-level AgentOSConfig.available_models as the only supported source for the model dropdown in the Evals UI.
Renamed gemini-3-flash-preview to gemini-3.5-flash across the Gemini Interactions cookbooks, so copied examples run against the current model ID instead of the preview name.
A new GeminiInteractions model class builds on Google's stateful Interactions API, so agents can talk to the interactions endpoint directly instead of Gemini's generateContent.
AgentOS now offers an opt-in per-user data isolation layer for authenticated endpoints, so one deployment keeps each user's data separated rather than pooling it together.
Qdrant's async_insert no longer calls the sparse encoder twice. Hybrid inserts now encode once, cutting wasted compute on every write to a Qdrant collection.
Reviewers no longer have to chase pending approvals one at a time. The Slack interface now supports multi-row approvals with all pause types covered, so a reviewer can resolve several pending…
WikiContextProvider now supports a NotionDatabaseBackend source, so you can point an agent's wiki at a Notion database and have it query that content directly rather than maintaining a separate store.
Registering two tools under the same name on an agent or team used to fail quietly, with one definition shadowing the other and no signal as to why a tool misbehaved.
aget_last_run_output no longer returns None when agent.id is auto-generated during arun(). You get the run output back whether or not you set an explicit agent ID, so code that reads the last result…
LearningMachine now injects its context into the Team system prompt, not just the agent path. Teams get the same learned context that individual agents already received, so their behavior reflects it…
Agno now supports multimodal inputs in the Gemini File Search API, so agents can index and semantically search across images alongside text rather than text alone.
Fetch tools that follow links are an SSRF and data-exfiltration risk in production. LLMsTxtTools now takes an allowed_hosts parameter that closes that surface: an agent only fetches from hosts you…
The AgentOS scheduler now supports Mongo and AsyncMongo as backing stores, so teams already running on Mongo can schedule recurring runs of agents, teams, and workflows without standing up a separate…
Conditional branches often wrap fragile work like external calls or tool execution, and until now a failure inside one would propagate unhandled and halt the run.
SlackContextProvider has been simplified to a single, self-documenting configuration surface. The for_bot_read(), for_assistant_search(), and for_write() factory methods have been removed in favor of…
A round of fixes makes Slack-backed agents more predictable in production. The interface now gracefully falls back to public channels when the groups:read scope is missing, rather than failing…
A new Workspace toolkit gives agents structured access to a configurable root directory, with operations grouped by capability and destructive actions gated by human-in-the-loop confirmation by…
WebContextProvider now ships with a Parallel backend, giving agents access to high-quality web search and page fetch through Parallel's hosted research service.
AgentOS now runs agents built with the Claude Agent SDK, LangGraph, and DSPy alongside native Agno agents, all through a unified AgentProtocol interface.
The new agno.context API lets agents reach into filesystems, web sources, SQL databases, Slack, Google Drive, and MCP servers as natural-language tools.
AgentFactory, TeamFactory, and WorkflowFactory let you create agents, teams, and workflows dynamically at runtime instead of defining them statically at startup.
Teams now support approval flows through both the API and the AgentOS chat interface. Sensitive actions can be paused for explicit human sign-off before they execute, giving operators a clear control…
Background runs streamed over Server-Sent Events can now reconnect and resume after a disconnection or page refresh. Operators rejoin the run exactly where they left off, with full context preserved.
The /sessions endpoint returns agent, team, and workflow sessions in a single response by default. This gives a complete view of session activity in one call, which is the most common use case for…
We fixed an issue where custom db table names set on components were being overwritten with defaults when those components were loaded back from configuration.
GitHubConfig now accepts a repository override at the request level, allowing agents that work across multiple repositories to specify the target repo per call rather than being locked to a single…
A new option lets you turn off file citations in Claude responses. This is useful when citations add noise to the output, for example in conversational flows, summarization tasks, or any context where…
We fixed an issue where knowledge databases were not being built live during configuration API calls, causing agents to operate without their knowledge base until a separate build step was triggered.
We fixed an issue where a shared HTTP/2 client was being injected across all model providers, causing connection conflicts and transient failures under concurrent load.
We fixed an issue where parameters automatically injected by the framework, such as agent, team, and run_context, were appearing in user_input_schema, presenting users with fields they should never…
We fixed an issue where the memory pipeline gate check did not account for extra_messages, causing memory summarization to be skipped in runs where additional context messages were provided alongside…
LLMsTxtTools and LLMsTxtReader add native support for the llms.txt standard — a Markdown-based file that websites publish at /llms.txt to provide LLMs with a concise, structured index of their…
SalesforceTools gives agents native access to Salesforce CRM data, making it straightforward to build agents that query records, surface pipeline information, triage support cases, or answer questions…
We fixed an issue where knowledge_table was being read from agent.db instead of contents_db, causing knowledge lookups to fail or return incorrect results when the two databases were configured…
We fixed two issues in the AG-UI interface: reasoning events are now correctly emitted as they occur so users can follow the model's thinking in real time, and input_content now stores the current…
We fixed an issue where workflow steps that included file path images were not being converted correctly, causing those images to be dropped or mishandled when passed between steps.
We fixed handling of response.reasoning_summary_text.delta events in OpenAIResponses so that reasoning content is streamed incrementally as it is generated rather than being dropped or buffered.
We fixed TeamSession.from_dict() so it no longer mutates the input mapping it receives. Previously, loading a team session from a dictionary could silently modify the original data structure, causing…
A new Azure AI Foundry Claude model provider gives teams a first-class way to run Claude models through Microsoft's Azure AI infrastructure, with the same configuration patterns used across other Agno…
OpenAIResponses now supports background mode for the OpenAI Responses API, allowing long-running agent tasks to execute asynchronously without holding an open connection.
Skills—reusable, instruction-based capability modules—can now be attached to Teams directly via the skills parameter, giving the team leader access to domain expertise without delegating to a member…
SessionSummaryManager now exposes last_n_runs and conversation_limit parameters, giving precise control over how much of the conversation history is fed into summary generation.
Resolved an issue where a shared HTTP/2 client was being injected across concurrent OpenAI and Azure OpenAI requests, causing transient 400 errors under load.
Resolved a bug where TeamSession.get_messages could return the same message more than once, causing downstream logic that relies on message history to process duplicates.
Resolved a crash in GitHubTools where get_pull_requests would raise an IndexError if the repository contained fewer pull requests than the specified limit.
Resolved an issue where .msg, .xlsx, and .xls files were not recognized on upload due to missing MIME type mappings. These file types now upload correctly without requiring manual workarounds.
Agents and teams can now be configured with fallback models that activate automatically when the primary model fails, whether from rate limits, outages, context window overflows, or other retryable…
AzureBlobConfig now supports Shared Access Signature (SAS) token authentication as an alternative to connection strings and service principal credentials.
Claude 4.6 and later models do not support assistant message prefill, which previously caused silent failures or malformed requests when conversations ended with an assistant turn.
ReliabilityEval has been extended with more precise evaluation capabilities: expected tool calls can now be matched as a subset of actual calls rather than requiring an exact full match, argument…
The /sessions list endpoint now includes a significantly expanded set of fields per session, giving dashboards, monitoring tools, and integrations a more complete picture of each session without…
Reader classes now correctly propagate the chunk_size parameter to the default chunking strategy they apply when no explicit chunking configuration is provided.
SchedulerTools Gives agents programmatic control over the AgentOS Scheduler, allowing them to create, list, update, enable, disable, trigger, and delete cron schedules as part of a run.
Resolved an unhandled msg_too_long error in the Slack streaming path that caused the agent to fail silently or crash when a streamed response exceeded Slack's message length limit.
Resolved a collection of bugs affecting agents deployed with Coda, including issues in CodingTools, Slack interface behavior, team streaming output, and the learning pipeline.
DoclingTools gives agents the ability to convert documents on demand using the Docling library — accepting PDFs, DOCX, PPTX, XLSX, HTML, images, audio, and video files as input and exporting to…
We’ve introduced GoogleSlidesTools to give agents full control over Google Slides. With it, you can create presentations, build out slides, and manage content end to end, all directly from your agent.
Tool call schemas are now normalized across model providers, so switching an agent from one model to another no longer requires adjusting how tools are defined or how their outputs are parsed.
A new PerplexitySearch toolkit gives agents access to the Perplexity Search API, returning ranked web results with titles, URLs, snippets, and publication dates in a single tool call.
Resolved an issue where LanceDB's search() could return the same document multiple times when hybrid search retrieved it via both vector similarity and full-text search.
The Seltz toolkit has been updated to align with the breaking changes introduced in the Seltz SDK 0.2.0 release, replacing the previous 0.1.x integration.
We resolved an issue where tools from async toolkits were not included in the tool name list injected into the team system message, leaving the team unaware of those tools at the prompt level.
We fixed output_config not being applied correctly on Claude model wrappers, $defs being stripped from tool schemas, and file_ids and container information not being surfaced during streaming for…
We resolved a bug where streamed tool call data was overwriting accumulated state instead of appending to it, causing incomplete or incorrect tool calls to be dispatched.
We resolved an issue where empty string values in streamed LiteLLM responses could overwrite previously accumulated tool names, resulting in tool calls with missing identifiers.
We added an early error when AWS_BEDROCK_API_KEY is set for Claude models on AWS Bedrock, which is not a supported authentication path, rather than failing silently later in the request lifecycle.
We overrode deepcopy behavior on the Azure OpenAI model class to preserve live client references, preventing connection failures that occurred when the model object was copied during agent or team…
We resolved an issue where empty reasoning blocks returned by OpenRouter for non-reasoning models were being processed unnecessarily, causing noise in parsed responses.
We resolved a failure in cache key generation when the input contained types that are not directly JSON-serializable, ensuring caching works reliably across a broader range of agent inputs.
Resolved a bug in parse_tool_calls where shared dictionary references across parsed tool calls would cause the same tool to be executed multiple times during streaming.
Resolved an issue where structured output support was not correctly detected for certain Claude models, causing agents to fall back to less reliable output parsing strategies even when the model fully…
Resolved a race condition in MCPTools where parallel tool calls using a header_provider would each independently spin up their own MCP session instead of sharing one, leaving the agent in a stuck…
The Gemini model class now accepts a timeout parameter, giving teams explicit control over how long a request is allowed to run before being cancelled.
The Mistral model provider now supports the mistralai v2 SDK while continuing to work with v1. Teams can upgrade their SDK dependency and take advantage of v2 improvements without any changes to their…
The GET /workflows/{id} endpoint now accepts a version query parameter, allowing callers to fetch a specific version of a workflow rather than always receiving the latest.
AgentTools now includes ToolParallelAiSearch, a native integration with Vertex AI's Parallel AI Search that allows agents to issue multiple search queries concurrently and aggregate results.
The DoclingReader provides a single, unified interface for processing the full range of document formats an AI agent encounters — PDFs, Word files, PowerPoint decks, Excel spreadsheets, images, and…
Production agent systems demand visibility. Agno now integrates with MLflow to deliver complete, end-to-end trace observability across every model call, tool invocation, and agent step—without custom…
Agno agents can suggest followup questions at the end of a response. Set followups=True on an Agent or Team and you get back a list of ready-to-run prompts on response.followups, built from the user's…
LearningMode.PROPOSE now automatically enables chat history for the session, ensuring that the multi-turn confirmation flow — where the agent proposes a learned fact and waits for user approval — has…
A new datetime_format parameter on Agent and Team lets you control exactly how the current datetime is presented in the agent's context using any valid strftime format string.
GoogleCalendarTools has been extended with additional tools, a service account authentication path, and new cookbooks to help teams get started quickly.
Resolved a bug where each iteration of a Loop always received the original input rather than the output of the previous iteration, causing loops to repeat work instead of building on it.
A json_serializer is now passed during MySQL engine creation, ensuring that JSON fields are correctly serialized when reading from and writing to MySQL-backed databases.
Engineering and platform teams using GitLab can now connect agents directly to their repositories. GitlabTools brings read-focused GitLab access to Agno agents, covering projects, merge requests, and…
The built-in session search tool has been upgraded from a single-pass lookup to a two-step process: the agent first calls search_past_sessions() to retrieve lightweight previews of recent sessions…
We resolved a race condition in OpenAI Responses where file_search could silently return empty results due to eventual consistency in OpenAI's vector store file listing API.
A new approval status endpoint lets you query where a paused run stands in the approval process, and admin-gated enforcement ensures that only authorized users can continue execution.
A new approval status endpoint lets you query where a paused run stands in the approval process, and admin-gated enforcement ensures that only authorized users can continue execution.
AgentOS now supports an advanced filtering DSL for traces, letting you construct precise, composable queries to isolate specific runs, models, components, or behaviors.
Slack integrations now support real-time streaming with live progress cards, so end users see assistant activity as it happens rather than waiting for a final response.
The metrics system has been redesigned to provide granular, per-model and per-component tracking across the entire agent, team, and workflow lifecycle.
Workflows now support Human-in-the-Loop at the individual Step level, letting you pause execution to collect confirmation or user input before proceeding.
WorkflowRunOutput now exposes a files field and uses consistent JSON (de)serialization. This fixes prior serialization errors and makes file artifacts first-class, enabling teams to programmatically…
We’ve added remote content sources including Amazon S3, Google Cloud Storage, Azure Blob, GitHub, and SharePoint, along with new APIs to list sources and browse files before ingestion.
A new isolate_vector_search option on the Knowledge class lets multiple agents or teams share the same vector database while keeping their search results isolated.
We updated the sessions, component configurations, and component links tables to use proper primary key constraints, replacing the previous unique constraint approach.
A new approval system lets you require human sign-off before agents execute sensitive actions. Using the @approval decorator alongside a HITL primitive (requires_confirmation, requires_user_input, or…
Agno now includes a built-in scheduler for running agents, teams, and workflows on a recurring basis. Define cron schedules with support for retries, timeouts, and timezone configuration.
The human-in-the-loop (HITL) system for teams has been significantly expanded. New run requirements support tool confirmation, user input collection, and external tool execution, giving you…
The Workflow Router step now supports returning the name of a step instead of the step object itself, and can route to a group of steps as a single choice.
Agno now supports Neosantara, an Indonesian LLM gateway that provides an OpenAI-compatible API. This allows teams to use Neosantara models without changing existing agent or workflow integrations.
Workflow Condition, Loop, and Router steps now support CEL (Common Expression Language) evaluators. Expressions are defined as strings, making workflows fully serializable and easier to store, review…
Agno now aligns with LanceDB’s latest API, replacing the deprecated table_names() with list_tables() and updating the minimum LanceDB version to 0.26.0.
AwsBedrockEmbedder now supports Cohere Embed v4, including configurable output dimensions and multimodal (text + image) embeddings, with async variants.
Learning is now simpler and more effective. When learning=True, user memory is enabled by default, and the LearnedKnowledgeStore captures organizational context (goals, constraints, policies) to guide…
Async text_reader.aread() now returns an empty list ([]) for empty files, aligning behavior with the sync API. This removes special-case handling and simplifies downstream pipelines.
We changed the WebsiteReader deduplication model to compute content hashes per page. This aligns skip_if_exists with page-level updates and ensures accurate re-crawls.
We introduced a dedicated ExcelReader for .xls/.xlsx with sheet filtering, options to skip hidden sheets, and chunking controls. ReaderFactory now routes Excel files to ExcelReader automatically.
Knowledge now connects to private Azure Blob Storage as a first-class source — alongside SharePoint and GitHub — so Azure-centric organizations can centralize content without custom ETL.
Knowledge can now ingest content from private GitHub repositories and SharePoint, via SDK and API. This enables organizations to consolidate code, docs, and operational knowledge from private systems…
Knowledge now natively ingests Excel files by routing spreadsheets through the CSV reader. Each sheet is parsed into its own document with sheet-level metadata and normalized cell content.
We removed deprecated fields across tools/hooks and API parameters to simplify the surface area and reduce ambiguity. This change keeps the platform focused and easier to maintain at scale.
AgentOS now uses a unified db parameter and deprecates tracing_db. This reduces configuration complexity and clarifies data storage for both operational and tracing needs.
We resolved a 400 error caused by message formatting for file Part objects in Gemini (Vertex AI) uploads. Uploads now work as expected, unblocking multimodal use cases.
We replaced the DuckDuckGo-specific web search tool with a generic WebSearchTools interface. This standardization broadens provider choice and future-proofs search integrations.
You can now persist and manage Agent, Team, and Workflow definitions in a database, with new AgentOS endpoints for programmatic create, read, update, and delete.
We’ve introduced request-scoped isolation for agents, teams, and workflows. Each incoming request now runs against a fresh copy of the component while expensive resources (database connections…
We introduced a unified learning system that enables agents to learn from every interaction. Teams can choose learning types and plug in preferred storage backends, making continuous improvement a…
We now classify common non-retryable conditions (e.g., 4xx responses, payload too large, context limit exceeded) and skip retries across both sync and async flows.
A new AST-based Code Chunker splits code into semantically meaningful units, preserving function and class boundaries across multiple languages and tokenizer options.
Crawl4aiTools now supports proxy_config via BrowserConfig, allowing traffic to route through enterprise proxies and enabling browser-level network configuration.
JWTMiddleware now supports a configurable audience parameter to validate the aud claim. This ensures tokens are intended for your services, reducing the risk of token replay or misrouting and…
We introduced a first-class Skills system, including a Skills class plus validation and loader utilities. Teams can now define, validate, and reuse skills across agents with a consistent interface.
When a URL is provided, MCPTools now default to StreamableHttp transport. This makes it easier to connect to external MCP servers and improves streaming behavior out of the box, reducing configuration…
We introduced an async-capable cancellation manager with in-memory and Redis-backed options. This lets you reliably stop long-running or runaway work across distributed workers, improving cost control…
SemanticChunking now works with all Agno embedders (e.g., Azure OpenAI, Mistral) and custom chonkie BaseEmbeddings via a wrapper, with new parameters for finer control.
Introducing RemoteAgent, RemoteTeam, and RemoteWorkflow to execute orchestration on a remote AgentOS. This decouples runtime from application code so you can centralize governance and observability…
AgentOSClient is a first-class client for connecting to and operating a remote AgentOS. It standardizes how you authenticate, manage agents/teams/workflows, and stream events, reducing integration…
Workflow event streams now support robust reconnection, catch-up, and replay. Clients automatically resume from the last known event after transient network issues, preventing gaps in dashboards…
AgentOS now exposes an API endpoint to migrate all managed databases in one operation. This reduces operational overhead in multi-tenant or multi-environment deployments and ensures consistent schema…
When both JWT and security key authentication are enabled, JWT now takes precedence. This standardizes behavior, reduces ambiguity for clients, and aligns with common enterprise security practices.
We added a cost field to Metrics for OpenRouter-backed activity. This provides a reliable, standardized view of model spend without manual spreadsheets or custom aggregations, improving financial…
You can now stream reasoning chunks whenever a reasoning model is used. A new ReasoningManager coordinates streaming and lifecycle, giving teams earlier visibility into model thinking, faster…
Milvus search and async_search now support radius, range_filter, and async search_parameters. These controls help teams tune recall vs. precision and reduce tail latency in high-throughput workloads.
AgentOS now blocks initialization/resync if duplicate IDs are detected across Agents, Teams, or Workflows. This ensures unambiguous references and prevents hard-to-debug behavior at runtime.
Knowledge add_content_ methods now support true synchronous execution. This removes the async-only limitation, making it straightforward to integrate content ingestion into synchronous services and…
A new built-in evaluation system lets you automate LLM quality checks with binary and numeric scoring, background execution, post-hooks, and customizable evaluator agents.
MemoriTools has been removed in favor of Memori SDK v3’s built-in auto-recording. This consolidates functionality in the SDK, reduces integration complexity, and lowers maintenance overhead.
We’ve moved retry logic from Agents/Teams to the Model layer. When you set retries on a model, Agno now retries at the model execution level, which is more effective for handling provider throttling…
RunRequirement simplifies how agents request and manage human input. Requirements now surface directly in agent responses or as RunPaused events in streaming flows, providing a consistent pattern for…
AgentOS evaluation endpoints now work with asynchronous database backends. Teams using async DB classes can run evaluations without changing their stack, removing a key limitation for modern…
We introduced RedshiftTools, giving agents first-class access to Amazon Redshift without custom glue. Teams can explore schemas, describe tables, inspect and run queries, and export data directly…
To prevent CreateTable validation errors and ensure reliable, time-ordered queries, the DynamoDB schema for the user Memory table now requires a global secondary index (GSI) on created_at.
Runs now support an optional citations field across single, team, and workflow executions. This lets you store and surface model-provided source citations directly in your run metadata, improving…
We added a complete Gemini 3 demo, including example agents, configuration, and generated assets. This makes it faster to evaluate and roll out Gemini 3 within Agno by providing opinionated, runnable…
Mustafa Esoofally, Yash Pratap Solanky, and 2 others
We’ve added an optional API key path for AWS Bedrock Claude in addition to IAM. This reduces setup friction in environments where IAM is not feasible while preserving IAM as the default for…
Agno now offers full support for Google Gemini File Search, including store and document management, uploads/imports, metadata filters, citation extraction, and async APIs.
We added first-class support for Anthropic’s structured outputs, including schema enforcement, strict tool calling, and robust response parsing across synchronous, asynchronous, and streaming APIs.
We introduced NanoBananaTools, a turnkey toolkit to generate images with Google’s Nano Banana model. It includes built-in parameter validation and a cookbook example, enabling faster adoption and…
Agno now supports the thought signatures required by Gemini 3.0 Pro, ensuring compatibility and unlocking the latest model capabilities without custom integration work.
We removed get_messages_for_session and get_messages_from_last_n_runs in favor of get_messages, get_session_messages, and get_chat_history. This unifies patterns and reduces mental overhead.
We introduced a MigrationManager and the first migrations for sessions and memories tables. This provides a controlled, repeatable path for schema evolution, reducing upgrade risk and operational…
GoogleSearchTools has been removed. Please migrate to DuckDuckGoTools for web search capabilities. This streamlines support and ensures predictable results across environments.
RedisDb now accepts RedisCluster clients, enabling high availability and horizontal scalability for agent state. Teams running clustered Redis can adopt Agno storage without architectural workarounds.
When using knowledge_filters, you must configure contents_db. This ensures deterministic, stateless filtering aligned with AgentOS and prevents silent mismatches.
You can now generate WAV sound effects directly through ModelsLabTools. This adds an audio SFX modality to Agno, enabling teams to build sound-driven experiences — alerts, games, product interactions…
We removed the stream_events parameter from print_response/aprint_response and CLI. Streaming now works correctly by default, reducing configuration and edge cases.
The default Nebius model endpoint is now api.tokenfactory.nebius.com. This aligns with Nebius updated platform and helps avoid legacy endpoints that may degrade or deprecate.
The Slack interface now replies only when mentioned, reducing channel noise and improving operator control by default. This change helps teams run bots in busy channels without overwhelming users.
You can now enable Anthropic beta features by passing the betas parameter. When present, Agno automatically uses the appropriate beta client, making it easier to evaluate new capabilities without…
We introduced ParallelTools with Search and Extract APIs to deliver LLM-ready excerpts and robust markdown from the open web and PDFs — including JS-heavy pages.
Agents can now list, create, apply/remove, and delete custom Gmail labels. This enables end-to-end email triage, routing, and compliance workflows without external glue code, speeding deployment and…
Run context now propagates automatically through every workflow step — including parallel branches. This delivers predictable, shared state across complex flows, reducing manual plumbing and avoiding…
Custom executors can now yield native objects — no need to wrap every output as an Agno event. This fix removes a key limitation, making it easier to integrate existing business logic and libraries…
AgentOS now supports multiple Agno tables of the same type within a single database. This enables clean tenant or namespace isolation without multiplying databases, lowering operational overhead while…
Child agents now inherit only the primary model from their parent. Auxiliary models for output, parsing, or reasoning are no longer inherited, ensuring predictable configurations and reducing hidden…
We removed Redis and redisvl as dependencies of the base VectorDb class. VectorDb can now be used without installing or configuring Redis, reducing setup time and expanding where Agno can run (for…
Knowledge now supports a Redis VectorDB backend. Teams standardized on Redis can consolidate infrastructure, simplify operations, and reduce latency by keeping vector search close to existing caches…
We introduced a migration script to move existing VectorDB data to the v2 format. This protects compatibility, unlocks improvements in the new version, and reduces risk during upgrades.
To comply with Exa API v2.0.0, ExaTools has removed support for the highlights parameter. Calls that include it will fail. Update your integrations to avoid errors and maintain service compatibility.
ExaTools no longer accepts or passes the removed highlights parameter, aligning with Exa API v2.0.0. This prevents runtime errors and ensures forward compatibility with the upstream service.
Agno now validates input schemas for Agents and Teams, enforcing strong contracts at the edge. This catches issues earlier, improves reliability in production, and shortens debugging cycles.
A new Notion toolkit and cookbook make it easy to connect agents to Notion. Teams can read, create, and update Notion pages and databases programmatically, reducing integration effort and speeding up…
Updating AgentOS now automatically refreshes all API routers — including custom ones — so your routes stay aligned with the new OS state without manual intervention.
AsyncPostgresDb now accepts id as the primary identifier, with db_id deprecated. This aligns naming with the broader platform and eliminates parsing edge cases, improving reliability and reducing…
Agent-facing memory managers now include the deletion tool by default. This reduces setup friction and makes it easier to enforce data retention policies, remove outdated information, and keep…
We introduced AsyncMongoDb to provide fully asynchronous MongoDB access end to end. Teams can process more requests concurrently, reduce I/O bottlenecks, and improve responsiveness in agent…
Agents can now leverage Claude’s native skills for documents, spreadsheets, and presentations. This expands what agents can execute natively — from editing and analysis to content generation — without…
Introducing Async SqliteDb for end-to-end async database access. This enables higher throughput and lower tail latency in asyncio-based services by removing blocking I/O, while reducing boilerplate…
We’ve added native caching for model responses across sync, async, and streaming APIs. You can configure TTL and cache storage to accelerate repeated prompts and reduce token spend — without building…
You can now ingest Microsoft PowerPoint (.pptx) files natively with a dedicated PPTX reader. This removes the need for custom loaders, shortens integration time, and expands the types of enterprise…
When stream=True, Workflow.arun now returns an AsyncIterator instead of requiring await. This clarifies intent and avoids mixed patterns in streaming code.
Team streaming now respects input media. Images, video, audio, and files provided via run_input are properly processed during streaming, restoring expected multimodal behavior and improving parity…
We’ve added API endpoints to create empty sessions, fetch a run by ID, and update sessions. This gives teams precise control over session state, enabling cleaner orchestration, simpler retries, and…
Memory updates now occur in a background thread, reducing latency for users and UIs. We’ve also added events for run content completion and session summaries to make end-of-stream handling more…
Non-RunContent events (e.g., operational or summary signals) now emit only when stream_events=True. This reduces noise in streaming responses and ensures UIs receive only the events they opt into.
The stream_intermediate_steps setting is deprecated. Use stream_events for a single, consistent way to control streamed event emission across components, reducing configuration overhead and drift.
Workflow.arun now returns an AsyncIterator, aligning with Agent and Team. This change standardizes how you consume streaming results and reduces integration complexity across components.
We removed the default expected_output from Team delegate_task_to_member. Callers now explicitly define the expected output or handle its absence, improving predictability and intent in task…
Agents can now process inputs that contain only media (no text). This unlocks use cases such as camera-to-answer, voice-only prompts, and file-first interactions, reducing friction in multimodal…
Define company-wide tone, domain norms, and editorial standards once and apply them across agents. The new, experimental Culture Manager centralizes “cultural context” so agents can think, write, and…
We’ve added a stable id field to every Message and exposed it in RunOutput messages. This makes it straightforward to correlate logs, audit events, and persist messages across systems without custom…
We renamed the knowledge search endpoint from search_vectors to search_knowledge. This is a breaking change and aligns the API with terminology used across the platform.
The response_audio field type has changed from Optional[List[dict]] to Optional[dict]. This brings consistency across Run, Team, and Workflow schemas and reduces edge cases in client code.
You can now attach post-hooks to streaming flows, making it easier to run instrumentation, filtering, logging, or persistence tasks as soon as a stream completes.
JiraTools now supports adding worklogs to issues. This enables automated time tracking and better reporting directly from your agents and workflows, reducing manual entry and improving governance.
To ensure consistent behavior across releases, the knowledge search endpoint has been renamed from search_vectors to search_knowledge. Update clients to avoid failures against the deprecated route.
The configuration flag store_tool_results has been renamed to store_tool_messages. This is a breaking change and requires updating any configs, environment variables, or automation that reference the…
We added full SurrealDB support—including models, queries, metrics, and utilities—so you can run agents, teams, workflows, and memory on SurrealDB with first-class parity.
We renamed the configuration flag from store_tool_results to store_tool_messages and aligned behavior so tool-call and tool-result messages are scrubbed together.
We’ve added end-to-end async database support, including a complete async Postgres implementation, across Agents, Teams, AgentOS, Evals, and Knowledge.
AgentOS now exposes API endpoints for vector search across your knowledge bases. This makes it easy to build retrieval-augmented workflows and search experiences without custom indexing or ad-hoc…
GoogleSheetsTools now supports service account authentication. This enables secure, headless server-side access aligned with enterprise policies and CI/CD workflows — no manual OAuth flows or user…
Workflows can now persist and access history at the step level or across all steps. This makes agents and orchestrations more context-aware without manual state passing, reducing boilerplate and…
OpenRouter now supports fallback models for transparent failover. If a primary model is degraded or unavailable, requests automatically route to healthy alternatives — reducing errors and customer…
We upgraded h11 from 0.14.0 to mitigate a known CVE. This reduces exposure to HTTP handling vulnerabilities and aligns deployments with current security best practices.
All memory delete operations now honor user_id across every supported database backend. This ensures strict tenant isolation, reduces the risk of accidental cross-user deletions, and strengthens…
You can now run local binaries (for example, ./script) as MCP servers via MCPTools and MultiMCPTools. This makes it simple to operationalize existing scripts and CLIs as governed, observable tools…
AgentOS routers now recognize more audio and file types out of the box. This increases ingestion success rates for multimodal workloads and reduces the need for pre-processing, accelerating…
We’ve updated the MongoDB session serialization format to improve consistency and resilience. Deployments that read existing session documents or rely on the previous format may encounter read/write…
We added async batch embeddings for major providers and integrated them into most vector databases. This significantly improves throughput and reduces latency and cost for data ingestion, reindexing…
You can now configure pre- and post-execution hooks for agents and enable built-in guardrails including prompt injection checks, PII detection, and OpenAI Moderation.
Agno now supports Requesty, an affordable LLM gateway with advanced governance. Teams gain more control over costs and policy enforcement while keeping model choice flexible.
AgentOS now more reliably discovers and registers MCP tools and databases during setup. The system also detects and rejects incompatible database instances that share the same identifiers, preventing…
Agno’s LiteLLM model support now includes first-class metadata and additional fields. Teams can attach and propagate structured context alongside model calls, making it easier to track usage, apply…
Agno now allows adding multiple text entries in a single call to Knowledge. Teams can populate knowledge bases faster, with fewer API calls and less orchestration overhead.
AgentOS now works more reliably when embedded in custom applications. When teams provide their own app framework, Agno automatically ensures the AgentOS UI has the access it needs—without breaking…
Agno now persists the original workflow input alongside workflow run outputs. This gives teams full visibility into what triggered a run, making it easier to debug issues, audit behavior, and reason…
Search results for session history are now correctly scoped to the current user. This change improves correctness, privacy, and trust—ensuring users only see and interact with their own session data.
Agno now handles Gemini schemas with nullable fields and complex definitions more reliably. This resolves issues that could previously cause structured outputs to fail or behave unpredictably.
We’ve added a first-class Nexus Model abstraction, giving teams a cleaner and more consistent way to define, route, and manage models across agentic systems.
The v1 to v2 migration tooling has been updated to support metrics parsing and MongoDB migrations. This reduces manual work and uncertainty during upgrades, helping teams move to v2 with greater…
AgentOS now offers expanded support for custom FastAPI applications. When routes overlap, AgentOS routes are applied by default, with the option to disable this behavior.
Agno now provides more accurate metric tracking for workflows using OpenAI Responses. This gives teams clearer visibility into usage, performance, and cost drivers when running agentic systems in…
Agno now includes a Streamlit application for Vision AI, providing an interactive interface to experiment with vision models and integrate them into workflows quickly.
Agno’s unified knowledge system now supports multiple content types in a single structure. Teams can manage, access, and update knowledge consistently, enabling agents to deliver more accurate and…
Teams can now cancel agent, team, or workflow runs mid-execution while maintaining event integrity and state awareness. This feature improves operational control and reduces wasted compute.
Playground, AGUIApp, SlackApi, WhatsappApi, and FastAPIApp have been replaced or integrated into AgentOS. Migration consolidates capabilities into a single platform, reducing operational overhead.
Sessions, memories, evals, and metrics are now managed through a simplified, unified storage system, reducing the complexity of tracking agent runs and workflow performance.
Agno introduces new session convenience methods, providing streamlined access to runs, session summaries, and aggregated chat histories for easier workflow management and insights.