Releases: agno-agi/agno
Releases · agno-agi/agno
v1.7.7
Changelog
New Features:
- Revamped MCP integration: Our ****
MCPToolsandMultiMCPToolsclasses can now be initialized and used without an async context manager, providing a much easier experience. See the updated docs. - Morph Tools: Morph’s Fast Apply model as a Tool, it intelligently merges your original code with update snippets at 98% accuracy and 4500+ tokens/second.
 - Claude Interleaved Thinking:  Added support for thinking in-between other content for 
Claude. 
Improvements:
- LiteLLM File & Image Understanding: Added support for file and image inputs for 
LiteLLM. - Upgrade ZepTools to v3 Zep: 
ZepToolsare now compatible with Zep v3. 
Bug Fixes:
- OpenAIEmbedder() wrong dimensions for text-embedding-3-large: Automatically handles default 
dimensionslength fortext-embedding-3-smallas 1536 andtext-embedding-3-largeas 3072. 
What's Changed
- [fix] Fix script injection vulnerability. by @kevinpetschik in #3974
 - fix: openai embedder dim len by @kausmeows in #3993
 - feat: morph code edit tool by @kausmeows in #3992
 - chore: update morph tool tests by @kausmeows in #4001
 - fix: workflow postgres storage by @ysolanky in #4023
 - feat: LiteLLM file input by @Mustafa-Esoofally in #3985
 - feat: Gemini multi part bug fix by @Mustafa-Esoofally in #4025
 - feat: Langwatch Observability example by @Mustafa-Esoofally in #4035
 - Add 
agno[arxiv]option for arxiv tool by @basnijholt in #4036 - fix: Session state in streaming by @dirkbrnd in #4021
 - feat: Claude interleaved thinking by @Mustafa-Esoofally in #3906
 - feat: revamp MCP integration by @manuhortet in #3955
 - [refactor] Migrate from psycopg2 to psycopg (v3) by @guyrosin in #3984
 - [fix] JinaReaderTools search_query read timeout error due to invalid parameter by @abdulhadi5116 in #3982
 - fix: set num_documents default before retriever calls by @hiwangzhihui in #3913
 - chore: Release 1.7.7 by @dirkbrnd in #4056
 
New Contributors
- @kevinpetschik made their first contribution in #3974
 - @basnijholt made their first contribution in #4036
 - @guyrosin made their first contribution in #3984
 - @abdulhadi5116 made their first contribution in #3982
 - @hiwangzhihui made their first contribution in #3913
 
Full Changelog: v1.7.6...v1.7.7
v1.7.6
Changelog
New Features:
- Portkey Model Support: Added support for Portkey hosted models.
 - Bitbucket Tool: Added 
BitbucketToolswith a variety of Bitbucket repository actions. - Jina Embedder: Added 
JinaEmbedderfor using embedding models via Jina. - Row Chunking: Added 
RowChunkingas a CSV chunking strategy. - EVM Toolkit: Added 
EvmToolsto do transactions on EVM compatible blockchains usingweb3. - LinkUp Toolkit: Added 
LinkupToolsfor powerful search. - Background Execution Support for Workflows 2.0: Introduced background execution capabilities for Workflows 2.0, enabling non-blocking workflow execution with polling support. See docs here.
 
Improvements:
- Async Bedrock Support: Added async execution support for the AWS bedrock implementation.
 - PostgreSQL Tools Updates: Various security and stability overhauls made to the 
PostgresToolstoolkit. - Daytona Toolkit Updates: Added new tools for 
Daytonaagent Toolkit 
Bug Fixes:
- LiteLLM Metrics: Fixed issue with metrics on streaming responses from LiteLLM.
 - Team Expected Output: Fixed issue where expected_output of members were overwritten by the team leader agent.
 - Workflows Async Generators: Fixed how async generator 
arunfunctions are treated. It now correctly keeps async generators as async generators and doesn’t convert it to a coroutine.- Before: Workflows with Async generator 
arunfunctions were incorrectly awaited as coroutines, which could cause runtime errors or prevent proper iteration through the yielded asynchronous values. - After: Async generator workflows are now properly recognised and handled as async generators, allowing for correct iteration over their yielded values using 
async for. This ensures all yielded results are processed as intended within asynchronous workflows. 
 - Before: Workflows with Async generator 
 - LiteLLM Multiple Streaming Tool Calls: When Agno is run through LiteLLM against OpenAI chat models (eg. GPT4.1), multiple streamed 
