Product updates
Improvements:
- Teams Improvements: Multiple improvements to teams to make task forwarding to member agents more reliable and to make the team leader more conversational. Also added various examples of reasoning with teams.
- Knowledge on Teams: Added
knowledge
toTeam
to better align with the functionality onAgent
. This comes withretriever
to set a custom retriever andsearch_knowledge
to enable Agentic RAG.
Bug Fixes:
- Gemini Grounding Chunks: Fixed error when Gemini Grounding was used in streaming.
- OpenAI Defaults in Structured Outputs: OpenAI does not allow defaults in structured outputs. To make our structured outputs as compatible as possible without adverse effects, we made updates to
OpenAIResponses
andOpenAIChat
.
Improvements:
- Improved Github Tools: Added many more capabilities to
GithubTools
. - Windows Scripts Support: Converted all the utility scripts to be Windows compatible.
- MongoDB VectorDB Async Support: MongoDB can now be used in async knowledge bases.
Bug Fixes:
- Gemini Tool Formatting: Fixed various cases where functions would not be parsed correctly when used with Gemini.
- ChromaDB Version Compatibility: Fix to ensure that ChromaDB and Agno are compatible with newer versions of ChromaDB.
- Team-Member Interactions: Fixed issue where if members respond with empty content the team would halt. This is now be resolved.
- Claude Empty Response: Fixed a case when the response did not include any content with tool calls resulting in an error from the Anthropic API
New Features:
- Timezone Identifier: Added a new
timezone_identifier
parameter in the Agent class to include the timezone alongside the current date in the instructions. - Google Cloud JSON Storage: Added support for JSON-based session storage on Google Cloud.
- Reasoning Tools: Added
ReasoningTools
for an advanced reasoning scratchpad for agents.
Improvements:
Bug Fixes:
- Fix for structured outputs: Fixed cases of structured outputs for reasoning.
1.2.9
Improvements:
- Simpler MCP Interface: Added
MultiMCPTools
to support multiple server connections and simplified the interface to allowcommand
to be passed. See these examples of how to use it.
1.2.8
Changelog
New Features:
- Toolkit Instructions: Extended
Toolkit
withinstructions
andadd_instructions
to enable you to specify additional instructions related to how a tool should be used. These instructions are then added to the model’s “system message” ifadd_instructions=True
.
Bug Fixes:
- Teams transfer functions: Some tool definitions of teams failed for certain models. This has been fixed.
1.2.7
New Features:
- Gemini Image Generation: Added support for generating images straight from Gemini using the
gemini-2.0-flash-exp-image-generation
model.
Improvements:
- Vertex AI: Improved use of Vertex AI with Gemini Model class to closely follow the official Google specification
- Function Result Caching Improvement: We now have result caching on all Agno Toolkits and any custom functions using the
@tool
decorator. See the docs here. - Async Vector DB and Knowledge Base Improvements: Various knowledge bases, readers and vector DBs now have
async-await
support, so it will be used inagent.arun
andagent.aprint_response
. This also means thatknowledge_base.aload()
is possible which should greatly increase loading speed in some cases. The following have been converted:- Vector DBs:
- Knowledge Bases:
JSONKnowledgeBase
→ Here is a cookbook to illustrate how to use it.PDFKnowledgeBase
→ Here is a cookbook to illustrate how to use it.PDFUrlKnowledgeBase
→ Here is a cookbook to illustrate how to use it.CSVKnowledgeBase
→ Here is a cookbook to illustrate how to use it.CSVUrlKnowledgeBase
→ Here is a cookbook to illustrate how to use it.ArxivKnowledgeBase
→ Here is a cookbook to illustrate how to use it.WebsiteKnowledgeBase
→ Here is a cookbook to illustrate how to use it.YoutubeKnowledgeBase
→ Here is a cookbook to illustrate how to use it.TextKnowledgeBase
→ Here is a cookbook to illustrate how to use it.
Bug Fixes:
- Recursive Chunking Infinite Loop: Fixes an issue with RecursiveChunking getting stuck in an infinite loop for large documents.
1.2.5
New Features:
- E2B Tools: Added E2B Tools to run code in E2B Sandbox
Improvements:
- Teams Tools: Add
tools
andtool_call_limit
toTeam
. This means the team leader itself can also have tools provided by the user, so it can act as an agent. - Teams Instructions: Improved instructions around attached images, audio, videos, and files. This should increase success when attaching artifacts to prompts meant for member agents.
- MCP Include/Exclude Tools: Expanded
MCPTools
to allow you to specify tools to specifically include or exclude from all the available tools on an MCP server. This is very useful for limiting which tools the model has access to. - Tool Decorator Async Support: The
@tool()
decorator now supports async functions, including async pre and post-hooks.
Bug Fixes:
- Default Chain-of-Thought Reasoning: Fixed issue where reasoning would not default to manual CoT if the provided reasoning model was not capable of reasoning.
- Teams non-markdown responses: Fixed issue with non-markdown responses in teams.
- Ollama tool choice: Removed
tool_choice
from Ollama usage as it is not supported. - Worklow session retrieval from storage: Fixed
entity_id
mappings.
1.2.4
Improvements:
- Tool Choice on Teams: Made
tool_choice
configurable.
Bug Fixes:
- Sessions not created: Made issue where sessions would not be created in existing tables without a migration be more visible. Please read the docs on storage schema migrations.
- Todoist fixes: Fixed
update_task
onTodoistTools
.
1.2.0
New Features:
- Financial Datasets Tools: Added tools for https://www.financialdatasets.ai/.
- Docker Tools: Added tools to manage local docker environments.
Improvements:
- Teams Improvements: Reasoning enabled for the team.
- MCP Simplification: Simplified creation of
MCPTools
for connections to external MCP servers. See the updated docs.
Bug Fixes:
- Azure AI Factory: Fix for a broken import in Azure AI Factory.
1.1.15
Improvements:
- Tool Result Caching: Added caching of selected searchers and scrapers. This is only intended for testing and should greatly improve iteration speed, prevent rate limits and reduce costs (where applicable) when testing agents. Applies to:
- DuckDuckGoTools
- ExaTools
- FirecrawlTools
- GoogleSearchtools
- HackernewsTools
- NewspaperTools
- Newspaper4kTools
- Websitetools
- YFinanceTools
- Show tool calls: Improved how tool calls are displayed when
print_response
andaprint_response
is used. They are now displayed in a separate panel different from response panel. It can also be used in conjunction inresponse_model
.
1.1.14 - Teams Revamp
New Features:
- Teams Revamp: Announcing a new iteration of Agent teams with the following features:
- Create a
Team
in one of 3 modes: “Collaborate”, “Coordinate” or “Route”. - Various improvements have been made that was broken with the previous teams implementation. Including returning structured output from member agents (for “route” mode), passing images, audio and video to member agents, etc.
- It has added features like “agentic shared context” between team members and sharing of individual team member responses with other team members.
- This also comes with a revamp of Agent and Team debug logs. Use
debug_mode=True
andteam.print_response(...)
to see it in action. - Find the docs here. Please look at the example implementations here.
- This is the first release. Please give us feedback. Updates and improvements will follow.
- Support for
Agent(team=[])
is still there, but deprecated (see below).
- Create a
- LiteLLM: Added LiteLLM support, both as a native implementation and via the
OpenAILike
interface.
Improvements:
- Change structured_output to response_format: Added
use_json_mode: bool = False
as a parameter ofAgent
andTeam
, which in conjunction withresponse_model=YourModel
, is used to indicate whether the agent/team model should be forced to respond in json instead of (now default) structured output. Previous behaviour defaulted to “json-mode”, but since most models now support native structured output, we are now defaulting to native structured output. It is now also much simpler to work with response models, since now onlyresponse_model
needs to be set. It is not necessary anymore to setstructured_output=True
to specifically get structured output from the model. - Website Tools + Combined Knowledgebase: Added functionality for
WebsiteTools
to also update combined knowledgebases.
Bug Fixes:
- AgentMemory: Fixed
get_message_pairs()
fetching incorrect messages. - UnionType in Functions: Fixed issue with function parsing where pipe-style unions were used in function parameters.
- Gemini Array Function Parsing: Fixed issue preventing gemini function parsing to work in some MCP cases.
Deprecations:
- Structured Output:
Agent.structured_output
has been replaced byAgent.use_json_mode
. This will be removed in a future major version release. - Agent Team:
Agent.team
is deprecated with the release of our new Teams implementation here. This will be removed in a future major version release.
1.1.13
Improvements:
- OpenAIResponses File Search: Added support for the built-in “File Search” function from OpenAI. This automatically uploads
File
objects attached to the agent prompt. - OpenAIReponses web citations: Added support to extract URL citations after usage of the built-in “Web Search” tool from OpenAI.
- Anthropic document citations: Added support to extract document citations from Claude responses when
File
objects are attached to agent prompts. - Cohere Command A: Support and examples added for Coheres new flagship model
Bug Fixes:
- Ollama tools: Fixed issues with tools where parameters are not typed.
- Anthropic Structured Output: Fixed issue affecting Anthropic and Anthropic via Azure where structured output wouldn’t work in some cases. This should make the experience of using structured output for models that don’t natively support it better overall. Also now works with enums as types in the Pydantic model.
- Google Maps Places: Support from Google for Places API has been changed and this brings it up to date so we can continue to support “search places”.
1.1.12
New Features:
- Citations: Improved support for capturing, displaying, and storing citations from models, with integration for Gemini and Perplexity.
Improvements:
- CalComTools: Improvement to tool Initialization.
Bug Fixes:
- MemoryManager: Limit parameter was added fixing a KeyError in MongoMemoryDb.
1.1.11
New Features:
- OpenAI Responses: Added a new model implementation that supports OpenAI’s Responses API. This includes support for their “websearch” built-in tool.
- Openweather API Tool: Added tool to get real-time weather information.
Improvements:
- Storage Refactor: Merged agent and workflow storage classes to align storage better for agents, teams and workflows. This change is backwards compatible and should not result in any disruptions.
1.1.10
New Features:
- File Prompts: Introduced a new
File
type that can be added to prompts and will be sent to the model providers. Only Gemini and Anthropic Claude supported for now. - LMStudio: Added support for LMStudio as a model provider. See the docs.
- AgentQL Tools: Added tools to support AgentQL for connecting agents to websites for scraping, etc. See the docs.
- Browserbase Tool: Added Browserbase tool.
Improvements:
- Cohere Vision: Added support for image understanding with Cohere models. See this cookbook to try it out.
- Embedder defaults logging: Improved logging when using the default OpenAI embedder.
Bug Fixes:
- Ollama Embedder: Fix for getting embeddings from Ollama across different versions.
1.1.9
New Features:
- IBM Watson X: Added support for IBM Watson X as a model provider. Find the docs here.
- DeepInfra: Added support for DeepInfra. Find the docs here.
- Support for MCP: Introducing
MCPTools
along with examples for using MCP with Agno agents.
Bug Fixes:
- Mistral with reasoning: Fixed cases where Mistral would fail when reasoning models from other providers generated reasoning content.
1.1.8
New Features:
- Video File Upload on Playground: You can now upload video files and have a model interpret the video. This feature is supported only by select
Gemini
models with video processing capabilities.
Bug Fixes:
- Huggingface: Fixed multiple issues with the
Huggingface
model integration. Tool calling is now fully supported in non-streaming cases. - Gemini: Resolved an issue with manually setting the assistant role and tool call result metrics.
- OllamaEmbedder: Fixed issue where no embeddings were returned.
1.1.5
New Features:
- Audio Responses: Agents can now deliver audio responses (both with streaming and non-streaming).
-
The audio is in the
agent.run_response.response_audio
. -
This only works with
OpenAIChat
with thegpt-4o-audio-preview
model. See their docs for more on how it works. For example -
See the audio_conversation_agent cookbook to test it out on the Agent Playground.
-
- Image understanding support for Together.ai and XAi: You can now give images to agents using models from XAi and Together.ai.
Improvements:
- Automated Tests: Added integration tests for all models. Most of these will be run on each pull request, with a suite of integration tests run before a new release is published.
- Grounding and Search with Gemini: Grounding and Search can be used to improve the accuracy and recency of responses from the Gemini models.
Bug Fixes:
- Structured output updates: Fixed various cases where native structured output was not used on models.
- Ollama tool parsing: Fixed cases for Ollama with tools with optional parameters.
- Gemini Memory Summariser: Fixed cases where Gemini models were used as the memory summariser.
- Gemini auto tool calling: Enabled automatic tool calling when tools are provided, aligning behavior with other models.
- FixedSizeChunking issue with overlap: Fixed issue where chunking would fail if overlap was set.
- Claude tools with multiple types: Fixed an issue where Claude tools would break when handling a union of types in parameters.
- JSON response parsing: Fixed cases where JSON model responses returned quoted strings within dictionary values.
1.1.4
Improvements:
- Gmail Tools: Added
get_emails_by_thread
andsend_email_reply
methods toGmailTools
.
Bug Fixes:
- Gemini List Parameters: Fixed an issue with functions using list-type parameters in Gemini.
- Gemini Safety Parameters: Fixed an issue with passing safety parameters in Gemini.
- ChromaDB Multiple Docs: Fixed an issue with loading multiple documents into ChromaDB.
- Agentic Chunking: Fixed an issue where OpenAI was required for chunking even when a model was provided.
1.1.2
Improvements:
-
Reasoning with o3 Models: Reasoning support added for OpenAI’s o3 models.
-
Gemini embedder update: Updated the
GeminiEmbedder
to use the new Google’s genai SDK. This update introduces a slight change in the interface:
Bug Fixes:
- Singlestore Fix: Fixed an issue where querying SingleStore caused the embeddings column to return in binary format.
- MongoDB Vectorstore Fix: Fixed multiple issues in MongoDB, including duplicate creation and deletion of collections during initialization. All known issues have been resolved.
- LanceDB Fix: Fixed various errors in LanceDB and added on_bad_vectors as a parameter.
1.1.1
Improvements:
-
File / Image Uploads on Agent UI: Agent UI now supports file and image uploads with prompts.
- Supported file formats:
.pdf
,.csv
,.txt
,.docx
,.json
- Supported image formats:
.png
,.jpeg
,.jpg
,.webp
- Supported file formats:
-
Firecrawl Custom API URL: Allowed users to set a custom API URL for Firecrawl.
-
Updated
ModelsLabTools
Toolkit Constructor: The constructor in/libs/agno/tools/models_labs.py
has been updated to accommodate audio generation API calls. This is a breaking change, as the parameters for theModelsLabTools
class have changed. Theurl
andfetch_url
parameters have been removed, and API URLs are now decided based on thefile_type
provided by the user.The
FileType
enum now includesMP3
type:
Bug Fixes:
- Gemini functions with no parameters: Addressed an issue where Gemini would reject function declarations with empty properties.
- Fix exponential memory growth: Fixed certain cases where the agent memory would grow exponentially.
- Chroma DB: Fixed various issues related to metadata on insertion and search.
- Gemini Structured Output: Fixed a bug where Gemini would not generate structured output correctly.
- MistralEmbedder: Fixed issue with instantiation of
MistralEmbedder
. - Reasoning: Fixed an issue with setting reasoning models.
- Audio Response: Fixed an issue with streaming audio artefacts to the playground.
1.1.0 - Models Refactor and Cloud Support
Model Improvements:
- Models Refactor: A complete overhaul of our models implementation to improve on performance and to have better feature parity across models.
- This improves metrics and visibility on the Agent UI as well.
- All models now support async-await, with the exception of
AwsBedrock
.
- Azure AI Foundry: We now support all models on Azure AI Foundry. Learn more here..
- AWS Bedrock Support: Our redone AWS Bedrock implementation now supports all Bedrock models. It is important to note which models support which features.
- Gemini via Google SDK: With the 1.0.0 release of Google’s genai SDK we could improve our previous implementation of
Gemini
. This will allow for easier integration of Gemini features in future. - Model Failure Retries: We added better error handling of third-party errors (e.g. Rate-Limit errors) and the agent will now optionally retry with exponential backoff if
exponential_backoff
is set toTrue
.
Other Improvements
- Exa Answers Support: Added support for the Exa answers capability.
- GoogleSearchTools: Updated the name of
GoogleSearch
toGoogleSearchTools
for consistency.
Deprecation
- Our
Gemini
implementation directly on the Vertex API has been replaced by the Google SDK implementation ofGemini
. - Our
Gemini
implementation via the OpenAI client has been replaced by the Google SDK implementation ofGemini
. - Our
OllamaHermes
has been removed as the implementation ofOllama
was improved.
Bug Fixes
- Team Members Names: Fixed a bug where teams where team members have non-aphanumeric characters in their names would cause exceptions.
1.0.8
New Features:
- Perplexity Model: We now support Perplexity as a model provider.
- Todoist Toolkit: Added a toolkit for managing tasks on Todoist.
- JSON Reader: Added a JSON file reader for use in knowledge bases.
Improvements:
- LanceDb: Implemented
name_exists
function for LanceDb.
Bug Fixes:
- Storage growth bug: Fixed a bug with duplication of
run_messages.messages
for every run in storage.
1.0.7
New Features:
- Google Sheets Toolkit: Added a basic toolkit for reading, creating and updating Google sheets.
- Weviate Vector Store: Added support for Weviate as a vector store.
Improvements:
- Mistral Async: Mistral now supports async execution via
agent.arun()
andagent.aprint_response()
. - Cohere Async: Cohere now supports async execution via
agent.arun()
andagent.aprint_response()
.
Bug Fixes:
- Retriever as knowledge source: Added small fix and examples for using the custom
retriever
parameter with an agent.
1.0.6
New Features:
- Google Maps Toolkit: Added a rich toolkit for Google Maps that includes business discovery, directions, navigation, geocode locations, nearby places, etc.
- URL reader and knowledge base: Added reader and knowledge base that can process any URL and store the text contents in the document store.
Bug Fixes:
- Zoom tools fix: Zoom tools updated to include the auth step and other misc fixes.
- Github search_repositories pagination: Pagination did not work correctly and this was fixed.
1.0.5
New Features:
- Gmail Tools: Add tools for Gmail, including mail search, sending mails, etc.
Improvements:
- Exa Toolkit Upgrade: Added
find_similar
toExaTools
- Claude Async: Claude models can now be used with
await agent.aprint_response()
andawait agent.arun()
. - Mistral Vision: Mistral vision models are now supported. Various examples were added to illustrate example.
1.0.2
Improvements:
- Model Client Caching: Made all models cache the client instantiation, improving Agno agent instantiation time
- XTools: Renamed
TwitterTools
toXTools
and updated capabilities to be compatible with Twitter API v2.
Bug Fixes:
- Agent Dataclass Compatibility: Removed
slots=True
from the agent dataclass decorator, which was not compatible with Python < 3.10. - AzureOpenAIEmbedder: Made
AzureOpenAIEmbedder
a dataclass to match other embedders.
1.0.0 - Agno
This is the major refactor from phidata
to agno
, released with the official launch of Agno AI.
See the migration guide for additional guidance.
Interface Changes:
-
phi.model.x
→agno.models.x
-
phi.knowledge_base.x
→agno.knowledge.x
(applies to all knowledge bases) -
phi.document.reader.xxx
→agno.document.reader.xxx_reader
(applies to all document readers) -
All Agno toolkits are now suffixed with
Tools
. E.g.DuckDuckGo
→DuckDuckGoTools
-
Multi-modal interface updates:
-
agent.run(images=[])
andagent.print_response(images=[])
is now of typeImage
-
agent.run(audio=[])
andagent.print_response(audio=[])
is now of typeAudio
-
agent.run(video=[])
andagent.print_response(video=[])
is now of typeVideo
-
RunResponse.images
is now a list of typeImageArtifact
-
RunResponse.audio
is now a list of typeAudioArtifact
-
RunResponse.videos
is now a list of typeVideoArtifact
-
RunResponse.response_audio
is now of typeAudioOutput
-
-
Models:
Hermes
→OllamaHermes
AzureOpenAIChat
→AzureOpenAI
CohereChat
→Cohere
DeepSeekChat
→DeepSeek
GeminiOpenAIChat
→GeminiOpenAI
HuggingFaceChat
→HuggingFace
-
Embedders now all take
id
instead ofmodel
as a parameter. For example -
Agent Storage class
PgAgentStorage
→PostgresDbAgentStorage
SqlAgentStorage
→SqliteDbAgentStorage
MongoAgentStorage
→MongoDbAgentStorage
S2AgentStorage
→SingleStoreDbAgentStorage
-
Workflow Storage class
SqlWorkflowStorage
→SqliteDbWorkflowStorage
PgWorkflowStorage
→PostgresDbWorkflowStorage
MongoWorkflowStorage
→MongoDbWorkflowStorage
-
Knowledge Base
phi.knowledge.pdf.PDFUrlKnowledgeBase
→agno.knowledge.pdf_url.PDFUrlKnowledgeBase
phi.knowledge.csv.CSVUrlKnowledgeBase
→agno.knowledge.csv_url.CSVUrlKnowledgeBase
-
Readers
phi.document.reader.arxiv
→agno.document.reader.arxiv_reader
phi.document.reader.docx
→agno.document.reader.docx_reader
phi.document.reader.json
→agno.document.reader.json_reader
phi.document.reader.pdf
→agno.document.reader.pdf_reader
phi.document.reader.s3.pdf
→agno.document.reader.s3.pdf_reader
phi.document.reader.s3.text
→agno.document.reader.s3.text_reader
phi.document.reader.text
→agno.document.reader.text_reader
phi.document.reader.website
→agno.document.reader.website_reader
Improvements:
- Dataclasses: Changed various instances of Pydantic models to dataclasses to improve the speed.
- Moved
Embedder
class from pydantic to data class
Removals
- Removed all references to
Assistant
- Removed all references to
llm
- Removed the
PhiTools
tool - On the
Agent
class,guidelines
,prevent_hallucinations
,prevent_prompt_leakage
,limit_tool_access
, andtask
has been removed. They can be incorporated into theinstructions
parameter as you see fit.
Bug Fixes:
- Semantic Chunking: Fixed semantic chunking by replacing
similarity_threshold
param withthreshold
param.
New Features:
- Evals for Agents: Introducing Evals to measure the performance, accuracy, and reliability of your Agents.