Releases: agno-agi/agno
Releases · agno-agi/agno
v2.2.6
Changelog
New Features:
- Conversational Workflows: Workflows can now have a chat like experience similar to Agent/Team. See more in our docs
- Input validation: Agents and Teams now support input schema validation on AgentOS.
- Model as string: You can now define the Models used by your Agent/Teams as a string. For example:
openai:gpt-5 - Notion Toolkit: A new toolkit in Agno to enable Agents to interact with your Notion pages. See more in our docs
Improvements:
- FileTools toolkit: Added new functionality and configuration to our
FileToolstoolkit. You can now use it to read large files in chunks, perform partial updates to large files, and delete files. - Add Reranker support to search operation in Milvus vector database: This ensures that results are reordered based on relevance after initial vector search.
- Client persistence for all models: All model implementations now cache and reuse their HTTP clients when possible.
- Reranking support for Milvus: When using Knowledge with Milvus as vector database, reranking will happen now when searching for documents.
- Warning log for workflow history feature without database: Added a log to clarify as a database if required to persist runs for access to history.
- Default model for accuracy evals: When running accuracy evaluations via the AgentOS API, the evaluator agent now defaults to using the model used by the evaluated agentic entity, instead of the general default (OpenAI).
- Session State: Session state can now be accessed on
RunOutputandRunCompletedevent for Agents andTeamRunOutputandTeamRunCompletedevent for teams
What's Changed
- feat: Input Schema for Agent and Team on OS by @willemcdejongh in #5113
- fix: update input schemas by @anuragts in #5258
- feat: new functions for file tool by @mickvav in #5040
- [fix] Persist model clients and improve http_client type safety + deepcopy fix [SDK-60] by @harshsinha03 in #5253
- feat: workflow agent by @kausmeows in #4775
- feat: workflow notion usecase cookbook + notion toolkit by @kausmeows in #5255
- [fix] Apply reranker to Milvus search results (fixes #5190) by @aayush598 in #5200
- chore: workflow agent changing run input used for session_name by @kausmeows in #5260
- fix: add warning for using workflow history without db by @kausmeows in #5256
- feat: use provided model for evaluator agent in accuracy evaluations by @manuhortet in #5262
- fix: runoutput as workflow event by @ysolanky in #5268
- feat: add session state to runcompleted event and RunOutput by @Mustafa-Esoofally in #4975
- feat: Allow model strings by @Mustafa-Esoofally in #4415
- chore: Release 2.2.6 by @kausmeows in #5257
New Contributors
- @aayush598 made their first contribution in #5200
Full Changelog: v2.2.5...v2.2.6
v2.2.5
Changelog
New features
- Handle non built-in routers when reprovisioning the AgentOS: When using a lifespan function to update and reprovision the AgentOS, support all previously existing routers during the reprovision.
What's Changed
- feat: reprovision routers when updating OS on lifespan functions by @manuhortet in #5246
- chore: v2.2.5 by @manuhortet in #5247
Full Changelog: v2.2.4...v2.2.5
v2.2.4
Changelog
New Features:
- Granular control of history messages: Add
num_history_messagesto control how many messages to consider when getting them from history. - Update AgentOS instances from lifespan functions: You can know gain access to the contextual AgentOS instance in lifespan functions. This is useful to update anything inside the AgentOS instance after it has already been initialized and run.
Improvements:
- Handle media in dict inputs: Media instances are now supported when providing the input for a run as a dictionary, instead of as a list of Messages.
Bug Fixes:
OllamaEmbeddernot respecting custom dimensions parameter: FixedOllamaEmbedderto properly pass thedimensionsparameter to the Ollama API during embedding generation.- Metrics calculation: Fix a problem when persisting metrics calculations when using a model with
:in its name. - Agentic memory deletion: Fix a bug related to user memory deletion when using agentic memory management.
What's Changed
- Fix: OllamaEmbedder not respecting custom dimensions parameter by @ron-42 in #5222
- fix: handle images in dict input by @manuhortet in #4963
- [fix] Persist model clients and improve http_client type safety [SDK-60] by @harshsinha03 in #5168
- Revert "fix: Persist model clients and improve http_client type safety [SDK-60]" by @manuhortet in #5235
- feat: Num history messages by @dirkbrnd in #5120
- [fix] : change file name from agent_os/mcp to agent_os/mcp_demo by @pritipsingh in #5238
- fix: calculate_date_metrics model id and provider parse error by @sangxiaolong in #5084
- fix: add id param to AsyncPostgresDb by @manuhortet in #5243
- feat: enable memory deletion by default by @manuhortet in #5234
- feat: support updating an OS instance in a FastAPI lifespan function by @manuhortet in #5237
- chore: v2.2.4 by @manuhortet in #5245
New Contributors
- @sangxiaolong made their first contribution in #5084
Full Changelog: v2.2.3...v2.2.4
v2.2.3
Changelog
New Features:
- Support for Async MongoDB: You can now use your MongoDB databases asynchronously, with the
AsyncMongoDbclass. See the docs.
Bug Fixes:
- Async Knowledge Retriever on Teams: Fixed bug where an async knowledge retriever was not awaited correctly in async flows.
What's Changed
- feat: support async mongo by @manuhortet in #5175
- chore: Release 2.2.3 by @dirkbrnd in #5228
Full Changelog: v2.2.2...v2.2.3
v2.2.2
Changelog
New Features:
- LLM Response Caching: You can now cache model responses by setting
cache_response=Trueon the model class. Useful to reduce costs and speed-up development and testing scenarios. See the docs for more details. - Support for Async SQLite: You can now use your SQLite databases asynchronously, with the
AsyncSqliteDbclass. See the docs. - Support for Claude Skills: You can now use Claude's native skills for enhanced reasoning, code execution, and tool interactions. See some examples.
- Support for Tavily Extract API: Agents can now use
TavilyReaderfor knowledge base integration andTavilyToolsfor enhanced URL content extraction with full async support.
Improvements:
- Storage for cancelled runs: Improved the persistence of content when a run cancellation happens.
summary_request_messageon SessionSummaryManager: This allows you to override the user instruction given to the LLM when generating session summaries.- Team Model Inheritance: Team members automatically inherit models from their parent team when no model is specified. This applies to
model,reasoning_model,parser_model, andoutput_model. - Automatic MCP Connection: Now you can simply pass
MCPToolsandMultiMCPToolsto yourAgentorTeamand the connection lifecycle will be handled automatically. This does mean it will connect and reconnect on each run. See the docs for best practices. - Refresh MCP: Added
refresh_connectiononMCPToolsandMultiMCPToolsthat allows connections to be refreshed. See the docs.
Bug Fixes:
- Tool State: Fixed issues related to state being stale on tools attached to agents. Agent/Team tools are now correctly handled across multiple concurrent runs (e.g. via AgentOS).
- Team sessions with JsonDb: Fix and issue getting Team sessions with nested Agent runs inside when using the
JsonDborGCSJsonDbdatabase implementations - Team sessions with async databases: Fix a problem persisting sessions in certain scenarios when using a Team with an asynchronous database driver.
- Sending media to model flag in Team: Pass down the
send_media_to_modelflag set on Team to its member agents. - File Input in Workflows: Fixed file input breaking issue, it is now passed down to
.runand.arunproperly - Async database usage when continuing a paused run: Fixed a bug when using an asynchronous database and continuing a stopped run.
- Media Reconstruction in a session: Fix to correctly read the media from db and handle reconstruction between bytes and base64 properly.
- Avoid empty memories: Fix an edge case where an Agent with access to user memories could create empty memories.
What's Changed
- fix: remove unnecessary hydration from Json db implementations by @Mustafa-Esoofally in #5159
- feat: add LLM model response caching by @uzaxirr in #5138
- fix: Await async save in Team._acleanup_and_store() to prevent history race condition by @SamJupe in #5174
- chore: agent run cancel persist data in db by @kausmeows in #5176
- feat: Makes the summary message prompt editable by @peter-mw in #5152
- fix: Update Elevenlabs toolkit by @Mustafa-Esoofally in #5178
- feat: added Tavily Reader and Enhanced Tavily Tool with extract by @uzaxirr in #4983
- fix: pass
send_media_to_modelfrom Team to its members by @kausmeows in #5199 - chore: send_media_to_model Team cleanup by @kausmeows in #5202
- fix: files support in workflows by @kausmeows in #5203
- Update cookbooks by @ashpreetbedi in #5205
- feat: Add Claude Agent Skills integration by @uzaxirr in #5119
- [feat] Enable team model inheritance to member agents [SDK-238] by @harshsinha03 in #5207
- feat: support async sqlite by @manuhortet in #5156
- fix: support async databases in async run continuation scenarios by @niradler in #5206
- fix: correctly read the media in same session by @kausmeows in #5212
- fix: Tool definition instantiation by @dirkbrnd in #5158
- fix: handle empty memories in the OS API by @manuhortet in #5209
- fix: MCP refreshing and connection handling by @dirkbrnd in #5181
- fix: Convenience functions that break with async DB by @dirkbrnd in #5183
- fix: properly pass schema through to _get_table_columns by @JasonLovesDoggo in #5225
- feat: Re-use sessions between agents and teams by @dirkbrnd in #5211
- fix: add missing files check in response_stream media handling by @lacia-hIE in #5219
- fix(kb): correctly call aupdate_content by @alec-drw in #5213
- feat: Add Async Session Summary Methods for Agent and Team by @ron-42 in #5218
- fix: prevent RunContent with 'None' when show_result=True on tool calls by @jtalmi in #5194
- feat: enable mrkdwn formatting by default for Slack interface output by @ItsRoy69 in #5193
- fix: undefined result variable in arun_function_call by @Mustafa-Esoofally in #5180
- chore: Release 2.2.2 by @dirkbrnd in #5226
New Contributors
- @peter-mw made their first contribution in #5152
- @niradler made their first contribution in #5206
- @lacia-hIE made their first contribution in #5219
- @alec-drw made their first contribution in #5213
Full Changelog: v2.2.1...v2.2.2
v2.2.1
Changelog
New Features:
- PPTX Reader: Added support for reading Microsoft PowerPoint (.pptx) files by
implementing a dedicated PPTXReader class. - Filter tool calls from History: Add ability to load fixed number of tool calls from history using
max_tool_calls_from_history. Helps manage context size and reduce tokens. See the Docs for more information.
Improvements
- Workflow Cancellation: Improved the persistence of content when a cancellation happens.
Bug Fixes:
- Custom Events: Fixed edge cases related to Custom Events not being persisted to storage correctly.
What's Changed
- feat: add pptx reader support by @10Ala10 in #5022
- feat: Filter tool calls from history by @Mustafa-Esoofally in #5073
- fix: Metadata on teams for posthooks by @dirkbrnd in #5153
- fix: Custom Events by @dirkbrnd in #5161
- chore: persist workflow mid-run cancel data by @kausmeows in #5150
- chore: Release 2.2.1 by @dirkbrnd in #5163
Full Changelog: v2.2.0...v2.2.1
v2.2.0
Changelog
Improvements:
- Update workflows arun to return AsyncIterator: The ****
.arunmethod of Workflow now returns an async iterator, similar to Agent and Team. Examplein our docs. - New Events on Agent/Team:
PostHookStarted,PostHookCompletedfor bothAgentandTeameventsSessionSummaryCreationStarted,SessionSummaryCreationCompletedfor bothAgentandTeameventsRunContentCompletedfor bothAgentandTeam→ This signals that the content stream has ended, which is useful for building UIs using the events
- Concurrent Memory Creation: Automatic memory creation is now started on a thread/task at the start of an Agent/Team run, which significantly improves runtime performance where memory generation is enabled.
- Get Run Output on Members: Improved
get_run_outputandget_last_run_outputonAgent/Teamto allow retrieval of runs from members. Therefore after a team has executed you can get the last run straight from the member agent. - Team Delegation Updates:
- Made various updates to the prompts and tool instructions for team delegation, to improve accuracy of member delegation.
- Removed
expected_outputas a default parameter on thedelegate_task_to_membertool call forTeam. This is done to increase flexibility with teams and to avoid incorrect behaviour on the team leader.
- Team History Updates:
- Adds
add_team_history_to_membersto share team-level request/response history with team members. - Improved how
share_member_interactionswork to make sharing interactions during a run more accurate. - Here are the related docs
- Adds
stream_eventsflag: Add astream_eventsflag to Agent, Team, Workflow and all run methods to emit all events whens streaming a response.- Session State Updating: Added
update_session_stateandaupdate_session_statefunctions onAgentandTeamto allow direct updating of the session state that is persisted in the DB. - AgentOS Session Endpoints: Added new endpoints:
Bug Fixes:
Nonevalues in Ollama metrics: Fix a problem calculating metrics with Ollama when certain values wereNoneinstead of0.- Only-media inputs: The Memory and Summary features now work with inputs containing only media
- Input media with Teams: Fix a problem with input media being ignored when streaming a Team’s response.
Breaking Changes and Deprecations
Workflow.arun(..., stream=True)now return anAsyncIterator, i.e. which meansawaitis not required, but insteadasync for event in workflow.arun(...)is the correct syntax.- All events besides
RunContentevents (the actual model content chunks) are now behind thestream_eventsflag and will only be yielded wherestream_events=True. Previously tool-call events were yielded regardless. stream_intermediate_stepshas been deprecated in favour ofstream_events
What's Changed
- fix: Use run_input media in Team._arun_stream by @praveen-livspace in #5127
- fix: Handle None values in Ollama metrics calculation by @ron-42 in #5085
- fix: accept inputs containing only media by @kausmeows in #5129
- feat: Add instantiation time to /health by @dirkbrnd in #4992
- fix: Concurrent memories, session summary events, run content completion events by @dirkbrnd in #4998
- chore: workflows arun returns asynciterator by @kausmeows in #5100
- feat: add stream_events param everywhere by @manuhortet in #5092
- fix: Various issues with team history by @dirkbrnd in #5104
- feat: New session endpoints by @dirkbrnd in #5133
- test: add unit test for pandas tool by @nhankiet in #5140
- chore: Release 2.2.0 by @dirkbrnd in #5146
New Contributors
- @praveen-livspace made their first contribution in #5127
- @ron-42 made their first contribution in #5085
- @nhankiet made their first contribution in #5140
Full Changelog: v2.1.10...v2.2.0
v2.1.10
Changelog
New Features:
- [Experimental feature] Culture: You can now provide your agents with a shared space to think, write, and build on each other's ideas. This will give your agents the ability to learn collectively.
- Gmail tools: ****Mark as read, mark as unread now supported in gmail toolkit.
- Knowledge on AgentOS: Knowledge can now be added and managed via any AgentOS interface without needing to attach it to an Agent or Team.
What's Changed
- feat: Add gmail tools mark-as-read function by @willemcdejongh in #4390
- feat: Support knowledge on agentOS without an agent or team by @willemcdejongh in #5115
- Fix: formatting by @ashpreetbedi in #5130
- feat: introduce culture by @manuhortet in #5124
- chore: v2.1.10 by @manuhortet in #5132
Full Changelog: v2.1.9...v2.1.10
v2.1.9
Improvements:
idon Message: Addidfield on theMessageclass that is used internally for messages sent to LLMs, but also for the list of messages on theRunOutputobjects. This can be used for tracking messages in storage.- Extend support for
session_statein Workflows: Provide access to the contextualsession_stateto theevaluatorandselectorfunctions of theConditionandRouterWorkflow Step classes.
Bug Fixes:
- Metadata On Teams: Fixed issues with passing
metadataonrunandarunfor teams. - Reader on
async_add_contents: Fixed missingreaderattribute not being passed to forknowledge loader functions
What's Changed
- Fix: formatting by @ashpreetbedi in #5109
- fix: Metadata on teams by @dirkbrnd in #5108
- fix: Async_add_contents reader by @willemcdejongh in #5043
- feat: Add
idonMessageby @dirkbrnd in #5110 - feat: propogate
session_stateto condition/router evaluator function by @kausmeows in #5107 - chore: v2.1.9 by @manuhortet in #5122
Full Changelog: v2.1.8...v2.1.9
v2.1.8
Changelog
New Features:
- Class-based executors in Workflows: Enables to use a class-based executor by defining a class that implements the
__call__method. See docs - Post-hook support on streaming: adds support for post-hooks on streaming flows.
Improvements:
- Update
GoogleCalenderToolsto Notify attendees when creating,updating or deleting event in calendar - Update Knowledge search endpoint naming: update endpoint name from
search_vectorstosearch_knowledge - Jira Toolkit: Add logic to the
JiraToolstoolkit to enable creating worklogs.
Bug Fixes:
- Fix AttributeError when continuing agent run with run_id only: Fix AttributeError that occurs when calling
acontinue_run()oracontinue_run_stream()methods with onlyrun_idparameter andrun_response=None. The logging statements were trying to accessrun_response.run_idwhenrun_responsecould beNone. - Fix Dependencies not being resolved in Agent Async run: update to pass the correct dependencies variable name in agent async run
What's Changed
- Fix: fix AttributeError when continuing agent run with run_id only by @10Ala10 in #5070
- chore: enhance cookbook demo with more examples by @uzaxirr in #5012
- feat: Notify attendees when creating,updating or deleting event in calendar by @srexrg in #4910
- fix: pass the correct dependencies variable name in agent async run by @harrytran001 in #5080
- chore: Update Knowledge search endpoint naming by @willemcdejongh in #5088
- chore: Handle class-based asynchronous executors by @benmezger in #4904
- fix: update response_audio type in schemas to a single dict by @anuragts in #5087
- feat: Add post-hook support on streaming by @dirkbrnd in #5068
- feat: extend Jira toolkit to allow adding worklogs by @rohitnishant in #4991
- chore: Release 2.1.8 by @kausmeows in #5090
New Contributors
- @benmezger made their first contribution in #4904
- @rohitnishant made their first contribution in #4991
Full Changelog: v2.1.7...v2.1.8