tool_callslost their individual argument streams. This has been resolved. 
What's Changed
- feat: Portkey models integration by @Mustafa-Esoofally in #3890
 - feat: #2040 - Adds Bitbucket Tool to support Bitbucket Cloud APIs by @Harsh-2909 in #2095
 - feat: Re-Jinaembed Support by @lucifertrj in #2395
 - feat: Fix classifier response returning other than yes by @manthanguptaa in #2413
 - cookbook: add GibsonAI MCP Server example by @Boburmirzo in #3760
 - feat: Row chunking for csv documents by @d8rt8v in #2704
 - feat: support frontend tool calls / surface backend tool calls in AG-UI by @mme in #3898
 - chore: implementation of bedrock ainvoke by @kausmeows in #3914
 - feat: log warning if using deprecated sse transport with mcp by @manuhortet in #3917
 - feat: fixed special symbols handling of pdf by @ItsRoy69 in #2306
 - feat: Daytona toolkit update by @Mustafa-Esoofally in #3887
 - chore: xai citations revert by @Mustafa-Esoofally in #3817
 - feat: Add portkey tests by @Mustafa-Esoofally in #3928
 - [fix] Harden PostgresTools against SQL injection and bugs by @divagr18 in #3754
 - feat: Added evm tool by @akp111 in #2629
 - fix: litellm metrics aggregation by @kausmeows in #3940
 - fix: Team expected output don't override member by @dirkbrnd in #3920
 - fix: Async Generator Workflows by @dirkbrnd in #3941
 - feat: run pg vector script windows by @anuragts in #3950
 - feat: linkup search tool by @juliette0704 in #3921
 - feat: Mem0 toolkit - Allow passing Org and Project details by @Mustafa-Esoofally in #3953
 - fix: mangled litellm multiple streaming tool calls by @kausmeows in #3959
 - feat: workflows 2.0 background execution + poll by @kausmeows in #3927
 - chore: Release 1.7.6 by @dirkbrnd in #3952
 
New Contributors
- @Boburmirzo made their first contribution in #3760
 - @d8rt8v made their first contribution in #2704
 - @mme made their first contribution in #3898
 - @divagr18 made their first contribution in #3754
 - @akp111 made their first contribution in #2629
 - @juliette0704 made their first contribution in #3921
 
Full Changelog: v1.7.5...v1.7.6
v1.7.5
Changelog
New Features:
- SurrealDB: Added SurrealDB support as a vector DB for knowledge bases.
 
Improvements:
- Session Caching: Added 
cache_sessionattribute to allow users to switch off session caching, which improves on memory management. - Workflows 2.0 FastAPI Support: Added support for running the new workflows in 
FastAPIApp. 
Bug Fixes:
- Nested Tool Hooks: Fixed bug with nested tool hooks.
 
What's Changed
- feat: Integrate Surrealdb as VectorDB by @dsaad68 in #3235
 - feat: Deep research example [Nebius x Scrapegraph] by @Mustafa-Esoofally in #3863
 - fix: Nested tool hooks by @dirkbrnd in #3876
 - fix: Improve session memory usage by @dirkbrnd in #3877
 - fix(knowledge): fixed async_document_lists call in combined.py by @zouchanglin in #3834
 - [fix]: Added app_id as optional argument for Workflow v2. This PR fixes the issue #3882 by @SOORAJTS2001 in #3878
 - chore: Release 1.7.5 by @dirkbrnd in #3885
 
New Contributors
- @zouchanglin made their first contribution in #3834
 - @SOORAJTS2001 made their first contribution in #3878
 
Full Changelog: v1.7.4...v1.7.5
v1.7.4
Changelog
New Features:
- Workflows Revamped (beta): Our new Workflows implementation (internally referred to as Workflows 2.0) is a complete redesign of the workflow system in Agno, introducing a step-based architecture that provides better structure, flexibility, and control over multi-stage AI agent processes
- Core Concepts:
- Flexible Execution: Sequential, parallel, conditional, and loop-based execution
 - Smart Routing: Dynamic step selection based on content analysis or user intent
 - Mixed Components: Combine agents, teams, and functions seamlessly
 - State Management: Share data across steps with session state
 
 - For a comprehensive guide to the new Workflows system, check out the docs.
 
 - Core Concepts:
 
