Releases: agno-agi/agno
Releases · agno-agi/agno
v1.7.3
Changelog
New Features:
- Session State on Run: You can now pass
session_state
when running an agent or team. See docs for more information. - GCS Support for PDF Knowledge Base: Added
GCSPDFKnowledgeBase
to 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
Agent
where 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
MySQLStorage
as 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-research
ando3-deep-research
models.
Improvements:
- Memory Growth on Performance Evals: Added
memory_growth_tracking
as an attribute onPerformanceEval
to enable additional debug logs for memory growth. - Agent/Team in Tool Hook: Added
agent
andteam
as 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_level
to bothAgent
andTeam
. This is anint
value 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_model
support forTeam
. See docs here. - Support for Gemini Thinking: Added
thinking_budget
andinclude_thoughts
parameters forGemini
model class. - Serper Tools: Made updates to the toolkit to include new tools
search_news
,search_scholar
andscrape_webpage
. - Valyu Tools: New Valyu toolkit for Deep Search capabilities of academic sources.
- Oxylabs: Added
OxylabsTools
for adding more web-scraping capabilities to agents.
Bug Fixes:
- DuckDB CSV parsing error: For CSV files use the custom
read_csv
method for improved CSV parsing - Full Team Metrics: Fixed an issue with calculation of the
full_team_session_metrics
on 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
Agent
andTeam
→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_model
is 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 singleRunResponseContentEvent
and 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)
onAgent
orTeam
with aresponse_model
set, the current behaviour would switch off streaming and respond with a singleRunResponse
object. 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
search
toFileTools
.
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
upsert
not 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
: RefactoredSerperApiTools
toSerperTools
for 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_events
parameter 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
csv
andcsv_url
knowledge bases: Add knowledge filters support for these knowledge base types.
Updates
- Removed
a
prefix from async function names:asearch_knowledge_base
, etc will now be the same as theirsync
counterparts 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_id
not 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
ObjectId
is 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
v1.6.2
v1.6.1
Changelog
New Features:
- Nebius Embeddings: Added support for embedding models on Nebius.
- Firestore Memory and Storage: Added support for Firestore both as memory and storage provider for your agents.
Improvements:
- Improved Event Payloads: Added
agent_name
to agent events, andteam_name
to team events. Also addedteam_session_id
to team-member events to indicate that it belongs to the top-level team session. - Team Run Events: Added
stream_member_events
to teams to optionally disable streaming of member events. - DocumentKnowledgeBase Async: Added
async
support onDocumentKnowledgeBase
- Enums on Custom Tools: Added support for
enum
parameters in custom tools.
Bug Fixes:
- Team Events: Fixed issues related to team and member events not being part of the same session. Going forward a team and its members will all have the same session ID.
What's Changed
- [fix] Open AI tools missing api key by @celobusana in #3517
- [fix] Fix quote escaping in string utility function. Ensure only unescaped … by @kostadinov92 in #3529
- Fix multi Image generations by @VirusDumb in #3536
- chore: Update file save method by @Mustafa-Esoofally in #3533
- feat: Add Nebius embedding support by @SamuelJacobJ in #3531
- fix: Do not leak the full host env vars into MCP tools by @kepler in #3547
- fix: Add doc KB async by @dirkbrnd in #3550
- feat: Add version on FastAPIApp by @dirkbrnd in #3549
- fix: handle json workflow input in our fastapi app by @manuhortet in #3543
- fix: Run response events agent name by @dirkbrnd in #3546
- fix: Enums support on custom tools for all models by @SamuelJacobJ in #3532
- Firestore memory by @jeffbryner in #1975
- fix: Azure imports by @ysolanky in #3558
- chore: Release 1.6.1 by @dirkbrnd in #3557
New Contributors
- @celobusana made their first contribution in #3517
- @kostadinov92 made their first contribution in #3529
- @jeffbryner made their first contribution in #1975
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Changelog
Improvements:
- New Streaming Events: We have improved our streaming events system. See the details in “breaking changes” section at the bottom.
- Member Events in Teams: The above change includes streaming of events from team members with the top-level team events.
Bug Fixes:
- Apify Tools: Fixed the ApifyTools initialize to correctly register functions.
Breaking Changes:
- Updates to Run Without Streaming:
RunResponse
now does not have anevent
attribute. It still represents the responses of the entire run.- An additional attribute
RunResponse.status
now indicates whether the run response isRUNNING
,PAUSED
, orCANCELLED
.
- Updates to Run Streaming:
- In the case of streaming you now get reformulated run events. These events are streamed if you do
agent.run(..., stream=True)
oragent.arun(..., stream=True)
. - Agents have the following event types:
RunResponseContent
RunError
RunCancelled
ToolCallStarted
ToolCallCompleted
- with
stream_intermediate_steps=True
:RunStarted
RunCompleted
ReasoningStarted
ReasoningStep
ReasoningCompleted
MemoryUpdateStarted
MemoryUpdateCompleted
- See detailed documentation here.
- In the case of streaming you now get reformulated run events. These events are streamed if you do
- Updates to Teams:
- Teams have the following event types:
TeamRunResponseContent
TeamRunError
TeamRunCancelled
TeamToolCallStarted
TeamToolCallCompleted
- with
stream_intermediate_steps=True
:TeamRunStarted
TeamRunCompleted
TeamReasoningStarted
TeamReasoningStep
TeamReasoningCompleted
TeamMemoryUpdateStarted
TeamMemoryUpdateCompleted
- Teams will also yield events from team members as they are executed.
- See detailed documentation here.
- Teams have the following event types:
- Updates to Workflows:
- You should now yield
WorkflowRunResponseStartedEvent
andWorkflowRunResponseCompletedEvent
events.
- You should now yield
What's Changed
- chore: Refactor run response events by @dirkbrnd in #3375
- chore: add prefix to playground url by @pritipsingh in #3521
- revert error response for workflow sync router sessions by @Ayush0054 in #3524
- feat: Yield member events for teams by @dirkbrnd in #3467
- fix: Apify Bug by @dirkbrnd in #3519
- chore: Release 1.6.0 by @dirkbrnd in #3530
Full Changelog: v1.5.10...v1.6.0
v1.5.10
Changelog
New Features:
- Playground File Upload: We now support file upload via the Agno Playground. This will send PDF, CSV, Docx, etc files directly to the agents/teams for interpretation by the downstream LLMs. If you have a knowledge base attached to the agent/team, it will upload the file to the knowledge base instead.
- Async Evals: Support for async and evaluations. See examples here.
Improvements:
- Exa Research: Added
research
tool onExaTools
. See more on their docs about how their research works. - Whatsapp Type Indicator: Add type indicator to Whatsapp responses.
Bug Fixes:
- State in Messages Fixes: Fixed issues around nested json inside messages and adding state into messages.
- Anthropic Empty Responses: Fixed issue with Anthropic sometimes responding with empty message.
What's Changed
- feat: Add Exa Research tool by @Mustafa-Esoofally in #3487
- fix: Raise error from custom retriever by @dirkbrnd in #3492
- [docs] : broken link to example implementation of vector db by @nebulaanish in #3488
- feat: add async support for all evals by @manuhortet in #3445
- feat: add direct file upload support to model by @Ayush0054 in #3439
- feat: Typing Indicator by @VirusDumb in #3495
- fix: Issue empty anthropic responses by @dirkbrnd in #3491
- fix: State in message substitution by @dirkbrnd in #3490
- fix: Remove tool caching by @dirkbrnd in #3494
- chore: Release 1.5.10 by @dirkbrnd in #3498
New Contributors
- @nebulaanish made their first contribution in #3488
Full Changelog: v1.5.9...v1.5.10