Skip to content

Releases: agno-agi/agno

v2.6.0

23 Apr 12:24
86e0c3b

Choose a tag to compare

Changelog

New Features:

  • Team HITL: Added API layer for Team human in the loop and support in AgentOS chat page.
  • Team Approvals: Added support for Approvals in Team, along with in AgentOS chat page.
  • Workflow Executor HITL: Added support for executor level human in the loop in case when a pause tool flow is setup on an agent/team in a particular step of a workflow.
  • Multi-framework support in AgentOS (Beta): Added basic support for ClaudeAgentSDK, Langgraph and DSPy using a single AgentProtocol as the backbone which works with AgentOS runtime.
  • Reconnection and Resume Runs: Agent/Team running in background using SSE can now be reconnected and resumed in AgentOS in case of a interruption (refresh) so you start from where you left.
  • Factories: Agent/Team/Workflow can now be created dynamically at run-time using AgentFactory, TeamFactory and WorkflowFactory allowing for more multi-tenant usecases.
  • Context Provider: Added 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.

Bug Fixes:

  • Callable Factory:
    • Fixed to preserve factory tools and members when Agent/Team is copied.
    • Fixed to skip iteration of callable-factory tools in Agent.deep_copy.
  • Telegram Interface:
    • Fixed to respect retry_after on Telegram 429 rate limit errors
    • Added quoted_responses option to Telegram interface
  • Agent OS Router: Fixed GET /workflows/{id} which omitted nested workflow steps and Condition.else_steps (along with the agents inside them) from the response
  • Workflow: Fixed to preserve parent_step_id through nested workflow enrichment layers in case of workflow as a workflow step.
  • MCP: Fixed to handle None headers when merging init headers in MCP tools.
  • Claude: Fixed to make anthropic imports lazy in agno.utils.models.claude.
  • Remote Content Source: Fixed where two uploads of the same filename from different remote sources (GitHub repos, S3 buckets, GCS buckets, etc.) produced identical content_hash values.
  • FileTools: Fixed to add exclude_patterns to FileTools.
  • Agent HITL: Fixed pause-continue flow not handling subsequent tool calls.

Breaking Changes:

  • Session Type Filter: The /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.

v2.5.17

15 Apr 03:52
5667be0

Choose a tag to compare

Changelog