- Pydantic Input for Agents/Teams: Both Agent and Team now accepts structured input (i.e. a pydantic model) on run() and print_response().
 
What's Changed
- feat: v1 workflows 2.0 by @kausmeows in #3447
 - feat: Release 1.7.4 by @kausmeows in #3857
 
Full Changelog: v1.7.3...v1.7.4
v1.7.3
Changelog
New Features:
- Session State on Run: You can now pass 
session_statewhen running an agent or team. See docs for more information. - GCS Support for PDF Knowledge Base: Added 
GCSPDFKnowledgeBaseto support PDFs on Google Cloud Storage. 
Bug Fixes:
- Workflows Async + Storage: Fixed issues where sessions was not correctly stored with async workflow executions.
 - Session State Management: Fixed issues around session state management in teams and agents. Session state and session name will now correctly reset and load from storage if sessions are switched.
 - Metadata Support for Document Knowledge Base: Adds metadata support for 
DocumentKnowledgeBase - Session Metrics with History: Fixed bug with session metrics on 
Agentwhere history is enabled. 
What's Changed
- feat: Startup analyst example - Scrapegraph by @Mustafa-Esoofally in #3813
 - Inside the 
format.bat, enable the .venv environment when available. by @Siete-F in #3807 - feat: Atla observability example by @Mustafa-Esoofally in #3810
 - fix: add metadata support for document kb by @kausmeows in #3814
 - feat: Stagehand MCP example by @Mustafa-Esoofally in #3815
 - fix: Workflows async + storage by @dirkbrnd in #3827
 - [feat] added optional user-provided client, hitl, type ann. by @djoek in #3639
 - chore: Add example for dynamic instructions by @dirkbrnd in #3835
 - [fix] Fix session metrics counting history messages multiple times by @NTTLuke in #3830
 - fix: Handle session state creation by @dirkbrnd in #3824
 - feat: gcs storage by @pritipsingh in #3804
 - chore: Release 1.7.3 by @dirkbrnd in #3846
 
New Contributors
Full Changelog: v1.7.2...v1.7.3
v1.7.2
Changelog
New Features:
- MySQL Storage: Added support for 
MySQLStorageas an agent/team/workflow session storage backend. - XAi Live Search: Added support for live search on the XAi model provider.
 - OpenAI Deep Research: Support added for 
o4-mini-deep-researchando3-deep-researchmodels. 
Improvements:
- Memory Growth on Performance Evals: Added 
memory_growth_trackingas an attribute onPerformanceEvalto enable additional debug logs for memory growth. - Agent/Team in Tool Hook: Added 
agentandteamas optional parameters in tool hooks, for more flexibility. 
Bug Fixes:
- Gemini 2.5 Metrics: Fixed Gemini metrics to correctly include “thinking” tokens.
 - Claude tool calling: Fixed a bug related to parsing function call responses when using Claude models.
 - Team Metrics: Fixed a bug with team metrics when teams have history enabled.
 
What's Changed
- fix: Correctly count gemini tokens by @dirkbrnd in #3745
 - fix: Workflow streaming on playground by @dirkbrnd in #3746
 - fix: weaviate-client closed error by @kausmeows in #3759
 - fix: update Claude format_function_call_results logic by @manuhortet in #3758
 - fix: update mcp lib install instructions by @manuhortet in #3757
 - [fix] Correctly detect when tool has already been wrapped by @seandi in #3728
 - fix: Handle assistant messages in responses API by @dirkbrnd in #3769
 - chore: Add tests to measure memory impact by @dirkbrnd in #3762
 - fix: print-response by @ysolanky in #3780
 - feat: xAI live search by @Mustafa-Esoofally in #3779
 - feat: mysql storage by @ysolanky in #3782
 - fix: Windows formatter script by @willemcdejongh in #3797
 - Feat: Session state in tool hook by @dirkbrnd in #3771
 - fix: team metrics when team history is enabled by @manuhortet in #3805
 - feat: OpenAI Deep Research agent by @Mustafa-Esoofally in #3785
 - chore: Release 1.7.2 by @dirkbrnd in #3773
 
New Contributors
Full Changelog: v1.7.1...v1.7.2
v1.7.1
Changelog
New Features:
- Debug Level: Added 
debug_levelto bothAgentandTeam. This is anintvalue of either1(default) or2(more verbose logging). Currently this only enables more verbose model logs, but will be used more widely in future. 
Improvements:
- Parser Model on Teams: Added 
parser_modelsupport forTeam. See docs here. - Support for Gemini Thinking: Added 
thinking_budgetandinclude_thoughtsparameters forGeminimodel class. - Serper Tools: Made updates to the toolkit to include new tools 
search_news,search_scholarandscrape_webpage. - Valyu Tools: New Valyu toolkit for Deep Search capabilities of academic sources.
 - Oxylabs: Added 
