Releases: agno-agi/agno
Releases · agno-agi/agno
v2.4.5
Changelog
New Features:
- SeltzTools: A new toolkit featuring support for Seltz Search
add_search_knowledge_instructions: Addsadd_search_knowledge_instructionsparameter to Agent and Team class to control whether knowledge search instructions are added to the system prompt.`
What's Changed
- fix: knowledge cookbook bugs and improve consistency. Reverted by @Mustafa-Esoofally in #6052
- [feat] Add Seltz tools integration by @WilliamEspegren in #6133
- chore: update search knowledge base context by @ashpreetbedi in #6181
- chore: release 2.4.5 by @ysolanky in #6185
Full Changelog: v2.4.4...v2.4.5
v2.4.4
Changelog
New Features:
- Unsplash image search tools: Added
UnsplashToolstoolkit for searching and retrieving high-quality, royalty-free images from Unsplash API. - Moonshot model provider: Added moonshot.ai model provider
external_execution_silentparam for tool decorator: Added a new param to make external tool execution silent by not populating the run response content with placeholder strings
Improvements:
dependenciesin Workflows: When usingJWTMiddlewarewithdependencies_claimsto 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.
Bug Fixes:
- Markdown Chunker -
split_on_headingsnow respectschunk_sizeparameter. - LanceDB empty vectors - Added a fix to reduce empty vectors in lancedb due to embedding failures
- SurrealDB -
created_attimestamps are now preserved on updates andget_sessioncorrectly filters by session type - Firestore - Fixed a bug causing rename session operation to lead to unintended overwrites
What's Changed
- ci: consolidate Claude Code workflows into single file by @Mustafa-Esoofally in #6152
- ci: use single job with conditional steps for cleaner CI display by @Mustafa-Esoofally in #6153
- Fix broken link by @jss367 in #6154
- [feat] Add Unsplash image search tools by @dvy246 in #6105
- [feat] add moonshot model provider by @Tuyohai in #6142
- fix: Markdownchunker respects chunk size for split_on_headings by @willemcdejongh in #6169
- fix: LanceDB vector field None after Knowledge.insert() by @harshsinha03 in #6149
- fix: pass dependencies to RunContext in Workflows by @kausmeows in #6172
- fix: SurrealDB created_at timestamp preservation and session type filtering by @harshsinha03 in #6176
- fix: add
silentoption to suppress verbose messages for HITL tools by @rodrigocoliveira in #5842 - [fix]: Store Firestore session data as nested object instead of JSON by @Byunk in #5866
- chore: Release 2.4.4 by @kausmeows in #6171
New Contributors
- @jss367 made their first contribution in #6154
- @dvy246 made their first contribution in #6105
- @Tuyohai made their first contribution in #6142
- @rodrigocoliveira made their first contribution in #5842
- @Byunk made their first contribution in #5866
Full Changelog: v2.4.3...v2.4.4
v2.4.3
Changelog
New Features:
- Excel Reader: Added new reader class
ExcelReaderfor better .xls and .xlsx support
Bug Fixes:
- Reasoning: handle unclosed JSON code blocks in reasoning steps
CustomEvent:- Fix incorrect handling of a confirmed tool’s CustomEvent in
acontinue_runfor HITL - Fix added to preserve subclass properties after session reload
- Fix incorrect handling of a confirmed tool’s CustomEvent in
- OpenAIEmbedder: Fixed OpenAIEmbedder to pass the dimensions parameter for third-party OpenAI-compatible embedding APIs
What's Changed
- [fix] Update Discord link in README.md by @kyleaton in #6138
- fix: respect explicit stream=False parameter in workflow run methods by @Akaban in #6132
- fix: handle unclosed JSON code blocks in reasoning steps by @Goodnight77 in #5917
- chore: update CLI method names to cli_app by @Ayush0054 in #6144
- fix: yield CustomEvent from tools in continue_run/acontinue_run by @kausmeows in #6146
- feat: add registry into AgentOS demo. by @anuragts in #6147
- fix: Fixed OpenAIEmbedder to pass the dimensions parameter for third-party OpenAI-compatible embedding APIs. by @SyloYamtao in #6143
- fix: preserve CustomEvent subclass properties during deserialization by @harshsinha03 in #6148
- feat: Knowledge Excel Reader by @Mustafa-Esoofally in #6129
- chore: Release 2.4.3 by @kausmeows in #6140
New Contributors
- @Akaban made their first contribution in #6132
- @Goodnight77 made their first contribution in #5917
- @SyloYamtao made their first contribution in #6143
Full Changelog: v2.4.2...v2.4.3
v2.4.2
Changelog
New Features:
- Azure Blob Storage: Knowledge now supports private Azure Blob Storage for file loading, similarly to Sharepoint and Github.
- OpenAI Responses API: Add support for the OpenAI Responses API specification for providers that implement it (Ollama v0.13.3+, OpenRouter beta).
Bug Fixes:
- LightRAG search: Fix added to preserve references in search response.
- MilvusDB: Specify
output_fieldsin document lookup queries to fix Milvus Lite error - Async Database Drivers: Fix table caching in AsyncSQLiteDb, AsyncPostgresDb, AsyncMySQLDb, and FirestoreDb where
Nonevalues were incorrectly cached, preventing table creation on subsequent calls.
What's Changed
- fix: preserve LightRAG references in search response [SDK-404] by @harshsinha03 in #6119
- fix: Milvus Lite query bug and upsert hybrid search handling [SDK-294] by @harshsinha03 in #6118
- feat: Azure blob storage by @willemcdejongh in #6120
- [feat] add OpenAI Responses API support for Ollama and OpenRouter by @ysolanky in #6061
- fix: Remove deprecated Pydantic Config and use
model_configby @benmezger in #6123 - fix: remove hasattr caching in async db drivers preventing table creation by @kausmeows in #6128
- chore: Release 2.4.2 by @kausmeows in #6130
Full Changelog: v2.4.1...v2.4.2
v2.4.1
Changelog
New Features:
- N1N Model Provider: Added n1n.ai as an OpenAI-compatible provider.
- Knowledge: Added first-class Excel ingestion
(.xlsx/.xls)by routing spreadsheets through the existing CSV reader, parsing workbooks per sheet into separate documents with sheet metadata. - Github/Sharepoint support: Added functionality in SDK and on API to support files in private github and sharepoint repos to be added to Knowledge.
Improvements:
- Streaming metrics: Add
collect_metrics_on_completionflag to only collect metrics from the final chunk. - Interfaces: Prevent errors on interfaces from ending up to the user facing message.
Bug Fixes:
- CustomEvent: Add
tool_call_idto trace events back to their originating tool calls. - Knowledge metadata: Fixed to properly propogate metdata filters while using knowledge
- Cerebras Model Provider: Fixed a 422 validation error when using Cerebras models with structured outputs (JSON schema format).
- Team task delegation: Fixed a Python closure bug in
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. - Async generator tools: Handle async generator iteration exceptions gracefully by capturing the error on the tool call instead of re-raising, so the agent can continue and the model can decide how to proceed.
What's Changed
- fix: knowledge metadata propogation by @kausmeows in #6078
- fix: handle empty str password at knowledge level by @kausmeows in #6081
- fix: add additionalProperties: false to Cerebras JSON schemas by @deksprime in #6014
- fix: Python Closure Bug in team.py function
adelegate_task_to_membersby @d8rt8v in #6067 - ci: Run Claude Code automatically on PRs by @Mustafa-Esoofally in #6088
- fix: draft config retrieval and nested team member loading in components by @kausmeows in #6083
- fix: interfaces error handling by @VirusDumb in #6011
- fix: handle async generator exceptions gracefully like sync generators by @uzaxirr in #6108
- feat: add n1n provider by @n1n-api in #6056
- fix: Perplexity streaming token metrics accumulation by @celobusana in #6058
- feat: add tool_call_id into CustomEvent that yielded from tools in agent by @RayneSun in #6098
- chore: update ag infra templates by @ysolanky in #6079
- chore: improve CLAUDE.md documentation by @ysolanky in #6103
- chore: updated windows dev_setup script by @VirusDumb in #6024
- feat: Knowledge remote support by @willemcdejongh in #6106
- [feat] Support Excel files in Knowledge by @liqiongyu in #5862
- chore: Release 2.4.1 by @kausmeows in #6109
New Contributors
- @deksprime made their first contribution in #6014
- @n1n-api made their first contribution in #6056
- @RayneSun made their first contribution in #6098
Full Changelog: v2.4.0...v2.4.1
v2.4.0
Changelog
New Features:
- Knowledge Protocol: Introduced
KnowledgeProtocolThe 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. - Agent Builder: Users can now persist and manage Agent, Team, and Workflow configurations directly in the database. New AgentOS endpoints enable programmatic creation, retrieval, and updates of component definitions.
- New Events: Added new events for Model, compression and memory.
ModelRequestStartedandModelRequestCompletedCompressionStartedandCompressionCompleted- Update
MemoryUpdateCompletedto contain the memory content.
- Gemini file inputs: Add direct GCS and external URL support for Gemini file inputs
- TavilyTools: Add
api_base_urlparameter support to TavilyTools for custom hosted usecases.
Improvements:
- Default DB on
AgentOS: Adddbto theAgentOSclass. If populated, it propagates to all
agents, teams and workflows without db. It is also used as tracing db. - Deprecated
enable_user_memories: Introducedupdate_memory_on_runfor the same behavior. - Knowledge config endpoint: Improved checking for available readers without needing instantiation of the reader classes. Reduced unnecessary warnings and improved response times.
- Unify dates format on OS API layer: Unify the format of all dates we send via the OS API. Everything is now a UTC datetime
- AgentOS Trailing Slash Handling: Add a
TrailingSlashMiddlewarethat strips trailing slashes from request paths, all endpoints returns identical responses without 307 redirects. - Pass instructions as is without XML tags:
- Agent & Team: Instructions are now added directly to the system message without
<instructions>tags by default - Added
add_instruction_tags=Trueoption to restore the previous behavior for users who prefer structured prompts
- Agent & Team: Instructions are now added directly to the system message without
Bug Fixes:
- LanceDB: Fixed a bug for duplicate embeddings during async insert and upsert operations.
- Qdrant Async Search: Fixed async search methods which were preventing event loop blocking during concurrent async operations.
- CSV Reader: CSVReader and FieldLabeledCSVReader ignored
encodingparameter for BytesIO inputs - always used hardcoded"utf-8"instead ofself.encoding or "utf-8". - PDF Reader: Fixed bug where empty string passwords (
"") were incorrectly treated asNonedue to Python's falsy evaluation - Openrouter with Gemini: Adds support for preserving Gemini's
reasoning_detailsfield when using OpenRouter, fixing multi-turn conversation issues. - MongoDB Async Search: Fixed
async_search()to useasync_get_embedding()instead of blockingget_embedding()calls, preventing event loop blocking during concurrent async operations. - Gemini vertex ai file upload: Fixed a bug where on trying to upload files to Gemini via Vertex AI, the API returned a 400 error.
- Skills System Prompt: Fixed an issue where agents attempted to call skill names directly as functions, resulting in "Function not found" errors.
Breaking changes:
- Remove all deprecated fields:
session_state, dependencies, user_idetc in tool functions and hooks whereRunContexthas replaced itstream_intermediate_steps→stream_eventsyield_run_response→yield_run_outputdelegate_task_to_all_membersremoved from Team class
- Add WebSearchTools: Replacing DDG websearch tool with a Generic web search tool which will be the default on for any websearch related cookbooks & docs.
- Knowledge add_content() renamed to insert(): The
add_content()method and its variants have been renamed toinsert()insert_manyOld method names are still supported, but all examples and docs will soon only reference the new methods. - AgentOS
tracing_db:tracing_dbhas been deprecated in favor ofdbparameter on the AgentOS.
What's Changed
- fix: gemini vertex ai file upload error by @Mustafa-Esoofally in #5857
- chore: Demo script for windows by @VirusDumb in #5965
- [fix] Add missing attributes to RemoteAgent for Team compatibility by @AhmedA-afk in #5987
- fix: use async embedder in async search methods for qdrant by @uzaxirr in #6002
- fix: use async embedder in MongoDB async_search to prevent event loop blocking by @uzaxirr in #6003
- fix: prevent duplicate embedding in LanceDB insert() by @pengzy-cosmo in #5919
- feat: Add direct GCS and external URL support for Gemini file inputs by @Mustafa-Esoofally in #5997
- [feat] Add api_base_url parameter support to TavilyTools by @ormeilu in #5962
- feat(cookbook): Revamp 01_demo with new impressive agents by @ashpreetbedi in #6010
- fix: add TrailingSlashMiddleware to normalize URL paths by @uzaxirr in #5985
- fix: Allow empty string passwords for PDF decryption by @Mustafa-Esoofally in #6053
- fix: clarify that skill names are not callable functions by @ysolanky in #6062
- feat: v2.4.0 by @kausmeows in #5818
- fix: Update failing integration test prompt by @willemcdejongh in #6074
- feat: merge v2.4.0 with cookbook refactoring by @ashpreetbedi in #6042
- fix: preserve Router client across copies for background tasks by @ysolanky in #6064
- fix: correct
openai-agentsinstall instruction by @harshsinha03 in #6076 - chore: Release 2.4.0 by @kausmeows in #6066
New Contributors
- @AhmedA-afk made their first contribution in #5987
- @pengzy-cosmo made their first contribution in #5919
- @ormeilu made their first contribution in #5962
Full Changelog: v2.3.26...v2.4.0
v2.3.26
Changelog
Improvements:
- Per-Request Isolation: Improved request-level isolation for agents/teams/workflows in shared FastAPI processes.
What's Changed
- feat: isolation by @ashpreetbedi in #5990
- chore: v2.3.26 by @kausmeows in #5993
Full Changelog: v2.3.25...v2.3.26
v2.3.25
Changelog
New Features:
- LearningMachine: A unified learning system that enables agents to learn from every interaction. It coordinates multiple learning types, each with its own storage backend and retrieval pattern.
- Code Chunker: A new chunker that leverages ASTs to split code into contextually relevant segments
Improvements:
- BrowserbaseTools: Fixed
get_page_content()tool failing on large pages by parsing HTML to extract only visible text content (strips scripts, styles, comments) - Models: Skip retries for non-retryable errors from LLM providers (auth failures, context limits)
- AgentOS: Fixed inconsistent URL handling where trailing slashes caused 404 errors or unnecessary redirects.
Bug Fixes:
- GoogleBigQueryTools: Fixed SQL statement parsing/cleanup when queries include comments.
- DocumentChunking: Fixed to properly respect
chunk_sizeParameter
What's Changed
- fix: GoogleBigQueryTools SQL statements parsing by @manuhortet in #5957
- chore: new demo env script by @ashpreetbedi in #5961
- Add projects folder to gitignore for local symlink setup by @ashpreetbedi in #5964
- feat: Add Claude Code GitHub Workflow by @Mustafa-Esoofally in #5976
- fix: parse html content from browserbase tools by @kausmeows in #5967
- Fix: DocumentChunking Now Properly Respects chunk_size Parameter by @bhatt-neel-dev in #5916
- fix: add retry logic to skip non-retryable model provider errors. by @uzaxirr in #5984
- feat: Learning Machine by @ashpreetbedi in #5897
- feat: Add CodeChunking strategy for AST-based code chunking [SDK-418] by @harshsinha03 in #5981
- chore: v2.3.25 by @kausmeows in #5986
Full Changelog: v2.3.24...v2.3.25
v2.3.24
Changelog
Improvements:
- MongoDB connection handshake now includes Agno version metadata. This enables better connection identification and log analysis for users hosting MongoDB clusters with multiple applications.
- Crawl4aiTools: Add the
proxy_configparameter, allowing further configuration of the Toolkit. - Forbid tools to operate out of base directory: Update
PythonToolsandMLXTranscribeToolsto automatically disallow operating outside of the contextual base directory. Add therestrict_to_base_dirto opt out of this feature and allow operations outside of the base directory. - MarkdownChunker: Now support
split_on_headingsparameter to finely control how chunks are separated. - Knowledge ContentsDB requirement: Improved warning and log messages when contentsDB is not used with
Knowledge. Improved filter handling for agentic search.
Bug Fixes:
- Team session names: Fix an issue when using
get_session_namedirectly from Team instances. - HITL consecutive user input: Fix an issue on certain HITL flows when getting user input in multiple consecutive rounds.
- AgentOS Knowledge router: Fix an issue where AsyncDB was not correctly routed to for content update operations
What's Changed
- fix: generating session name for Team by @kepler in #5933
- Fix: active_requirements not populated for subsequent HITL round by @mishramonalisha76 in #5926
- [chore] Include Agno version details in MongoDB handshake by @NoahStapp in #5922
- fix: introduce proxy_config to the Crawl4aiTools toolkit by @aayush598 in #5859
- fix: replace eval() with type mapping [SDK-417] by @harshsinha03 in #5912
- feat: add restrict_to_base_dir param to PythonTools and MLXTranscribeTools by @manuhortet in #5940
- fix: Knowledge apatch content support by @willemcdejongh in #5942
- fix: AttributeError in get_session_name when run_input is a string by @pbassut in #5869
- chore: Knowledge logging and filtering logic updates by @willemcdejongh in #5927
- chore: v2.3.24 by @manuhortet in #5949
New Contributors
- @NoahStapp made their first contribution in #5922
- @pbassut made their first contribution in #5869
Full Changelog: v2.3.23...v2.3.24
v2.3.23
Changelog
Improvements:
- Async Tool Support: Toolkit now supports async tool functions, which are automatically selected when the agent runs in an async context.
Bug Fixes:
header_provider: Fix for check onMCPTools.- Team Run Cancellation: Fixed issue on async team runs where cancellation was not handled correctly.
What's Changed
- fix: handle foreign key ref for custom traces table name by @kausmeows in #5888
- [fix] Add response_usage propagation to model response by @tyook in #5872
- Fix: team run cancellation by @dirkbrnd in #5932
- chore: async tool usage by @kausmeows in #5889
- chore: Release 2.3.23 by @dirkbrnd in #5934
New Contributors
Full Changelog: v2.3.22...v2.3.23