github agno-agi/agno v2.4.0

11 hours ago

Changelog

New Features:

  • Knowledge Protocol: Introduced KnowledgeProtocol The main Knowledge implementation now satisfies this interface. Any other implementation may be used with Agent/Team. Note - Only the main Agno Knowledge implementation of this protocol currently supports AgentOS Knowledge management.
  • Agent Builder: Users can now persist and manage Agent, Team, and Workflow configurations directly in the database. New AgentOS endpoints enable programmatic creation, retrieval, and updates of component definitions.
  • New Events: Added new events for Model, compression and memory.
    • ModelRequestStarted and ModelRequestCompleted
    • CompressionStarted and CompressionCompleted
    • Update MemoryUpdateCompleted to contain the memory content.
  • Gemini file inputs: Add direct GCS and external URL support for Gemini file inputs
  • TavilyTools: Add api_base_url parameter support to TavilyTools for custom hosted usecases.

Improvements:

  • Default DB on AgentOS: Add db to the AgentOS class. If populated, it propagates to all
    agents, teams and workflows without db. It is also used as tracing db.
  • Deprecated enable_user_memories : Introduced update_memory_on_run for the same behavior.
  • Knowledge config endpoint: Improved checking for available readers without needing instantiation of the reader classes. Reduced unnecessary warnings and improved response times.
  • Unify dates format on OS API layer: Unify the format of all dates we send via the OS API. Everything is now a UTC datetime
  • AgentOS Trailing Slash Handling: Add a TrailingSlashMiddleware that strips trailing slashes from request paths, all endpoints returns identical responses without 307 redirects.
  • Pass instructions as is without XML tags:
    • Agent & Team: Instructions are now added directly to the system message without <instructions> tags by default
    • Added add_instruction_tags=True option to restore the previous behavior for users who prefer structured prompts

Bug Fixes:

  • LanceDB: Fixed a bug for duplicate embeddings during async insert and upsert operations.
  • Qdrant Async Search: Fixed async search methods which were preventing event loop blocking during concurrent async operations.
  • CSV Reader: CSVReader and FieldLabeledCSVReader ignored encoding parameter for BytesIO inputs - always used hardcoded "utf-8" instead of self.encoding or "utf-8".
  • PDF Reader: Fixed bug where empty string passwords ("") were incorrectly treated as None due to Python's falsy evaluation
  • Openrouter with Gemini: Adds support for preserving Gemini's reasoning_details field when using OpenRouter, fixing multi-turn conversation issues.
  • MongoDB Async Search: Fixed async_search() to use async_get_embedding() instead of blocking get_embedding() calls, preventing event loop blocking during concurrent async operations.
  • Gemini vertex ai file upload: Fixed a bug where on trying to upload files to Gemini via Vertex AI, the API returned a 400 error.
  • Skills System Prompt: Fixed an issue where agents attempted to call skill names directly as functions, resulting in "Function not found" errors.

Breaking changes:

  • Remove all deprecated fields:
    • session_state, dependencies, user_id etc in tool functions and hooks where RunContext has replaced it
    • stream_intermediate_stepsstream_events
    • yield_run_responseyield_run_output
    • delegate_task_to_all_members removed from Team class
  • Add WebSearchTools: Replacing DDG websearch tool with a Generic web search tool which will be the default on for any websearch related cookbooks & docs.
  • Knowledge add_content() renamed to insert(): The add_content() method and its variants have been renamed to insert() insert_many Old method names are still supported, but all examples and docs will soon only reference the new methods.
  • AgentOS tracing_db : tracing_db has been deprecated in favor of db parameter on the AgentOS.

What's Changed

New Contributors

Full Changelog: v2.3.26...v2.4.0

Don't miss a new agno release

NewReleases is sending notifications on new releases.