OxylabsToolsfor adding more web-scraping capabilities to agents. 
Bug Fixes:
- DuckDB CSV parsing error: For CSV files use the custom 
read_csvmethod for improved CSV parsing - Full Team Metrics: Fixed an issue with calculation of the 
full_team_session_metricson Teams. 
What's Changed
- fix: cohere tool calling by @Ayush0054 in #3693
 - feat: Add debug_level paramater by @dirkbrnd in #3702
 - fix: gmail-tools by @ysolanky in #3703
 - Fix: agents deepcopy memory by @dirkbrnd in #3716
 - fix: Teams - Ensure we use UUID as a backup member_id by @dirkbrnd in #3717
 - feat: Gemini thinking configuration by @Mustafa-Esoofally in #3675
 - feat: Add new tools to Serper toolkit by @Mustafa-Esoofally in #3697
 - Update scrapegraph.py by @VinciGit00 in #3734
 - feat: Valyu toolkit by @yorkeccak in #3599
 - fix: full team session metrics by @manuhortet in #3736
 - Fix: DuckDB CSV handling by @Mustafa-Esoofally in #3730
 - fix: allow Team as agent for OpenAIToolkit by @kepler in #3735
 - fix: display non-ascii chars correctly in ExaTools result by @zhixing0 in #3732
 - [fix] Remove get_request_params argument from ollama chat() API call by @cookieshake in #3689
 - fix: streaming structured output by @ysolanky in #3679
 - feat: Add oxylabs toolkit by @oxy-giedrius in #3353
 - fix get_embedding function return value not List[float] bug by @SongYippee in #3725
 - chore: Release 1.7.1 by @dirkbrnd in #3740
 
New Contributors
- @VinciGit00 made their first contribution in #3734
 - @yorkeccak made their first contribution in #3599
 - @zhixing0 made their first contribution in #3732
 - @cookieshake made their first contribution in #3689
 - @oxy-giedrius made their first contribution in #3353
 - @SongYippee made their first contribution in #3725
 
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Changelog
New Features:
- Agent/Team Add Tool: Added convenience function to 
AgentandTeam→add_tool(tool)to append new tools after inititialisation. - Streaming Structured Output: Implemented structured output during streaming. This means streaming won’t be turned off when 
response_modelis passed. The structured output itself is not streamed, but it is part of the iterator response when running an agent/team with streaming. The response model is set on a singleRunResponseContentEventand on the finalRunResponseCompletedEvent. 
Improvements:
- Linear Teams Tool: Added tool to get the list of teams from Linear.
 
Bug Fixes:
- Uppercase Structured Output: Resolved cases where pydantic model fields contain field names with upper case characters.
 
Breaking Change:
- If you use 
run(..., stream=True)orarun(..., stream=True)onAgentorTeamwith aresponse_modelset, the current behaviour would switch off streaming and respond with a singleRunResponseobject. After the changes mentioned above, you will get theIterator[RunResponseEvent]/AsyncIterator[RunResponseEvent]response instead. 
What's Changed
- fix: monitoring fields for accuracy evals with given output by @manuhortet in #3640
 - fix: preserve field name case in structured output parsing by @NitsanCohen770 in #3647
 - [fix] Fix GitHub tool create file #3636 by @Siete-F in #3637
 - [fix]: markdown chunking failing by @zztaouil in #3634
 - feat: add linear get_team_details tool by @danpilch in #3632
 - feat: make linear tool project_id and assignee_id optional for create_issue by @danpilch in #3631
 - fix: Add a check to create a directory if it doesn't exist while saving an audio file by @shreyaspranav in #3619
 - feat: Add tools functions by @dirkbrnd in #3664
 - Make langdb base url configurable by @karolisg in #3671
 - feat: Enable streaming with structured response by @dirkbrnd in #3644
 - feat: Add debug logs for request params by @dirkbrnd in #3667
 - chore: Release 1.7.0 by @dirkbrnd in #3674
 
