Releases: agno-agi/agno
Releases · agno-agi/agno
v2.5.10
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
/newto start fresh conversations. - Added
enable_encryptionparameter for encrypting phone numbers
- Telegram Interface:
- Added new Telegram interfaces for AgentOS with support for agents, teams, and workflows.
- Multi-modal support and use
/newto start fresh conversations.
- Telegram Tools: Added new tools so agents can send photos, documents, videos, audio, animations, stickers among other things
Improvements:
- Workflow:
- Added
versionquery param toGET /workflows/{id}to fetch specific workflow versions. - Added run level params like-
metadata,dependencies,add_dependencies_to_context,add_session_state_to_contextsimilar to agent/team.
- Added
- Mistral: Added
mistralaiv2 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 withheader_providerwould 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
- fix: prevent deadlock in parallel MCP tool calls with header_provider (fixes #6094) by @giulio-leone in #6821
- fix: remove unnecessary fast-path stale session cleanup in MCPTools by @ysolanky in #6949
- feat: add Parallel web search grounding for Vertex AI Gemini by @ysolanky in #6060
- fix: correct async MongoDB import by @v-vinson in #6399
- fix: mongo validation by @kausmeows in #6957
- feat: add version query param to GET /workflows/{id} endpoint by @harshsinha03 in #6956
- fix: async PostgresDb returns None for missing tables instead of logging ERROR by @kausmeows in #6965
- [fix] replace fragile blocklist with prefix-based structured output detection by @hztBUAA in #6643
- cookbook: add MLflow observability integration via OpenInference by @ysolanky in #6930
- chore: add PR triage automation and improve contribution guidelines by @ysolanky in #6959
- fix: support mistral v2 imports by @harshsinha03 in #6969
- feat: add run-level params to Workflow.run() and arun() by @uzaxirr in #6927
- fix: separate chat and responses metrics by @ysolanky in #6973
- feat: add Telegram interface and extended TelegramTools by @Mustafa-Esoofally in #6377
- chore: consolidate pr-triage workflow into single comment by @ysolanky in #7013
- feat: add timeout parameter to Gemini model class by @fehmisener in #7021
- fix: use list comprehension in parse_tool_calls to prevent shared dict references by @ArivunidhiA in #6579
- feat: add Docling reader integration for advanced document processing by @sannya-singal in #6981
- fix: register Telegram interfaces in system test gateway by @Mustafa-Esoofally in #7026
- feat: WhatsApp interface V2 — media I/O, interactive tools, Team/Workflow support by @Mustafa-Esoofally in #6466
- fix: use valid Telegram bot token format in system tests by @Mustafa-Esoofally in #7027
- chore: Release v2.5.10 by @kausmeows in #7011
New Contributors
- @v-vinson made their first contribution in #6399
- @sannya-singal made their first contribution in #6981
Full Changelog: v2.5.9...v2.5.10
v2.5.9
Changelog
New Features:
- Followups: Added built-in followup suggestions for Agent and Team. See cookbook.
- Datetime Format: Added
datetime_formatparameter to Agent and Team, allowing customstrftimeformatting 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
GoogleCalendarToolswith new tools, service account auth, and cookbooks.
Bug Fixes:
- HITL: Fixed human in the loop to support
add_history_to_contextduring multi-round conversations while running - Tools: Removed (None) prefix from tool parameter descriptions
- Siliconflow Model Provider: Updated to use correct default
base_urlfrom.comto.cn - Learning PROPOSE Mode: Auto-enable chat history for
LearningMode.PROPOSEfor multi-turn confirmation. - AgentOS API Docs: Added descriptions to all
Form/Fileparameters across agent, team, and workflow API endpoints forOpenAPI/Swaggervisibility
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
- @abhi10691 made their first contribution in #6888
- @NIK-TIGER-BILL made their first contribution in #6933
Full Changelog: v2.5.8...v2.5.9
v2.5.8
Changelog
New Features
- Human-Readable IDs: Agents and teams now use human-readable identifiers (e.g.,
brave-falcon-7x3k) instead ofUUIDs, making debugging and monitoring more intuitive. - AgentOS:
serve()now supportsAGENT_OS_HOSTandAGENT_OS_PORTenvironment variables as fallbacks, simplifying container deployments. - GitlabTools: Added
GitlabToolswith read-focused GitLab integrations, async support, and cleaner tool configuration. - GmailTools: Extended
GmailToolswith 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_mediasetting and is rather scrubbed before storing in DB - OpenAIResponses: Fixed handling of mixed
external_executionand regular tools when using OpenAI Responses API. - MySQL: Added
json_serializerto MySQL engine creation for proper JSON handling. - PostgreSQL: Removed
session_typefilter fromget_sessionto prevent session data loss when session types change. - Workflow: Fixed a bug where
Loopiterations always received the original input instead of the previous iteration's output. Added a flagforward_iteration_outputto 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
- @SamOpenClaw made their first contribution in #6555
- @SalimELMARDI made their first contribution in #6721
Full Changelog: v2.5.7...v2.5.8
v2.5.7
New Features:
- OpenAI-Like Embedder: Added
OpenAILikeEmbedderfor providers with OpenAI compatible embedding endpoints
Improvements:
- Session Search Tool: Agents and teams can now browse previous sessions with a two-step
search_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 optionalnum_runsparameter so the model can avoid pulling in full conversations from long sessions.
Bug Fixes:
- ChromaDB: Added ID deduplication for documents with identical content across all insert and upsert methods.
- Azure OpenAI Embedder: Added support for non-default Azure-deployed models (e.g. Cohere) and improved dimensions handling for custom deployments.
- Slack Interface: Fixed a bug preventing
user_idfrom being propagated
What's Changed
- cookbook: restructure knowledge cookbooks into story-driven journeys by @willemcdejongh in #6681
- [feat] add OpenAILikeEmbedder for LiteLLM proxy compatibility by @hztBUAA in #6648
- fix: wrap input as list for non-default Azure models by @giulio-leone in #6809
- fix: deduplicate ChromaDB document IDs to prevent batch insert failures by @harshsinha03 in #6714
- fix: pass user_id for all Slack events and add thread_message_limit by @Mustafa-Esoofally in #6766
- refactor: simplify search_session_history — drop query, add per-run limits by @ysolanky in #6858
- feat: propagate team reference to member agent tools by @Mustafa-Esoofally in #6707
- chore: release 2.5.7 by @ysolanky in #6864
New Contributors
- @giulio-leone made their first contribution in #6809
Full Changelog: v2.5.6...v2.5.7
v2.5.6
Changelog
New Features:
- GitHub App Authentication for Knowledge Sources: Adds support for authenticating with GitHub as a GitHub App (
app_id,installation_id,private_key) in addition to personal access tokens, with thread-safe token caching and both sync/async variants. - File Upload: Added
image/heicandimage/heifsupport to file upload endpoints. - Approvals: Added approval status endpoint and admin-gated continue run enforcement.
- Traces: Added advanced filtering DSL support in Agent OS
Improvements:
- Google Tools: Restructured Google tools into
agno.tools.googlesub-package (from agno.tools.google import GmailTools). Old import paths still work with a backwards compatibility. - Team Task Mode:
- Enhances
TeamMode.tasksstreaming to provide structured task data for frontend rendering in events likeTeamTaskCreatedandTeamTaskUpdated - Structured task data in
TaskStateUpdatedEvent: Addedtasks: List[TaskData]field containing full task details (id, title, description, status, assignee, dependencies, result) and completion_summary field
- Enhances
Bug Fixes:
- OpenAI Responses:
- Fixed vector store polling race condition where
file_searchsilently returned empty results due to eventual consistency in OpenAI'svector_stores.files.list
API. - Added
input_filesupport to OpenAIResponses
- Fixed vector store polling race condition where
- Sentence Transformer Reranker: Fixed VRAM memory leak in SentenceTransformerReranker caused by CrossEncoder being instantiated on every
_rerank()call instead of being reused. - JSON Schema: Extended support for
Literaltypes in JSON schema generation
What's Changed
- feat: extend Registry with agents/teams for UI workflow rehydration by @ysolanky in #6278
- cookbook: add Gemini 3 progressive guide by @ysolanky in #6730
- fix: add support for Literal types in JSON schema generation by @kausmeows in #6723
- fix: updated links in README by @kyleaton in #6749
- feat: add image/heic and image/heif support to file upload endpoints by @Br1an67 in #6791
- feat: add input_file support to OpenAIResponses by @uzaxirr in #6806
- [fix] properly release SentenceTransformerReranker models to prevent VRAM leak by @hztBUAA in #6638
- feat: add advanced filtering dsl by @kausmeows in #6671
- feat: restructure Google tools, add FileTools.search_content, add enable flags by @ashpreetbedi in #6833
- feat: add GitHub App authentication support to GitHubConfig by @willemcdejongh in #6831
- fix: use Coroutine return types for arun/acontinue_run overloads by @ysolanky in #6836
- feat: add approval status endpoint and admin-gated continue run enforcement by @kausmeows in #6598
- chore: update team tasks stream by @kausmeows in #6718
- fix: return 503 instead of 404 for disabled AgentOS features by @ysolanky in #6837
- chore: Release v2.5.6 by @kausmeows in #6823
New Contributors
Full Changelog: v2.5.5...v2.5.6
v2.5.5
Changelog
New Features:
- Slack Interface:
- Responses now stream in real-time with live progress cards for tool calls, reasoning, and workflow steps.
- Each Slack instance supports its own
tokenandsigning_secret, enabling multiple bots on the same server.
Improvements:
- ModelsLabTools: Extended
ModelsLabToolsto support image generation via ModelsLab's text-to-image API, completing the full ModelsLab media suite.
Bug Fixes:
- Gemini: Fixed empty message parts causing request failures when sending conversations to the Gemini API.
- AWS Bedrock: Merge consecutive
toolResultblocks into single user message. - Workflows: Handle raw image bytes in workflow step’s
_convert_image_artifacts_to_images - Knowledge Filters: serialize FilterExpr objects in GET /agents and /teams response
What's Changed
- [fix] Merge consecutive toolResult blocks into single user message by @Yoo-Joo in #6694
- feat: Add image generation (PNG/JPG) to ModelsLabTools by @adhikjoshi in #6670
- chore: fix links and update to new cookbook structure by @shaloo in #6616
- feat: Slack interface updates by @Mustafa-Esoofally in #6615
- [fix] Handle raw image bytes in workflow step _convert_image_artifacts_to_images by @Himanshu040604 in #6710
- fix: missing registry apis, openapi title and dynamic version pickup by @shaloo in #6713
- [fix] filter empty message parts before sending to Gemini API by @hztBUAA in #6644
- fix: serialize FilterExpr objects in GET /agents response by @uzaxirr in #6581
- feat: add approval and teams agent os cookbook by @Ayush0054 in #6717
- fix: add aiohttp to gateway Dockerfile for Slack async client by @Mustafa-Esoofally in #6719
- chore: Release v2.5.5 by @kausmeows in #6712
New Contributors
- @adhikjoshi made their first contribution in #6670
- @shaloo made their first contribution in #6616
- @Himanshu040604 made their first contribution in #6710
Full Changelog: v2.5.4...v2.5.5
v2.5.4
Changelog
New Features:
- PgVector: added
similarity_thresholdparameter for filtering search results by minimum similarity score. - Team: Added streaming event support for
TeamMode.tasks, enabling real-time event emission during autonomous task execution. - Workflows HITL: Add support for HITL in workflows at Step level to pause for confirmation and user input. See docs
Improvements:
- Metrics: Redesigns the metrics system to provide per-model, per-component granular tracking across the entire agent/team/workflow lifecycle.
- WebsearchTools: expose timelimit, region and backend params in
DuckDuckGoTools - SeltzTools: Updated to use Seltz SDK 0.1.3
Bug Fixes:
- AWS Bedrock: Fixed to refresh AWS credentials on every Bedrock request when using boto3 session.
@tooldecorator: Fixed @tool decorator to not fail for Agent/Team type annotations- Pydantic model serialization: Fixed Pydantic model serialization in tool cache.
What's Changed
- chore: update quickstart by @ashpreetbedi in #6656
- chore: new cookbook by @ashpreetbedi in #6663
- feat: add similarity_threshold parameter for filtering search for PgVector [SDK-441] by @harshsinha03 in #6216
- cookbook: agent level by @ysolanky in #6665
- chore: split team tests into 4 balanced parallel jobs by @ysolanky in #6628
- fix: handle Pydantic model serialization in tool cache by @fehmisener in #6678
- [feat] expose timelimit, region and backend params in DuckDuckGoTools by @hztBUAA in #6650
- fix: @tool decorator fails with Agent/Team type annotations by @ysolanky in #6610
- chore: openai pdf input bytes by @kausmeows in #6685
- fix: add CI guard for split test coverage + fix 3 missing knowledge tests by @Mustafa-Esoofally in #6668
- fix: use fresh OpenAI clients in memori multi-registration tests by @Mustafa-Esoofally in #6691
- fix: refresh AWS credentials on every Bedrock request when using boto3 session by @Mustafa-Esoofally in #6657
- feat: metrics update by @harshsinha03 in #6405
- feat: support streaming for team task mode by @kausmeows in #6622
- [feat] Update SeltzTools for Seltz SDK 0.1.3 by @WilliamEspegren in #6292
- fix: include member response metrics in team session metrics by @ysolanky in #6704
- feat: step level workflow HITL by @kausmeows in #6211
- refactor: replace heavyweight RunOutput collectors with RunMetrics by @ysolanky in #6703
- fix: harden hook execution and PII guardrail by @Mustafa-Esoofally in #6483
- chore: Release v2.5.4 by @kausmeows in #6661
Full Changelog: v2.5.3...v2.5.4
v2.5.3
Changelog
New Features:
- Remote Knowledge: Added endpoints to support listing of remote contents via API. Enables uploading of content in S3 buckets via AgentOS
Improvements:
- PDF Reader: Added
sanitize_contentparameter toBasePDFReader(enabled by default) that normalizes fragmented PDF text extraction — collapsing word-per-line artifacts while preserving paragraph breaks. Disable withsanitize_content=Falsefor PDFs containing structured content like code or tables. - PDF Reader: Added a
sanitize_contentparameter toBasePDFReaderthat normalizes extracted PDF text by collapsing excessive whitespace sequences into single spaces.
Bug Fixes:
- Knowledge Retriever: Fix issue where
knowledge_retrieverignored whensearch_knowledge=Trueenabled. - Claude: Fixed streaming metrics double-count
input_tokensfor Anthropic models - Knowledge Search: Fixed match include/exclude patterns against filename for directory scanning
- Reasoning: fixed
reasoning_contentduplication across reasoning steps. - Deepcopy on Agent/Team/Workflow: fixed
deep_copyfails for nested teams due to non-init dataclass fields. - HITL: fixed HITL pause handlers silently dropping
session_statechanges in both agent and team modules. - Workflow Parallel Steps: fixed race condition on
run_context.output_schemain Parallel execution.
What's Changed
- [fix] Prevent double-counting input_tokens for Anthropic streaming metrics by @ArivunidhiA in #6580
- feat: add remote content sources with cloud storage loading and browsing by @willemcdejongh in #6584
- chore: anchor gitignore paths for symlinked dirs and add /apps by @ashpreetbedi in #6588
- fix: match include/exclude patterns against filename for directory scanning by @themavik in #6455
- fix: prevent reasoning_content duplication across reasoning steps by @themavik in #6438
- fix: deep_copy fails for nested teams due to non-init dataclass fields by @rodrigocoliveira in #6297
- feat: add content sanitization to PDF reader by @willemcdejongh in #6591
- ci: smart @claude handler with review plugin routing by @Mustafa-Esoofally in #6603
- fix: handle missing mime_type in Gemini file formatting by @Mustafa-Esoofally in #6367
- fix: remove prompt input from claude review to enable tag mode by @Mustafa-Esoofally in #6604
- fix: move concurrency to job level to prevent self-cancellation by @Mustafa-Esoofally in #6605
- ci: enable show_full_output for claude review debugging by @Mustafa-Esoofally in #6606
- cookbook: v2.5 testing audit fixes and test logs by @Mustafa-Esoofally in #6546
- [fix] HITL pause session state loss by @Mustafa-Esoofally in #6495
- fix: move Parallel.steps to a proper dataclass field with default_factory by @ysolanky in #6608
- fix: prevent race condition on run_context.output_schema in Parallel execution by @ysolanky in #6609
- fix: knowledge_retriever ignored when search_knowledge=True by @willemcdejongh in #6593
- chore: update yfinance tools to have options by @kausmeows in #6607
- feat: add OpenTelemetry and Agno instrumentation deps to os extras by @ysolanky in #6618
- fix: auto-inject linked_to filter for list-based FilterExpr filters by @willemcdejongh in #6611
- fix: add files field to WorkflowRunOutput and fix file serialization by @kausmeows in #6544
- fix: datetime JSON serialization for PostgreSQL session storage by @kausmeows in #6363
- fix: complete user_id handling in SDK client session methods by @Mustafa-Esoofally in #6502
- feat: add is_component, current_version, and stage to list endpoints by @ysolanky in #6266
- chore: release 2.5.3 by @ysolanky in #6619
New Contributors
- @ArivunidhiA made their first contribution in #6580
- @themavik made their first contribution in #6455
Full Changelog: v2.5.2...v2.5.3
v2.5.2
Changelog
- License Change: Changed license from Mozilla Public License 2.0 (MPL 2.0) to Apache Software License.
What's Changed
- Release 2.5.2 by @ashpreetbedi in #6578
Full Changelog: v2.5.1...v2.5.2
v2.5.1
Changelog
New Features
- CodingTools: New toolkit for code-related operations.
- UserFeedbackTools: New toolkit for collecting user feedback.
Bug Fixes
- Team Member Resolution: Prioritize explicit
idovernameinget_member_idfor more predictable member selection. - TavilyTools: Removed deprecated
include_answerkwarg from search method. - MCP Transport: Fail explicitly when
header_provideris incompatible with transport type. - FastEmbed: Cache FastEmbed model and reset reader state between calls for better performance.
What's Changed
- [fix] remove include_answer kwarg from tavily tool method by @mklrlnd424 in #5755
- refactor: Fail explicitly when header_provider is incompatible with transport by @bhatt-neel-dev in #5988
- fix: prioritize explicit id over name in get_member_id by @kausmeows in #6336
- fix: Cache FastEmbed model and reset reader state between calls by @Mustafa-Esoofally in #6029
- test: improve test suite with rate-limit protection by @ashpreetbedi in #6535
- cookbook: Restructure 02_agents into numbered directories with feature coverage by @ashpreetbedi in #6536
- cookbook: Improve cookbook demo by @ashpreetbedi in #6538
- cookbook: Make 03_teams fully testable and feature-complete by @ashpreetbedi in #6557
- ci: add Claude Code workflow with code-review plugin by @Mustafa-Esoofally in #6560
- fix: use correct marketplace for code-review plugin by @Mustafa-Esoofally in #6562
- feat: add CodingTools, UserFeedbackTools, and demo cookbook updates by @ashpreetbedi in #6572
- release: v2.5.1 by @ashpreetbedi in #6576
New Contributors
- @mklrlnd424 made their first contribution in #5755
Full Changelog: v2.5.0...v2.5.1