Releases: agno-agi/agno
Releases Β· agno-agi/agno
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 ****
.arunΒ method 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 theevaluatorΒ andΒselectorΒ functions of theΒConditionΒ andΒRouterΒ Workflow 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()Β orΒacontinue_run_stream()Β methods with onlyΒrun_idΒ parameter andΒrun_response=None. The logging statements were trying to accessΒrun_response.run_idΒ whenΒrun_responseΒ could beΒNone. - 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
v2.1.7
Changelog
Bug Fixes:
- Memory with async databases: Fixed an error updating user memories when using an async database implementation, like
PostgresDb.
What's Changed
- fix: enhance memory retrieval for asynchronous database support by @JasonLovesDoggo in #5067
- chore: async postgres imports by @manuhortet in #5069
- chore: Release 2.1.7 by @ysolanky in #5074
New Contributors
- @JasonLovesDoggo made their first contribution in #5067
Full Changelog: v2.1.6...v2.1.7
v2.1.6
Changelog
New features
- Support for SurrealDB: Add complete support to use a SurrealDB database with your Agents, Teams and Workflows, via the new
SurrealDbclass.
Improvements:
- User Memory: Updated some prompts to increase general accuracy at finding relevance user preferences to keep as user memories.
- V2 migration: Empty updated_at values can now be preserved if requested when using our v2 migration script.
- Updates to
store_tool_resultsflag:- Renamed it to
store_tool_messagesfor better clarity - Tool message pairs are removed together: To maintain valid message sequences, when tool messages are removed from storage, the corresponding assistant messages that contains tool calls for that tool message are also removed. Most model providers require a strict "tool call pair"
- Metrics still include token counts: Your run metrics will still reflect the actual tokens used during execution, including the tool calls and results. Only the message storage is affected.
- Renamed it to
What's Changed
- fix: Cookbook file url by @Mustafa-Esoofally in #5057
- [feat] Add SurrealDb by @martinschaer in #4575
- feat: memory management for large v2 migrations by @manuhortet in #5021
- fix: Clean up unnecessary attributes by @dirkbrnd in #5061
- feat: adjust main memory prompts by @manuhortet in #5064
- chore: implementation update to
store_history_messagesandstore_tool_messagesby @kausmeows in #5053 - chore: release v2.1.6 by @manuhortet in #5063
New Contributors
- @martinschaer made their first contribution in #4575
Full Changelog: v2.1.5...v2.1.6
v2.1.5
Changelog
New Features:
- Async Postgres (docs): Added support for async Postgres all across the library.
- Add flags to disable storing tool and history messages on run output: Agent and Team now have
store_history_messagesandstore_tool_messagesto control whether these extra messages should be stored or not. - Add
stream_executor_eventsΒ to filter workflow executor events (docs):- usingΒ
stream_intermediate_eventsΒ we control to switch on-off the workflow events likeΒWorkflowStarted,ΒStepStartedΒ etc. - to filter out events coming from agent/team/custom function we have thisΒ
stream_executor_eventsΒ now similar toΒstream_member_eventsΒ inΒTeam.
- usingΒ
- Knowledge search endpoints (docs): Allow searching vectorDB via AgentOS API.
- Reasoning models: added support for Gemini 2.5+, Anthropic Claude, and VertexAI Claude native thinking capabilities when used as reasoning models with your Agents.
Improvements:
- AgentOS Access Logs: Disabled access logs for AgentOS by default. You can enable by setting
serve(access_log=True). - GoogleSheets Service Accounts: Add support for service account auth on
GoogleSheetsTools. - PineconeDB async upsert logic: Add support for the content hash and metadata fields when using the async upsert method of the PineconeDb implementation.
- MCP toolbox for databases: Allow MCP server urls not containing the conventional
/mcpsegment. - User memory creation in async scenarios: Track agent_id or team_id when creating memories in all async scenarios.
Bug Fixes:
- AG-UI text message after Tool calls: Fixed a problem handling tool calls and message events sequentially in the AG-UI interface.
- Metrics run counts with SQLiteDb and Firestore: Fixed a bug where wrong metrics would be returned for the Run count field when using the SQLiteDb or FirestoreDb implementations.
- V2 database migration script:
- The
updated_atfield is now preserved when migrating sessions and memories. - Removed some unnecessary dependencies, like
pymongo.
- The
What's Changed
- feat: Disable access log for AgentOS by @dirkbrnd in #4971
- fix: sqlite db correct runs count in metrics calculation by @Ayush0054 in #4990
- [fix] AGUI - message after tool call cause errors by @Mustafa-Esoofally in #4972
- chore: SQLiteDB initialization DX improvement by @uzaxirr in #5007
- fix: Fix missing content hash deletion and metadata in PineconeDB async_upsert by @10Ala10 in #5006
- fix: Knowledge docx handling and error status loading by @willemcdejongh in #5025
- [feat] Add support for service accounts in the Google Sheets tool. by @simonkagwi in #4997
- fix: fix PDF reader chunking strategy initialization bug by @10Ala10 in #5023
- Fix: Variable 'result' is referenced before assignment in Get Knowledge Contents MySQLDb by @harrytran001 in #5019
- feat: stop enforcing /mcp in urls used with MCPToolbox by @manuhortet in #5028
- feat: add flags to disable storing tool and history messages on run output by @kausmeows in #5029
- feat: Search knowledge API by @willemcdejongh in #4989
- fix: Remove render_heavy_js argument from ScrapeGraphTools.searchscraper by @k3vob in #5031
- chore: Update KB vector search endpoint name by @willemcdejongh in #5041
- feat: Extract content middleware by @dirkbrnd in #5042
- chore:
stream_executor_eventsto filter workflow executor events by @kausmeows in #5038 - chore: AgentOS interfaces cookbook by @willemcdejongh in #5044
- chore: update
get_run_inputlogic by @kausmeows in #5035 - fix: preserve updated_at fields when migrating to v2 by @manuhortet in #5046
- fix: get media on top level on GET runs api by @anuragts in #4936
- feat: Add reasoning support for Gemini, Anthropic, and VertexAI Claude models by @uzaxirr in #5009
- fix: remove unnecessary dependencies from the v2 migration logic by @manuhortet in #5051
- fix: add missing team_id and agent_id when creating memory with the async methods by @kepler in #4895
- fix: input typo by @anuragts in #5049
- chore: Update style checks in CI by @willemcdejongh in #5027
- feat: support for async databases + async postgres implementation by @manuhortet in #4338
- chore: release v2.1.5 by @manuhortet in #5052
New Contributors
- @simonkagwi made their first contribution in #4997
- @k3vob made their first contribution in #5031
Full Changelog: v2.1.4...v2.1.5
v2.1.4
Changelog
New Features:
- Workflow History: Support to add workflow history to all or individual steps for a better continuous conversational experience
- Google Drive Toolkit: Added the
GoogleDriveToolsclass, to provide your Agents with read and write access to Google Drive.
Improvements:
- Update parallel and custom function step events streaming logic in workflows:
- Inspect all events that are yielded during the workflow run, and set the workflow context variables on them before yielding upwards.
- Update parallel step event streaming logic to immediately yield events as they come so that FE can catch and display in real time.
- Old approach - collect all, yield at end
- New approach - stream immediately (used queues as we cant yield directly from async running tasks)
- Custom events with AG-UI: The AG-UI integration now support custom events. Your Agno custom events will now be delivered in the AG-UI interface in the conventional AG-UI custom event format.
- Tool post-hooks in case of tool failure: Our tool post-hooks now also run when the tool run fails. This enables you to easily add logic to run in case of tool failures!
Bug Fixes:
- Order of persisted streaming events: Fix a bug where the created_at of some Memory events would be larger than the created_at of the final RunCompleted event.
- Handle Team sessions with no runs: When cancelling a Team run early enough, you can end with a session that contains no run objects. Some functionality was failing in this edge case.
- Dynamo Table definitions: Fixed a bug where some DynamoDB schemas incorrectly defined non key attributes
- Dictionary Key Order Causing Redundant Cache Files: The current caching inΒ
agno/tools/function.pyΒ usedΒstr()Β to serialize dictionary arguments for cache key generation. Sincestr()preserves dictionary key order, identical data with different key orders produced different cache keys. Replacedstr()withjson.dumps(sort_keys=True)to ensure serialization regardless of dictionary key order - Change dimensions type to Optional[int] in FastEmbedEmbedder : Fixed an issue where FastEmbedEmbedder didnβt allow optional dimensions.
What's Changed
- [feat] Add support for custom events in AGUI interface by @kredde in #4960
- [Fix]: Remove unused from and add missing fields into schemas in DynamoDB + fix Dynamo Serialization and Query Syntax by @harrytran001 in #4771
- Fix: Dictionary Key Order Causing Redundant Cache Files by @uzaxirr in #4907
- fix: handle team sessions with no runs by @manuhortet in #4951
- fix: ensure the RunCompletedEvent is the last created event by @manuhortet in #4959
- chore: customer research workflow agent os by @kausmeows in #4950
- chore: deactivate CI AWS tests by @manuhortet in #4969
- chore: update parallel and custom function step events streaming logic by @kausmeows in #4954
- fix: change dimensions type to Optional[int] in FastEmbedEmbedder by @Ayush0054 in #4981
- chore: cancel previous workflow runs on new commits by @manuhortet in #4980
- feat: add Google Drive toolkit by @SaiPoornaChandraPrakash in #4658
- fix: Run tool post hooks when tools fail with exceptions by @jtalmi in #4926
- chore: store events for agent os in workflows by @kausmeows in #4982
- fix: add events to the OS workflow run schema by @manuhortet in #4986
- feat: workflow history by @kausmeows in #4785
- chore: Release 2.1.4 by @kausmeows in #4966
New Contributors
- @kredde made their first contribution in #4960
- @harrytran001 made their first contribution in #4771
- @SaiPoornaChandraPrakash made their first contribution in #4658
Full Changelog: v2.1.3...v2.1.4
v2.1.3
Changelog
New Features:
- Claude Vertex AI: Implemented a new Claude model class to be served through Vertex AI.
- Dynamic Model Router in OpenRouter: Added the ability to define multiple models in the OpenRouter Class in case the primary model fails
Improvements:
- AgentOS MCP server with custom FastAPI apps: AgentOS instances running with a custom FastAPI app as base app can now be exposed as MCP servers, using the
enable_mcp_serverparameter. - Support MCP tools inside the AgentOS MCP server: The Agents, Teams and Workflows exposed via MCP in your AgentOS MCP server can now use MCP tools.
- FileTools with relative paths: Update the FileTools Toolkit to better handle using relative paths in all its methods.
Bug Fixes:
- Support MCP tools with custom FastAPI apps: Fixed a bug provoking errors when connecting to MCP servers inside an AgentOS setup with a custom FastAPI app as base app.
- Reading sessions with no runs: Fixed a bug reading Team sessions with no runs, which happens when cancelling a Team run early.
- Cancelling Workflow runs started via websocket: Fixed a bug that made run cancellation fail for workflow runs started via websocket.
What's Changed
- fix: workflow cancel flow by @kausmeows in #4947
- feat: better handle of MCP lifecycle in the AgentOS by @manuhortet in #4949
- feat: claude vertexai by @ysolanky in #4943
- fix: make file names relative to base_dir by @mickvav in #4836
- fixes #4611 - Added Fallback models in OpenRouter by @uzaxirr in #4906
- docs: add Opik telemetry docs by @vincentkoc in #4881
- chore: Release 2.1.3 by @ysolanky in #4953
New Contributors
- @mickvav made their first contribution in #4836
- @uzaxirr made their first contribution in #4906
- @vincentkoc made their first contribution in #4881
Full Changelog: v2.1.2...v2.1.3