New Contributors
- @zztaouil made their first contribution in #3634
 - @danpilch made their first contribution in #3632
 - @shreyaspranav made their first contribution in #3619
 - @karolisg made their first contribution in #3671
 
Full Changelog: v1.6.4...v1.7.0
v1.6.4
Changelog
New Features:
- Brightdata Toolkit: Added multiple web-based tools via Brightdata.
 - OpenCV Video/Image Toolkit: Added tools for capturing image/video via your webcam.
 - DiscordClient App: Added a DiscordClient app for connecting your agent or team with Discord in the form of a discord bot.
 
Improvements:
- FileTools File Search: Added 
searchtoFileTools. 
Bug Fixes:
- Fix User Control Flow with History: Fixed issues where user control flow (HITL) flows failed with message history.
 - Fix lance db upsert method for supporting knowledge filters: Fixed function 
upsertnot using the parameterfilters - Update mongo db hybrid search for filters: Mongodb now correctly uses filters for hybrid search
 - Fixed 
team.rename_session(...)that raises anAttributeError 
Breaking Changes:
SerperApiTools: RefactoredSerperApiToolstoSerperToolsfor clearer naming.
What's Changed
- [feat] Add search files function & set r/w encoding. by @matrix0415 in #2321
 - [chore] tools/google_bigquery - add job_config with fully qualified default_dataset to _run_sql by @inuue in #3311
 - [feat] Add Bright Data toolkit with web scraping and data feed capabilities by @meirk-brd in #3580
 - Added new tools for video and image by @Prachi1615 in #2222
 - feat: OpenAI structured output with reasoning bug by @Mustafa-Esoofally in #3497
 - fix: Update OpenAI content null values by @willemcdejongh in #3604
 - feat: added sentence_transformer rerank. by @droxer in #3192
 - fix: Github Tool "list_repositories" was missing. by @Siete-F in #3598
 - chore: update lance db upsert method for filter by @kausmeows in #3612
 - fix: update mongo db hybrid search for filters by @kausmeows in #3613
 - fix: update team rename session name function by @kausmeows in #3614
 - Feat: DiscordClient by @VirusDumb in #3481
 - fix: HITL flow with message history by @dirkbrnd in #3605
 - refactor: serper tools by @ysolanky in #3621
 - chore: Release 1.6.4 by @dirkbrnd in #3629
 
New Contributors
- @inuue made their first contribution in #3311
 - @meirk-brd made their first contribution in #3580
 - @Prachi1615 made their first contribution in #2222
 - @droxer made their first contribution in #3192
 - @Siete-F made their first contribution in #3598
 
Full Changelog: v1.6.3...v1.6.4
v1.6.3
Changelog
New Features:
- User Control Flows on Playground: The Agno Platform now support user control flows on the playground.
 - Team & Agent Events on RunResponse: Added 
store_eventsparameter to optionally add all events that happened during the course of an agent/team run on theRunResponse/TeamRunResponse. - Team Member Responses on Playground: The Agno Platform now shows member responses during team runs.
 - Behind-the-scenes on Playground: The Agno Platform now shows what is happening during runs, for both agents and teams.
 - Metadata filtering support for 
csvandcsv_urlknowledge bases: Add knowledge filters support for these knowledge base types. 
Updates
- Removed 
aprefix from async function names:asearch_knowledge_base, etc will now be the same as theirsynccounterparts when sent to the model. The names of functions are important for accurate function calling. 
Bug Fixes:
- AG-UI Fix: Fixed issue related to missing messages when using the Agno AG-UI app.
 - Chat History Fix: Fixed issue related to history not available when 
agent_idnot set. - MongoDB ObjectId serialization issue when using with agent: Fixed issue while ****using mongodb vectordb with ObjectId present in the metadata it throws Object of type 
ObjectIdis not JSON serializable 
What's Changed
- fix: update agui app by @manuhortet in #3560
 - [fix] Reset _tool_instructions in Agent and Team classes while calling 'determine_tools_for_model'. by @GitMarco27 in #3567
 - feat: csv/csv-url metadata support by @kausmeows in #3572
 - feat: continue run endpoint by @Ayush0054 in #3365
 - feat: Persist events on run response by @dirkbrnd in #3548
 - fix: mongodb json searialization issue if object id in metadata by @kausmeows in #3576
 - chore: Release 1.6.3 by @dirkbrnd in #3582
 
New Contributors
- @GitMarco27 made their first contribution in #3567
 
Full Changelog: v1.6.2...v1.6.3