Changelog
New Features:
- AgentOS Custom Middleware: Allow setting of any custom FastAPI-compatible middleware on the AgentOS. See the docs.
- AgentOS JWT Middleware: We have a built-in JWT Middleware that can validate tokens, extract claims to pass into AgentOS endpoints, and more. See the docs.
- Pre/Post Hooks: Configure a custom hook that runs at the start or end of an agent/team run. This is useful for input/output validation, or transforming the input/output of the agent. See the docs.
- Guardrails: Guardrails are specific built-in pre-hooks that you can configure. See the docs. We have added support for:
- Prompt Injection checks (docs)
- PII detections (SSN, credit cards, phone numbers, emails) (docs)
- OpenAI Moderation (docs)
- You can create your own custom guardrails (docs)
- Requesty LLM Gateway: Added support for Requesty, an affordable LLM gateway with advanced governance.
Improvements:
- AgentOS Updates for Clarity:
- None of the below deprecated parameters have been removed, only new attributes added. It will likely be removed in v2.3.0 and after.
- Deprecated
fastapi_app
and addedbase_app
→ For configuring a custom FastAPI app for the AgentOS. - Deprecated
replace_routes
and addedon_route_conflict
→ For how to handle conflicting routes when you setbase_app
. - Deprecated
enable_mcp
and addedenable_mcp_server
→ For converting the AgentOS into an MCP server. - Deprecated
os_id
and addedid
→ The ID of the OS.
- Async Tool Execution In Streaming: For tools that are AsyncGenerators (i.e. they are
async
andyield
content or events), they are now executed in parallel. - Team Async Member Execution: Because of the above update, member execution during async team execution with streaming (i.e.
Team.arun(..., stream=True)
) is now also concurrent.- Note: This means member events are received concurrently and the order is not guaranteed. If you previously depended on the order of events of team members, take note of this.
- Whatsapp Interface Sessions: The user’s unique phone number is now used as the session ID by default. This would enable session history for Whatsapp conversations.
- Update Workflows to not swallow exceptions: workflows now raise exceptions where necessary so that they can be correctly caught in the front end.
- Batch Embeddings: Support for batch embeddings to speed up embedding process and reduce API calls to embeddings providers. See the docs.
- Removed unused
use_batch
parameter from PGVectorDB class
- Removed unused
Bug Fixes:
- Team History in Context: Fixed issues where team history was not correctly added to team context.
- Gemini Metrics Calculation Fix For Gemini 2.5 Models: Fixed a bug where thought tokens count were added later to output tokens before total token calculation
- Fix for workflow async pipeline to correctly accept file input: Updated the Workflow class to include a parameter
files
in the async pipeline input creation, enhancing the flexibility of input handling. InMemoryDb
mutable references: Fixes a bug where some DB methods unexpectedly returned shared object references.- Fix
tool_choice
bug on Gemini: Agno now converttool_choice
values fornone
andauto
correctly to what Gemini expects. - Fix for a bug on Agent OS when output schema includes a non serializable type:
- in fix: agentos datetime serialization #4783 it was fixed but the
to_json
method was being overridden in theBaseWorkflowRunOutputEvent
class which is not really required.
- in fix: agentos datetime serialization #4783 it was fixed but the
What's Changed
- feat: add support for files in async pipeline input by @pritipsingh in #4824
- feat: include session_id in WhatsApp router for agent and team interactions by @souvikinator in #4827
- fix: Knowledge text-contents from list by @dirkbrnd in #4833
- fix: gemini metrics for 2.5 models by @Ayush0054 in #4840
- feat: add jwt and custom middleware support by @kausmeows in #4626
- chore: update workflows to raise exceptions by @kausmeows in #4837
- chore: Fix README typo by @MatthiasJostLpz in #4843
- fix: session upsert for InMemoryDB by @manuhortet in #4850
- fix: Add parent run id to all events from team by @adiberk in #4834
- fix: kb filter with output schema by @kausmeows in #4842
- Requesty provider by @dirkbrnd in #4853
- fix: Async member delegation by @dirkbrnd in #4790
- fix: inmemory db history images by @kausmeows in #4855
- [fix] preserve extra_content on early return in _clean_page_numbers by @KarthikeyaKollu in #4717
- fix: InMemoryDb get_session function update by @kausmeows in #4859
- [fix] Remove redundant code by @zhangwfjh in #4865
- fix: pass model_response.extra to format_function_call_results in str… by @ahmedsamirio in #4832
- [Fix] Rename tools named
search
to relevant ones by @Mustafa-Esoofally in #4863 - fix: workflows datetime serialization issue by @kausmeows in #4862
- feat: Pre/post hooks for agents & Guardrails by @dirkbrnd in #4488
- fix: Update DX of AgentOS by @dirkbrnd in #4649
- feat: Batch embeddings by @willemcdejongh in #4762
- chore: Release 2.1.0 by @dirkbrnd in #4856
New Contributors
- @souvikinator made their first contribution in #4827
- @MatthiasJostLpz made their first contribution in #4843
- @zhangwfjh made their first contribution in #4865
- @ahmedsamirio made their first contribution in #4832
Full Changelog: v2.0.11...v2.1.0