Changelog

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 and team.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).
  • 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 of Agent and Team, which in conjunction with response_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 only response_model needs to be set. It is not necessary anymore to set structured_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 Ouput: Agent.structured_output has been replaced by Agent.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. This will be removed in a future major version release.

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”.
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
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.
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.
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.
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.
New Features:
  • Audio File Upload on Playground: You can now upload audio files and have a model interpret the audio, do sentiment analysis, provide an audio transcription, etc.
Bug Fixes:
  • Claude Thinking Streaming: Fix Claude thinking when streaming is active, as well as for async runs.
New Features:
  • Claude 3.7 Support: Added support for the latest Claude 3.7 Sonnet model
Bug Fixes:
  • Claude Tool Use: Fixed an issue where tools and content could not be used in the same block when interacting with Claude models.
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 the gpt-4o-audio-preview model. See their docs for more on how it works.
    • 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.
Improvements:
  • Gmail Tools: Added get_emails_by_thread and send_email_reply methods to GmailTools.
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.
Bug Fixes:
  • Gemini Tool-Call History: Fixed an issue where Gemini rejected tool-calls from historic messages.
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.
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.
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
  • 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 the ModelsLabTools class have changed. The url and fetch_url parameters have been removed, and API URLs are now decided based on the file_type provided by the user.
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.
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 to True. <docs>
Other Improvements:
  • Exa Answers Support: Added support for the Exa answers capability.
  • GoogleSearchTools: Updated the name of GoogleSearch to GoogleSearchTools for consistency.
Deprecation:
  • Our Gemini implementation directly on the Vertex API has been replaced by the Google SDK implementation of Gemini.
  • Our Gemini implementation via the OpenAI client has been replaced by the Google SDK implementation of Gemini.
  • Our OllamaHermes has been removed as the implementation of Ollama 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.
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.
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() and agent.aprint_response().
  • Cohere Async: Cohere now supports async execution via agent.arun() and agent.aprint_response().
Bug Fixes:
  • Retriever as knowledge source: Added small fix and examples for using the custom retriever parameter with an agent.
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.
New Features:
  • Gmail Tools: Add tools for Gmail, including mail search, sending mails, etc.
Improvements:
  • Exa Toolkit Upgrade: Added find_similar to ExaTools.
  • Claude Async: Claude models can now be used with await agent.aprint_response() and await agent.arun().
  • Mistral Vision: Mistral vision models are now supported. Various examples were added to illustrate example.
Bug Fixes:
  • Claude Tool Invocation: Fixed issue where Claude was not working with tools that have no parameters.
Improvements:
  • OpenAI Reasoning Parameter: Added a reasoning parameter to OpenAI.
Improvements:
  • Model Client Caching: Made all models cache the client instantiation, improving Agno agent instantiation time.
  • XTools: Renamed TwitterTools to XTools 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: Fixed issue where AzureOpenAIEmbedder was not correctly made a dataclass.
Improvements:
  • Mistral Model Caching: Enabled caching for Mistral models.
This is a major refactor to be coupled with the launch of Agno.
Interface Changes:
  • Class Renaming: Renamed certain classes. For example, phi.model.x is now agno.models.x. See Changes
  • Multi-modal interface updates: We have improved the overall multimodal interface to be more intuitive. See Changes
Improvements:
  • Dataclasses: Changed various instances of Pydantic models to dataclasses to improve the speed.
Removals:
  • Removed all references to Assistant.
  • Removed all references to llm.
  • Removed the PhiTools tool.
  • Removed the PythonAgent and DuckDbAgent (this will be brought back in future with more specific agents).
Bug Fixes:
  • Semantic Chunking: Fixed semantic chunking by replacing similarity_threshold param with threshold param.
New Features:
  • Evals for Agents: Introducing Evals to measure the performance, accuracy, and reliability of your Agents.