Improvements

  • Option to disable Claude file citations (#7511)
  • Allow GitHubConfig repo to be specified per request (#7496)

Bug Fixes

  • Preserve custom db table names when loading components (#7508)
  • Apply header_provider headers during MCP initialization (#7507)
  • Preserve inner workflow event identity and add nested_depth to agent/team events (#7491)
  • Build knowledge dbs live in config API (#7498)
  • Stop injecting shared HTTP/2 client into all model providers (#7492)
  • Catch CancelledError explicitly in all router streaming generators (#7379)
  • Try raw JSON parse before cleaning to preserve code blocks in strings (#7402)
  • Exclude framework-injected params from user_input_schema (#7485)
  • Include extra_messages in memory pipeline gate check (#7470)

What's Changed

  • [fix] Include extra_messages in memory pipeline gate check by @ArielTM in #7470
  • chore: add weekly scheduled run to main validation workflow by @sannya-singal in #7453
  • fix: exclude framework-injected params from user_input_schema by @kausmeows in #7485
  • fix: try raw JSON parse before cleaning to preserve code blocks in strings by @ysolanky in #7402
  • fix: catch CancelledError explicitly in all router streaming generators by @ysolanky in #7379
  • fix: stop injecting shared HTTP/2 client into all model providers by @ysolanky in #7492
  • fix: build knowledge dbs live in config API by @sannya-singal in #7498
  • fix: preserve inner workflow event identity and add nested_depth to agent/team events by @Ayush0054 in #7491
  • fix: apply header_provider headers during MCP initialization by @ysolanky in #7507
  • fix: preserve custom db table names when loading components by @ysolanky in #7508
  • feat: allow GitHubConfig repo to be specified per request by @ysolanky in #7496
  • [feat] Option to disable Claude file citations by @joeportela in #7511
  • chore: release 2.5.17 by @ysolanky in #7494

New Contributors

Full Changelog: v2.5.16...v2.5.17

v2.5.16

10 Apr 19:45
51524df

Choose a tag to compare

Changelog

New Features:

  • LLMsTxtTools and LLMsTxtReader: Adds support for the llms.txt standard - a standardized way for websites to provide LLM-friendly documentation indexes (e.g. https://docs.agno.com/llms.txt).
  • SalesforceTools: Added Salesforce CRM Tools.
  • Model: Added new Azure AI Foundry Claude model provider.
  • OpenAIResponses: Added background mode support for OpenAI Responses API.

Bug Fixes:

  • Knowledge: Fixed to read knowledge_table from contents_db instead of agent.db.
  • AGUI:
    • Fixed to emit reasoning events in AGUI interface.
    • Fixed AGUI input_content to store current user input instead of message history.
  • Workflow: Fixed to handle file path images in workflow step conversion.
  • OpenAIResponses: Fixed to handles response.reasoning_summary_text.delta events to stream reasoning content as it arrives.
  • Team: Fixed TeamSession.from_dict() to not mutate input mapping.

What's Changed

New Contributors

Full Changelog: v2.5.15...v2.5.16

v2.5.15

09 Apr 06:41
de00cd0

Choose a tag to compare

Changelog

New Features:

  • Skills: Added skills support to Team. See docs.
  • Workflow: Added workflow as a workflow step (nested workflow) support. See docs.

Improvements:

  • Workflow HITL:
    • Workflow steps now support post-execution human-in-the-loop review - pause after a step runs to review, approve, reject with feedback and retry, or edit the output before it continues (requires_output_review on Step, Router, and Loop). See docs.
    • Parameters consolidated into HumanReview config class - pass human_review=HumanReview(...) on Step, Loop, and Router instead of flat params. Fully backward compatible. See docs
  • Traceback Logging: Added AGNO_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.
  • SessionSummaryManager: Adds last_n_runs and conversation_limit parameters to
    SessionSummaryManager so users can control how much conversation history is included when generating session summaries.

Bug Fixes:

  • OpenAI: Stop injecting shared HTTP/2 client into OpenAI and Azure OpenAI models. Fixes transient 400 errors under concurrent usage by letting the OpenAI SDK manage its own HTTP client.
  • Metrics: Fixed audio_total_tokens not being computed for OpenAI, Perplexity, and LiteLLM.
  • Workflow:
    • Fixed else_steps not being copied for Condition step type.
    • Fixed StepInput to_dict to properly serialize File objects.
  • SurrealDb: Updated correct SurrealDB flexible field syntax.
  • AgentOS: Added missing MIME types for .msg, .xlsx and .xls in AgentOS file upload.
  • A2A: Fixed to serialize Pydantic output_schema content before str concatenation.
  • Team: Fixed TeamSession.get_messages(..) returning duplicate messages.
  • SlackTools: Fixed to add thread-aware messaging instructions to SlackTools.
  • GitHubTool: Fixed IndexError in get_pull_requests when fewer PRs than requested limit
  • WikipediaTools: Fixed to handle Wikipedia DisambiguationError and add configurable auto_suggest.

What's Changed

  • fix: else_steps are not copied for Condition step type by @korntewin in #7198
  • [cookbook] fix Slack cookbook configs: history context and MemoryManager model by @Himanshu040604 in #7288
  • [fix] correct SurrealDB flexible field syntax by @pandego in #7303
  • fix: add missing MIME types for .msg, .xlsx and .xls in AgentOS file upload by @wildchron in #7329
  • [fix] a2a stream: serialize Pydantic output_schema content before str concatenation by @NIK-TIGER-BILL in #6936
  • feat: add skills support to Team by @uzaxirr in #7017
  • [fix] Workflow StepInput to_dict was not serializing File objects by @luisnmartins in #7364
  • fix: TeamSession.get_messages return duplicated messages by @kausmeows in #7372
  • fix: add thread-aware messaging instructions to SlackTools by @Mustafa-Esoofally in #7308
  • Fix IndexError in get_pull_requests when fewer PRs than requested limit by @kaiisfree in #7353
  • chore: improve exception logging across the SDK by @kausmeows in #7358
  • fix: remove extra session_type query filter in AsyncMongoDb.get_session by @lethuan127 in #7392
  • [fix] Add error handling to get_top_hackernews_stories by @lawrence3699 in #7343
  • fix: stop injecting shared HTTP/2 client into OpenAI-based models by @fehmisener in #7328
  • [fix] compute audio_total_tokens and correct cookbook metrics examples by @Shiv1909 in #7417
  • [fix] handle Wikipedia DisambiguationError and add configurable auto_suggest by @Himanshu040604 in #7222
  • feat: add last_n_runs and conversation_limit to SessionSummaryManager by @ysolanky in #7401
  • fix: correct stale docstring param name in AgentSession.get_messages by @harshsinha03 in #7423
  • feat: add post-execution output review and 6 other HITL features for workflows by @ysolanky in #7409
  • feat: workflow within a workflow by @kausmeows in #6116
  • refactor: consolidate HITL params into HITL config class by @ysolanky in #7428
  • refactor: add HumanReview support to Condition, Steps, and Parallel by @ysolanky in #7433
  • chore: Release v2.5.15 by @kausmeows in #7420

New Contributors

Full Changelog: v2.5.14...v2.5.15

v2.5.14

02 Apr 20:28
d918920

Choose a tag to compare

Changelog

New Features:

  • Fallback Models: Added support for Fallback Models on Agents and Teams. See docs
agent = Agent(
    model=OpenAIChat(id="gpt-4o", base_url="http://localhost:1/v1", retries=0),
    fallback_models=[Claude(id="claude-sonnet-4-20250514")],
)
  • Azure Blob Storage: Added SAS token authentication support for AzureBlobConfig.
  • SlackTools: Added workspace search tool to SlackTools.

Bug Fixes:

  • LearningMachine: Fixed to filter non-conversational messages from learning extraction.
  • OpenAIResponses: Fixed to use correct MIME type for image bytes in OpenAI Responses API.
  • Claude: Add automatic trailing user message injection for Claude 4.6+ models that don't support assistant message prefill, with centralized detection across all providers (Anthropic, Bedrock, Vertex AI, LiteLLM).

What's Changed

Full Changelog: v2.5.13...v2.5.14

v2.5.13

01 Apr 01:29
8b5fa12

Choose a tag to compare

Changelog

Improvements:

  • ReliabilityEval: Add subset matching, argument validation, and missing tool call tracking with multi-round tool call collection fixes.
  • AgentOS: Enhance /sessions list API to return additional fields (user_id, agent_id, team_id, workflow_id, session_summary, metrics,
    total_tokens, metadata).
  • AgentOS: Add /info API endpoint to return agent, team, and workflow count as lightweight, unauthenticated instance metadata.
  • ChromaDB: Implement dynamic batch splitting for large upsert/query operations.
  • Reader: Propagate chunk_size to default chunking strategies in reader classes.
  • Slack Interface: Add show_member_tool_calls param and automatic card overflow rotation — rotates to a new message when text exceeds a threshold

Bug Fixes:

  • VertexAI/Bedrock Claude: Support messages parameter in _prepare_request_kwargs for Claude sub classes
  • Workflows: Fix continue_run to correctly pause at Condition, Loop, and Router HITL steps — previously only Step instances were checked.
  • AgentOS: Exclude interface routes (Slack, Telegram, WhatsApp, A2A) from JWT middleware so webhook deliveries are not rejected with 401.
  • Tracing: Fix trace session stats grouping to use session_id only, preventing duplicate rows when a session has runs from different users.
  • SurrealDB: Fix trace session stats to use array::first() instead of math::max() for string fields.
  • ReliabilityEval: Fix multi-round tool call extraction so all rounds are collected; fix mutation bug modifying original RunOutput.messages;
    fix arun() using wrong ID for file save.

What's Changed

  • fix: propagate chunk_size to default chunking strategies in reader classes by @sannya-singal in #7212
  • cookbook: offline mode support for Qdrant hybrid search by @sannya-singal in #7181
  • fix: implement dynamic batch splitting for ChromaDB operations by @sannya-singal in #7148
  • fix: continue_run now pauses at Condition, Loop, and Router HITL steps by @ysolanky in #7227
  • fix: exclude interface routes from JWT middleware by @ashpreetbedi in #7252
  • cookbook: add HITL config save/load workflow examples by @ysolanky in #7225
  • feat: add /info api to return agent, team, workflow count by @kausmeows in #7190
  • fix: improve /info endpoint auth bypass and response model by @ysolanky in #7256
  • fix: group trace session stats by session_id only by @kausmeows in #7243
  • fix: use array::first() for SurrealDB trace session stats by @ysolanky in #7257
  • fix: enhance /sessions list API to return additional session fields responses by @uzaxirr in #6270
  • feat: add show_member_tool_calls param and card overflow rotation for Slack streaming by @Mustafa-Esoofally in #7244
  • feat: add subset matching and argument validation to ReliabilityEval by @harshsinha03 in #7230
  • fix: add missing messages parameter to VertexAI and Bedrock _prepare_request_kwargs by @harshsinha03 in #7245
  • feat: enable channel summarization in Slack interface by @Mustafa-Esoofally in #7255
  • chore: release 2.5.13 by @ysolanky in #7258

Full Changelog: v2.5.12...v2.5.13

v2.5.12

30 Mar 22:36
4a53201

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.5.11...v2.5.12

v2.5.10

17 Mar 17:14
655b14d

Choose a tag to compare

Changelog

New Features:

  • Parallel Search Tool: Add Parallel AI Search support for Vertex AI with native ToolParallelAiSearch integration
  • Observability: Extended support with MLflow to have full traces observability of your agents. See docs.
  • Docling Reader: Integrated Docling library as a new reader, enabling document processing across a multiple range of file formats.
  • WhatsApp Interface V2:
    • Added media support (images, video, audio, documents), interactive messages (reply buttons, list menus, locations, reactions), and Team/Workflow support.
    • Users can send /new to start fresh conversations.
    • Added enable_encryption parameter for encrypting phone numbers
  • Telegram Interface:
    • Added new Telegram interfaces for AgentOS with support for agents, teams, and workflows.
    • Multi-modal support and use /new to start fresh conversations.
  • Telegram Tools: Added new tools so agents can send photos, documents, videos, audio, animations, stickers among other things

Improvements:

  • Workflow:
    • Added version query param to GET /workflows/{id}to fetch specific workflow versions.
    • Added run level params like- metadatadependenciesadd_dependencies_to_contextadd_session_state_to_context similar to agent/team.
  • Mistral: Added mistralai v2 support while maintaining backward compatibility with v1.
  • Gemini: Added timeout parameter to Gemini model class.

Bug Fixes:

  • MCPTools: Fixed race condition where parallel MCP tool calls with header_provider would each create duplicate sessions, causing the agent to get stuck.
  • Claude: Fixed structured output detection for supported models
  • Streaming Tool Calls: Fixed duplicate tool execution in streaming mode caused by shared dict references in parse_tool_calls
  • MongoDb: Fixed the incorrect import of the pymongo async modules.

What's Changed

New Contributors

Full Changelog: v2.5.9...v2.5.10

v2.5.9

10 Mar 15:30
dbeeeab

Choose a tag to compare

Changelog

New Features:

  • Followups: Added built-in followup suggestions for Agent and Team. See cookbook.
  • Datetime Format: Added datetime_format parameter to Agent and Team, allowing custom strftime formatting for datetime context (e.g., ISO-8601, date-only, localized).
  • Tool Hook Message History: Tool pre/post hooks and agent-level tool_hooks can now access the current run's message history via run_context.messages
  • GoogleCalendarTools: Extended GoogleCalendarTools with new tools, service account auth, and cookbooks.

Bug Fixes:

  • HITL: Fixed human in the loop to support add_history_to_context during multi-round conversations while running
  • Tools: Removed (None) prefix from tool parameter descriptions
  • Siliconflow Model Provider: Updated to use correct default base_url from .com to .cn
  • Learning PROPOSE Mode: Auto-enable chat history for LearningMode.PROPOSE for multi-turn confirmation.
  • AgentOS API Docs: Added descriptions to all Form/File parameters across agent, team, and workflow API endpoints for OpenAPI/Swagger visibility

What's Changed

  • fix: resolved continue_run, missing history messages issue by @abhi10691 in #6888
  • fix: remove (None) prefix from tool parameter descriptions by @fehmisener in #6906
  • feat: add datetime_format to Agent and Team for custom datetime context by @hztBUAA in #6649
  • feat: expose run message history to tool hooks with mutation safety by @hztBUAA in #6652
  • feat: built-in followup suggestions for Agent and Team by @ysolanky in #6672
  • [fix] siliconflow: correct default base_url from .com to .cn by @NIK-TIGER-BILL in #6933
  • feat: extend GoogleCalendarTools with new tools, service account auth, and cookbooks by @Mustafa-Esoofally in #6926
  • fix: auto-enable chat history for LearningMode.PROPOSE by @Mustafa-Esoofally in #6928
  • chore: add form parameter descriptions to AgentOS API endpoints by @uzaxirr in #6941
  • chore: Release v2.5.9 by @kausmeows in #6940

New Contributors

Full Changelog: v2.5.8...v2.5.9

v2.5.8

06 Mar 15:08
381580b

Choose a tag to compare

Changelog

New Features

  • Human-Readable IDs: Agents and teams now use human-readable identifiers (e.g., brave-falcon-7x3k) instead of UUIDs, making debugging and monitoring more intuitive.
  • AgentOS: serve() now supports AGENT_OS_HOST and AGENT_OS_PORT environment variables as fallbacks, simplifying container deployments.
  • GitlabTools: Added GitlabTools with read-focused GitLab integrations, async support, and cleaner tool configuration.
  • GmailTools: Extended GmailTools with new tools and service account auth.

Bug Fixes

  • Media in Run Output: Generated media (images, audio) is now always included in run output, regardless of the store_media setting and is rather scrubbed before storing in DB
  • OpenAIResponses: Fixed handling of mixed external_execution and regular tools when using OpenAI Responses API.
  • MySQL: Added json_serializer to MySQL engine creation for proper JSON handling.
  • PostgreSQL: Removed session_type filter from get_session to prevent session data loss when session types change.
  • Workflow: Fixed a bug where 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.

What's Changed

  • feat: Docker-style human-readable IDs for agents and teams by @ysolanky in #6869
  • feat: add AGENT_OS_HOST/AGENT_OS_PORT env var fallbacks to serve() by @Mustafa-Esoofally in #6857
  • fix: remove session_type filter from PostgreSQL get_session to prevent session data loss by @kausmeows in #6873
  • fix: add json_serializer to MySQL engine creation by @willemcdejongh in #6848
  • [fix] handle mixed external_execution and regular tools for OpenAI by @hztBUAA in #6630
  • fix: include generated media in run output regardless of store_media setting by @Br1an67 in #6793
  • cookbook: add x402scan MCP tools example by @SamOpenClaw in #6555
  • feat: add GitlabTools with tests and cookbook example by @SalimELMARDI in #6721
  • feat: extend GmailTools with new tools, service account auth, and agentic cookbooks by @Mustafa-Esoofally in #6765
  • fix: loop iterations to forward output from previous iteration by @kausmeows in #6868
  • fix: resolve duplicate operationId warnings in disabled feature router by @kausmeows in #6887
  • chore: Release v2.5.8 by @kausmeows in #6886

New Contributors

Full Changelog: v2.5.7...v2.5.8