NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3100 most downloaded on PyPI
The programming language for agentic software.
Last release today
16 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
263 releases · first in 2024
One column per month.
WorkspaceContextProvider (#7709): Project-aware context provider for repository roots, backed by the read-only Workspace toolkit instead of generic Fi
groups:read scope is missing.Full Changelog: https://github.com/agno-agi/agno/compare/v2.6.2...v2.6.3
Models: Updated default id for multiple model providers to newer, actively supported models to prevent upcoming deprecations, improve performance cons…
read/list/search/write/edit/move/delete/shell access to a root directory tree, with destructive operations gated by Agno's built-in human-in-the-loop confirmation by default.id for multiple model providers to newer, actively supported models to prevent upcoming deprecations, improve performance consistency, and significantly reduce operational costs.deep_copy for Step, Router, and Loop.Full Changelog: https://github.com/agno-agi/agno/compare/v2.6.1...v2.6.2
A2A: Pinned a2a-sdk>=0.3.0,<1.0 in the release workflow. a2a-sdk v1.0 has breaking changes that need to be adopted in a follow-up.
system_prompt_blocks: List[SystemPromptBlock] on Claude — each block has text, cache, and optional ttl ("5m" or "1h") that overrides the model-level extended_cache_time flag per block.cache_tools: bool on Claude (Anthropic, AWS Bedrock, VertexAI). Adds cache_control to the last tool so the tool prefix is cached.Model._format_tools (sort by name), so request prefixes stay stable across runs and prompt caches actually hit. Applies across Anthropic, OpenAI, Gemini, and Bedrock.ParallelMCPBackend as a new web backend for WebContextProvider (#7667). Talks to Parallel's public MCP server at search.parallel.ai/mcp, exposing web_search + web_fetch (compressed markdown output). Keyless by default; Bearer-auth via PARALLEL_API_KEY for higher rate limits; optional OAuth endpoint via use_oauth=True. Defaults to a 30s timeout (up from MCPTools' 10s) because web_fetch frequently runs longer on large pages."openai:" model string prefix to OpenAIResponses (previously OpenAIChat). Added "openai-chat:" as a fallback for users who still need OpenAIChat. Agent(model="openai:gpt-5.4") now resolves to OpenAIResponses(id="gpt-5.4").a2a-sdk>=0.3.0,<1.0 in the release workflow. a2a-sdk v1.0 has breaking changes that need to be adopted in a follow-up.output_schema example to demonstrate output_schema with a Pydantic model (it was incorrectly using output_model with web search).cookbook/05_agent_os/README.md that referenced a non-existent agno_agent.py (corrected to agno_assist.py) (#7663).Full Changelog: https://github.com/agno-agi/agno/compare/v2.6.0...v2.6.1
Team HITL: Added API layer for Team human in the loop and support in AgentOS chat page.
AgentOS chat page.AgentOS chat page.ClaudeAgentSDK, Langgraph and DSPy using a single AgentProtocol as the backbone which works with AgentOS runtime.AgentFactory, TeamFactory and WorkflowFactory allowing for more multi-tenant usecases.agno.context — a first-party API for plugging an external source (filesystem, web, SQL database, Slack, Google Drive, MCP server) into anagent as a natural-language tool.Agent.deep_copy.GET /workflows/{id} which omitted nested workflow steps and Condition.else_steps (along with the agents inside them) from the responseparent_step_id through nested workflow enrichment layers in case of workflow as a workflow step.agno.utils.models.claude.content_hash values.exclude_patterns to FileTools./sessions endpoint now returns all session types (agent, team, and workflow) by default, giving you a complete view of your sessions in a single call. To filter for a specific type, pass?type=agent ?type=team, or ?type=workflow in your request.Option to disable Claude file citations
GitHubConfig repo to be specified per request (#7496)header_provider headers during MCP initialization (#7507)nested_depth to agent/team events (#7491)CancelledError explicitly in all router streaming generators (#7379)user_input_schema (#7485)extra_messages in memory pipeline gate check (#7470)Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.16...v2.5.17
LLMsTxtTools and LLMsTxtReader: Adds support for the llms.txt standard - a standardized way for websites to provide LLM-friendly documentation indexes
https://docs.agno.com/llms.txt).knowledge_table from contents_db instead of agent.db.response.reasoning_summary_text.delta events to stream reasoning content as it arrives.TeamSession.from_dict() to not mutate input mapping.Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.15...v2.5.16
Skills: Added skills support to Team. See docs.
HumanReview config class - pass human_review=HumanReview(...) on Step, Loop, and Router instead of flat params. Fully backward compatible. See docsAGNO_LOG_TRACEBACKS env var (opt-in) to control traceback visibility in log_error and log_warning — off by default (clean logs), full tracebacks when set to true.last_n_runs and conversation_limit parameters to
SessionSummaryManager so users can control how much conversation history is included when generating session summaries.400 errors under concurrent usage by letting the OpenAI SDK manage its own HTTP client.audio_total_tokens not being computed for OpenAI, Perplexity, and LiteLLM.Condition step type.output_schema content before str concatenation.TeamSession.get_messages(..) returning duplicate messages.get_pull_requests when fewer PRs than requested limitCondition step type by @korntewin in https://github.com/agno-agi/agno/pull/7198TeamSession.get_messages return duplicated messages by @kausmeows in https://github.com/agno-agi/agno/pull/7372Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.14...v2.5.15
Fallback Models: Added support for Fallback Models on Agents and Teams. See docs `python agent = Agent( model=OpenAIChat(id="gpt-4o", base_url="http:/
agent = Agent(
model=OpenAIChat(id="gpt-4o", base_url="http://localhost:1/v1", retries=0),
fallback_models=[Claude(id="claude-sonnet-4-20250514")],
)
AzureBlobConfig.SlackTools.inject_trailing_user_message and `trailing_user_message_content for models that reject assistant prefill by @harshsinha03 in https://github.com/agno-agi/agno/pull/7304Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.13...v2.5.14
ReliabilityEval: Add subset matching, argument validation, and missing tool call tracking with multi-round tool call collection fixes.
messages parameter in _prepare_request_kwargs for Claude sub classes/info api to return agent, team, workflow count by @kausmeows in https://github.com/agno-agi/agno/pull/7190Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.12...v2.5.13
fix: preserve server tool blocks in Claude conversation history by @Mustafa-Esoofally in https://github.com/agno-agi/agno/pull/6879
Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.11...v2.5.12
Google Sides Toolkit: Added new slides toolkits for creating / editing and working with Google slides
GoogleAuth toolkit and shared auth decorator for Google toolkits.AgenticChunkingPerplexitySearch toolkit.run_status column valid for ≥v2.5.6search() in order to avoid hybrid search returning the same document from both vector and FTS branches.0.1.x to 0.2.0.output_config request parameter for Claude wrappers, so users can pass values like output_config={"effort": "high"} together with adaptive thinking.$defs in Claude tool schema formattingfile_ids and container info in streaming path for Claude skillsparse_tool_calls.AWS_BEDROCK_API_KEY auth in Claude.Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.10...v2.5.11
Parallel Search Tool: Add Parallel AI Search support for Vertex AI with native ToolParallelAiSearch integration
/new to start fresh conversations.enable_encryption parameter for encrypting phone numbers/new to start fresh conversations.version query param to GET /workflows/{id}to fetch specific workflow versions.metadata, dependencies, add_dependencies_to_context, add_session_state_to_context similar to agent/team.mistralai v2 support while maintaining backward compatibility with v1.MCPTools: Fixed race condition where parallel MCP tool calls with header_provider would each create duplicate sessions, causing the agent to get stuck.parse_tool_callsFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.9...v2.5.10
Followups: Added built-in followup suggestions for Agent and Team. See cookbook.
datetime_format parameter to Agent and Team, allowing custom strftime formatting for datetime context (e.g., ISO-8601, date-only, localized).run_context.messagesGoogleCalendarTools with new tools, service account auth, and cookbooks.add_history_to_context during multi-round conversations while runningbase_url from .com to .cnLearningMode.PROPOSE for multi-turn confirmation.Form/File parameters across agent, team, and workflow API endpoints for OpenAPI/Swagger visibilityFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.8...v2.5.9
Human-Readable IDs: Agents and teams now use human-readable identifiers (e.g., brave-falcon-7x3k) instead of UUIDs, making debugging and monitoring mo
brave-falcon-7x3k) instead of UUIDs, making debugging and monitoring more intuitive.serve() now supports AGENT_OS_HOST and AGENT_OS_PORT environment variables as fallbacks, simplifying container deployments.GitlabTools with read-focused GitLab integrations, async support, and cleaner tool configuration.GmailTools with new tools and service account auth.store_media setting and is rather scrubbed before storing in DBexternal_execution and regular tools when using OpenAI Responses API.json_serializer to MySQL engine creation for proper JSON handling.session_type filter from get_session to prevent session data loss when session types change.Loop iterations always received the original input instead of the previous iteration's output. Added a flag forward_iteration_output to opt-in to this behaviour.Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.7...v2.5.8
OpenAI-Like Embedder: Added OpenAILikeEmbedder for providers with OpenAI compatible embedding endpoints
OpenAILikeEmbedder for providers with OpenAI compatible embedding endpointssearch_past_sessions + read_past_session pattern. Session previews show per-run user/assistant pairs instead of a single message, with configurable limits on sessions searched (num_past_sessions_to_search) and preview depth (num_past_session_runs_in_search). read_past_session accepts an optional num_runs parameter so the model can avoid pulling in full conversations from long sessions.user_id from being propagatedFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.6...v2.5.7
GitHub App Authentication for Knowledge Sources: Adds support for authenticating with GitHub as a GitHub App (app_id, installation_id, private_key) in
app_id, installation_id, private_key) in addition to personal access tokens, with thread-safe token caching and both sync/async variants.image/heic and image/heif support to file upload endpoints.agno.tools.google sub-package (from agno.tools.google import GmailTools). Old import paths still work with a backwards compatibility.TeamMode.tasks streaming to provide structured task data for frontend rendering in events like TeamTaskCreated and TeamTaskUpdatedTaskStateUpdatedEvent: Added tasks: List[TaskData] field containing full task details (id, title, description, status, assignee, dependencies, result) and completion_summary fieldfile_search silently returned empty results due to eventual consistency in OpenAI's vector_stores.files.list
API.input_file support to OpenAIResponses_rerank() call instead of being reused.Literal types in JSON schema generationFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.5...v2.5.6
Responses now stream in real-time with live progress cards for tool calls, reasoning, and workflow steps.
token and signing_secret, enabling multiple bots on the same server.ModelsLabTools to support image generation via ModelsLab's text-to-image API, completing the full ModelsLab media suite.toolResult blocks into single user message._convert_image_artifacts_to_imagesFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.4...v2.5.5
PgVector: added similarity_threshold parameter for filtering search results by minimum similarity score.
similarity_threshold parameter for filtering search results by minimum similarity score.TeamMode.tasks, enabling real-time event emission during autonomous task execution.DuckDuckGoTools@tool decorator: Fixed @tool decorator to not fail for Agent/Team type annotationsFull Changelog: https://github.com/agno-agi/agno/compare/v2.5.3...v2.5.4
Remote Knowledge: Added endpoints to support listing of remote contents via API. Enables uploading of content in S3 buckets via AgentOS
sanitize_content parameter to BasePDFReader (enabled by default) that normalizes fragmented PDF text extraction — collapsing word-per-line artifacts while preserving paragraph breaks. Disable with sanitize_content=False for PDFs containing structured content like code or tables.sanitize_content parameter to BasePDFReader that normalizes extracted PDF text by collapsing excessive whitespace sequences into single spaces.knowledge_retriever ignored when search_knowledge=True enabled.input_tokens for Anthropic modelsreasoning_content duplication across reasoning steps.deep_copy fails for nested teams due to non-init dataclass fields.session_state changes in both agent and team modules.run_context.output_schema in Parallel execution.Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.2...v2.5.3
License Change: Changed license from Mozilla Public License 2.0 (MPL 2.0) to Apache Software License.
Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.1...v2.5.2
TavilyTools: Removed deprecated include_answer kwarg from search method.
id over name in get_member_id for more predictable member selection.include_answer kwarg from search method.header_provider is incompatible with transport type.Full Changelog: https://github.com/agno-agi/agno/compare/v2.5.0...v2.5.1
Team Execution Modes: Introduced TeamMode enum with four execution modes:
TeamMode enum with four execution modes:
coordinate (default): Supervisor pattern where the leader picks members, crafts tasks, and synthesizes responsesroute: Router pattern where the leader routes to a specialist and returns their response directlybroadcast: Broadcast pattern where the leader delegates the same task to all members simultaneouslytasks: Autonomous task-based execution where the leader decomposes goals into a shared task listRunRequirement system for paused runs with better support for:
@approval decorator for human approval workflows:
@approval(type="required"): Blocking approval that pauses the run until resolved via approvals API@approval(type="audit"): Non-blocking audit trail for compliance/loggingLearningMachine for persistent learning.RunContext. Supports caching via cache_callables and custom cache keys for session-scoped resolution.isolate_vector_search flag to Knowledge class. When enabled, documents are tagged with linked_to metadata during insert and searches filter by this tag, allowing multiple Knowledge instances to share the same vector database while maintaining isolated search results. Defaults to False for backwards compatibility with existing data.search() to stop reopening the table; use .to_list() instead of .to_pandas() in vector/hybrid/keyword search.sessions, component_configs and component_links table to use primary key instead of _unique_constraints.store_history_messages now defaults to False: History messages are no longer stored by default. This reduces unnecessary storage overhead, improves privacy by not persisting conversation history unless explicitly needed, and gives better control over storage costs. If you rely on stored history, set store_history_messages=True explicitly.str() for workflow run_input by @salimhamed in https://github.com/agno-agi/agno/pull/6318Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.8...v2.5.0
LanceDB: Added backward compatibility for deprecated table_names()
table_names()azure_ad_token_providerupdate_session_state tool to correctly extract session_state from run_context after _session_state was removed from the Function class in Agno 2.4.0.SessionContextStore for Claude/Gemini compatibility.session_id to executor events for consistent streaming by @kausmeows in https://github.com/agno-agi/agno/pull/6272Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.7...v2.4.8
LanceDB - Replaces deprecated LanceDB table_names() with list_tables()
AwsBedrockReranker class added supporting Cohere Rerank 3.5 and Amazon
Rerank 1.0requires_confirmation_toolstable_names() with list_tables()else_steps in workflow condition logic by @uzaxirr in https://github.com/agno-agi/agno/pull/6214Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.6...v2.4.7
Learning Machine: Improved prompts and default support for user_memory when using learning machine
user_memory when using learning machinecreated_at and updated_at timestamps now correctly convert to UTCFull Changelog: https://github.com/agno-agi/agno/compare/v2.4.5...v2.4.6
SeltzTools: A new toolkit featuring support for Seltz Search
add_search_knowledge_instructions: Adds add_search_knowledge_instructions parameter to Agent and Team class to control whether knowledge search instructions are added to the system prompt.`Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.4...v2.4.5
Unsplash image search tools: Added UnsplashTools toolkit for searching and retrieving high-quality, royalty-free images from Unsplash API.
UnsplashTools toolkit for searching and retrieving high-quality, royalty-free images from Unsplash API.external_execution_silent param for tool decorator: Added a new param to make external tool execution silent by not populating the run response content with placeholder stringsdependencies in Workflows: When using JWTMiddleware with dependencies_claims to inject user data from JWT tokens, the dependencies were correctly available to agent tools when calling the agent directly via /agents/{agent_id}/runs, but not when the same agent ran as part of a workflow via /workflows/{workflow_id}/runs.split_on_headings now respects chunk_size parameter.created_at timestamps are now preserved on updates and get_session correctly filters by session typesilent option to suppress verbose messages for HITL tools by @rodrigocoliveira in https://github.com/agno-agi/agno/pull/5842Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.3...v2.4.4
Excel Reader: Added new reader class ExcelReader for better .xls and .xlsx support
ExcelReader for better .xls and .xlsx supportCustomEvent :
acontinue_run for HITLFull Changelog: https://github.com/agno-agi/agno/compare/v2.4.2...v2.4.3
fix: Remove deprecated Pydantic Config and use model_config by @benmezger in https://github.com/agno-agi/agno/pull/6123
output_fields in document lookup queries to fix Milvus Lite errorNone values were incorrectly cached, preventing table creation on subsequent calls.model_config by @benmezger in https://github.com/agno-agi/agno/pull/6123Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.1...v2.4.2
N1N Model Provider: Added n1n.ai as an OpenAI-compatible provider.
(.xlsx/.xls) by routing spreadsheets through the existing CSV reader, parsing workbooks per sheet into separate documents with sheet metadata.collect_metrics_on_completion flag to only collect metrics from the final chunk.tool_call_id to trace events back to their originating tool calls.Team.adelegate_task_to_members() where loop variables were not properly captured in async function definitions, causing all concurrent member agent runs to use the last member's values instead of their respective values.adelegate_task_to_members by @d8rt8v in https://github.com/agno-agi/agno/pull/6067Full Changelog: https://github.com/agno-agi/agno/compare/v2.4.0...v2.4.1
Deprecated enable_user_memories : Introduced update_memory_on_run for the same behavior.
KnowledgeProtocol The main Knowledge implementation now satisfies this interface. Any other implementation may be used with Agent/Team. Note - Only the main Agno Knowledge implementation of this protocol currently supports AgentOS Knowledge management.ModelRequestStarted and ModelRequestCompletedCompressionStarted and CompressionCompletedMemoryUpdateCompleted to contain the memory content.api_base_url parameter support to TavilyTools for custom hosted usecases.AgentOS: Add db to the AgentOS class. If populated, it propagates to all
agents, teams and workflows without db. It is also used as tracing db.enable_user_memories : Introduced update_memory_on_run for the same behavior.TrailingSlashMiddleware that strips trailing slashes from request paths, all endpoints returns identical responses without 307 redirects.<instructions> tags by defaultadd_instruction_tags=True option to restore the previous behavior for users who prefer structured promptsencoding parameter for BytesIO inputs - always used hardcoded "utf-8" instead of self.encoding or "utf-8"."") were incorrectly treated as None due to Python's falsy evaluationreasoning_details field when using OpenRouter, fixing multi-turn conversation issues.async_search() to use async_get_embedding() instead of blocking get_embedding() calls, preventing event loop blocking during concurrent async operations.session_state, dependencies, user_id etc in tool functions and hooks where RunContext has replaced itstream_intermediate_steps → stream_eventsyield_run_response → yield_run_outputdelegate_task_to_all_members removed from Team classadd_content() method and its variants have been renamed to insert() insert_many Old method names are still supported, but all examples and docs will soon only reference the new methods.tracing_db : tracing_db has been deprecated in favor of db parameter on the AgentOS.openai-agents install instruction by @harshsinha03 in https://github.com/agno-agi/agno/pull/6076Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.26...v2.4.0
Per-Request Isolation: Improved request-level isolation for agents/teams/workflows in shared FastAPI processes.
Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.25...v2.3.26
LearningMachine: A unified learning system that enables agents to learn from every interaction. It coordinates multiple learning types, each with its
get_page_content() tool failing on large pages by parsing HTML to extract only visible text content (strips scripts, styles, comments)chunk_size ParameterFull Changelog: https://github.com/agno-agi/agno/compare/v2.3.24...v2.3.25
MongoDB connection handshake now includes Agno version metadata. This enables better connection identification and log analysis for users hosting Mong
proxy_config parameter, allowing further configuration of the Toolkit.PythonTools and MLXTranscribeTools to automatically disallow operating outside of the contextual base directory. Add the restrict_to_base_dir to opt out of this feature and allow operations outside of the base directory.split_on_headings parameter to finely control how chunks are separated.Knowledge . Improved filter handling for agentic search.get_session_name directly from Team instances.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.23...v2.3.24
Async Tool Support: Toolkit now supports async tool functions, which are automatically selected when the agent runs in an async context.
header_provider : Fix for check on MCPTools.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.22...v2.3.23
Agent Skills: Introducing the Skills class, enabling you to extend your Agents’ capabilities by providing specific skills, as defined by Anthropic’s A
Skills class, enabling you to extend your Agents’ capabilities by providing specific skills, as defined by Anthropic’s Agent Skill specification. See the docs.header_provider function to your MCPTools instances to generate dynamic headers when calling MCP tools. This is useful for headers that need to change based on context e.g. authorization tokens or user ids. See the docs.audience for checkingMCPTools class now defaults to StreamableHttp as transport when connecting to external MCP servers.a2a protocol when using remote agents. The also means Google ADK agents can be used with AgentOS as remote running agents. This feature is still in beta. See the docs.stop flag from primitive inner steps to workflowCompressionManager to work properly with any model using the OpenAIResponses API.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.21...v2.3.22
Agent as Judge on AgentOS: Our new [AgentAsJudge Evals](https://docs.agno.com/basics/evals/agent-as-judge/overview) are now completely supported on th
Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.20...v2.3.21
Run Cancellation: Add async methods to our Run Cancellation setup, and allow users to set a custom one using set_cancellation_manager().
set_cancellation_manager().reasoning_content for LiteLLM model wrapper: Extract reasoning content from the models which support it via lite llmretries set to more than 1.updated_at values.updated_at from pre 2.0 versions by @kausmeows in https://github.com/agno-agi/agno/pull/5824Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.19...v2.3.20
Vector DB imports: Improved import paths for vector database integrations
Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.18...v2.3.19
Google VertexAI: Added support for a google oauth2 credentials file for direct VertexAI authentication
Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.17...v2.3.18
ChromaDB Hybrid Search: Added support for hybrid search using dense vector similarity search (semantic) with full-text search (keyword/lexical) using
RemoteAgent, RemoteTeam and RemoteWorkflow classes enabling usage of Agents, Teams and Workflows running on a remote AgentOS. Docs coming soon.AgentOSClient class enabling usage of an AgentOS running remotely. Docs coming soon.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.16...v2.3.17
Readers: Fixes an issue with read and async_read function of some Reader classes
read and async_read function of some Reader classesFull Changelog: https://github.com/agno-agi/agno/compare/v2.3.15...v2.3.16
OpenRouter Cost: Now tracking cost on metrics for runs on OpenRouter. More providers to come in future.
cost on metrics for runs on OpenRouter. More providers to come in future.@tool in its methods by @kausmeows in https://github.com/agno-agi/agno/pull/5701Full Changelog: https://github.com/agno-agi/agno/compare/v2.2.14...v2.3.15
Reasoning Streaming: Add support to stream reasoning chunks for the case where reasoning_model is provided.
reasoning_model is provided.output_schema now accepts JSON schemas in provider-specific formats, passed directly to the model API without transformation. This gives users full control over structured output configuration for OpenAI, Claude, and OpenAI-like providers.introduction messages.search_parameters to the search and async_search methods of the Milvus vector database class.reload_includes and reload_excludes to the serve function of AgentOS. Using these you can specify which files the AgentOS app listens to to reload.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.13...v2.2.14
secret_key has been deprecated (although still supported) and it is recommended to supply verification_keys=[...] going forward.
agents:my-agent:read you can control which agents can be run (i.e. when calling POST /agents/my-agent/runs ) or which agents are returned on read (i.e. when calling GET /agents or GET /agents/{id}). This allows for full control over which users can use and see which agents, and this extends to AgentOS. The same also applies to Team and Workflow.JWTMiddleware class:
secret_key has been deprecated (although still supported) and it is recommended to supply verification_keys=[...] going forward.algorithm default value changed from HS256 to RS256 to make asymmetric keys the default (better suited for production cases).Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.12...v2.3.13
Compression Manager Token Counting: Added support for token count based compression across providers. Read more here
RunRequirement to ensure it is properly converted into JSON before
persisting the related run, to avoid DB errors or missing data.retry_with_guidance_limit parameter to adjust how many times these
retries should happen.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.11...v2.3.12
Fixed an issue with custom readers not always displaying correctly on AgentOS.
RunOutput and RunCompletedEvent classes, to make them available both in streaming and non-streaming cases.AsyncPostgresDb or AsyncSqliteDb classes.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.10...v2.3.11
Shopify Toolkit: Get analytics and insights for your shopify store backend. Analyse sales, customers, etc. with ShopifyTools.
ShopifyTools.stream=False parameter to all agent runs within eval code.yield events and updates are made to session_state .Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.9...v2.3.10
Async MySQL: Added support for AsyncMySQLDb with compatibility for the asyncmy driver. See the docs.
AsyncMySQLDb with compatibility for the asyncmy driver. See the docs.create_schema=False when initializing your database class (e.g. PostgresDb) to skip automatic schema creation. This is useful for environments where the schema needs to be managed externally.get_step_output for nested steps in Parallel groups: Add recursive search to get_step_output() to find steps nested inside Parallel, Condition, Router, Loop, and Steps.reasoning_content to the message for thinking mode.run_id param in run methods: Added a run_id parameter to the run and arun methods in the Agent, Team and Workflow classes, to set the id of the run instead of automatically generating one.add_content_ functions instead of wrapping with asyncioInputCheckError was raised with retries=True.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.8...v2.3.9
Model-Level Retries: Improved retry logic added to the model execution layer. That means setting retries=n on your model, would retry directly at the
retries=n on your model, would retry directly at the model execution layer, which is useful for dealing with ratelimits imposed by the model provider. Agent-level retries still exist and now apply to any exceptions raised in the agent execution loop. See the docs.contextvars (used by tracing/instrumentation libraries like OpenTelemetry) are not propagated when steps run in parallel using ThreadPoolExecutor.dependencies instead of run_context on aget_relevant_docs_from_knowledgeMemoriTools has been removed by the Memori team, since it is now obsolete given how the Memori framework will work going forward. See the new docs.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.7...v2.3.8
Amazon Redshift Tools: Added toolkit for exploring Amazon Redshift databases and running queries. See the docs.
RunRequirement class to handle HITL requirements. Now during HITL flows, you will find these objects in the Agent response or RunPaused event (if streaming). You can handle and resolve the HITL requirements via these objects. You can read more and see examples in the docs.continue_run: You can now pass yield_run_response to the continue run methods when streaming, to yield a RunOutput object at the end.run_context into get_relevant_documents_from_knowledge so custom retrievers has access to dependenciesAsyncPostgresDb class.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.6...v2.3.7
Spotify Tools: Added toolkit for managing your Spotify library. See the docs.
session_state in certain scenarios when using Worfklows.or {} with explici… by @opleonnn in https://github.com/agno-agi/agno/pull/5589Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.5...v2.3.6
Hooks as Background Tasks: Agent/Team pre- and post-hooks can now be run as Background Tasks on the AgentOS, enabling completely non-blocking, concurr
cancel_run endpoint failures by ensuring register_run() is called earlier in the execution flow, eliminating the gap where run cancellation requests could fail.RunEvent serialization: Fixed a bug serializing RunEvent instances when working with pre-hooks and inputs containing media (e.g images).created_at field of the user Memory table when using Dynamo as database.delete_user_memory function of the AsyncPostgresDB class.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.4...v2.3.5
AsyncPostgresDB: Fixed a signature mismatch with delete_user_memories function.
delete_user_memories function.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.3...v2.3.4
Context Compression: Introducing compression of tool call results in a running context. Context Compression allows you to manage your agent context wh
optimize_memories and aoptimize_memories to the MemoryManager as a way to summarize memories outside of agent runs. Only one strategy is currently supported, but this will be extended in future. Thie is still a beta feature. See the docs.cookbook/models/google/gemini/file_search_basic.pycookbook/models/google/gemini/file_search_advanced.pycookbook/models/google/gemini/file_search_rag_pipeline.pyoutput_schema on run/arun: override output_schema at runtime via the run() and arun() methods for both Agent and Team, as well as AgentOS API endpoints.api_key support for AWS Bedrock. See the documentation.thinking_level on Geminiget_user_message functions on Agent and Teamstream_member_events=True but stream_events=False on Team.StopAgentRun exception from not correctly ending the agent run.tool_name_prefix: Made the tool_name_prefix parameter None by default to prevent it from adding _ by default as a prefix.tool_call_id fixedFull Changelog: https://github.com/agno-agi/agno/compare/v2.3.2...v2.3.3
chore: relax deprecation logs by @manuhortet in https://github.com/agno-agi/agno/pull/5480
Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.1...v2.3.2
Nano Banana Support: You can now generate images using Google’s Nano Banana with the NanoBananaTools toolkit.
NanoBananaTools toolkit.MCPTools or MultiMCPTools classes inside the AgentOS.Full Changelog: https://github.com/agno-agi/agno/compare/v2.3.0...v2.3.1
Removed AgentOS Parameters: The following parameters have been removed from the AgentOS class after being deprecated in our previous v2.2.0 version:
ModelLabsTools.MigrationManager class together with our first migrations for the sessions and memories tables.
get_messages and get_chat_history in the Session classes.get_session_messages and get_chat_history in the Agent, Team and Workflow classes.get_chat_history also on the Workflow Step class.get_messages and get_session_messages functions now have all filtering capabilities. See the docs.AsyncMongoDb class in contexts where multiple event loops exist, like some advance use cases with the AgentOS.httpx client for much better resource allocation and instantiation speed. Also adds http2 for better http multiplexing.show_member_responses: You can now set show_member_responses on print_response, aprint_response for Team.RedisCluster when configuring a RedisDb instance for agent database.knowledge now requires the use of contents_db.knowledge.get_filters() method to always return valid filter keys instead of dummy keys.get_previous_session_messages() to return the most recent N sessions instead of the oldest N sessions.created_at added as column for memories tablefeedback added as column for memories table where it was missingPostgresDb, all JSON columns are converted to JSONB.MigrationManager (docs) to ensure these migrations are applied correctly. Alternatively if you are still in development, you can delete your current tables and start with a clean table which would have the updated schema already.api.tokenfactory.nebius.com endpoint.
base_url, but by default the class uses the Token Factory URL as per the Nebius product release.delegate_task_to_all_members parameter in Team to delegate_to_all_members.GoogleSearchTools Toolkit has been removed, as scrapping Google results in the way it was done here is not longer possible. We recommend using DuckDuckGoTools instead for your web searching needs.stream_events parameter has been removed from the print_response, aprint_response, and CLI methods, for Agent, Team and Workflow. Event handling is now always done correctly when streaming a response with these methods.knowledge(...) now requires setting the contents_db if you want to use knowledge_filters . See the docs on filtering.get_messages_for_session from Agent and Team.get_messages_from_last_n_runs from the Session, Agent, and Team classes.get_messages and get_chat_history in the Session classes.get_session_messages and get_chat_history in the Agent, Team and Workflow classes.get_chat_history also on the Step class.get_messages and get_session_messages functions now have all filtering capabilities. See the docs.v2.2.0 version:
os_id: You should now use idfastapi_app: You should now use base_appenable_mcp: You should now use enable_mcp_serverreplace_routes: You should now use on_route_conflictknowledge.get_filters() to return valid filter keys by @kausmeows in https://github.com/agno-agi/agno/pull/5445get_previous_session_messages function to return most recent session msgs by @kausmeows in https://github.com/agno-agi/agno/pull/5472Full Changelog: https://github.com/agno-agi/agno/compare/v2.2.13...v2.3.0
Workflow Step Events: Fixed event streaming for Agents and Teams in custom executors steps
Full Changelog: https://github.com/agno-agi/agno/compare/v2.2.12...v2.2.13
Knowledge Search Filter Expressions: Added a new metadata-based Filter DSL (EQ, IN, GT/LT, NOT, AND, OR) enabling targeted Knowledge searches across.
reply_to_mentions_only parameter was also added to adjust the behavior.any as a type was not parsed correctly for Gemini. This affected Agentic Knowledge Filtering, which is also fixed.Full Changelog: https://github.com/agno-agi/agno/compare/v2.2.11...v2.2.12
Your coding agent can read these notes before it upgrades. Set up the MCP server →