v3.0.1
agno-agi/agnov3.0.1Aug 26, 2026by ysolanky
AI Summary
This patch focuses on performance optimizations for agents with many tools and long conversations, alongside bug fixes for strict-mode schemas, Gemini media handling, and location lookup dependencies.
Key Highlights
- Tool schemas are now cached across runs to reduce overhead.
- Session history is loaded incrementally to keep response times flat.
- PubMed request timeout added to prevent indefinite blocking.
- Strict-mode tool schemas without 'properties' are now supported.
- Gemini tool-result media is now nested inside FunctionResponse.parts.
New Features
- Deterministic side-effect approval flow cookbook example.
- DeepKeep AI Firewall guardrails cookbook example.
- Peer Cash MCP agent cookbook example.
Full Release Notes
# Changelog ## **Improvements** - **Faster agent runs with many tools**: Tool schemas are now derived once and cached across runs, cutting per-run overhead for agents that carry large toolkits. (#9771) - **Faster long conversations**: Session history is loaded incrementally per turn, so response time stays flat as a conversation grows instead of scaling with its length. (#9775) - **PubMed request timeout**: `PubmedTools` now accepts a `timeout` and passes it to both NCBI E-utilities requests, so a stalled PubMed response cannot hold a tool call indefinitely. (#9463) ## **Bug Fixes** - **Strict-mode tool schemas without `properties`**: `Function.process_schema_for_strict` no longer raises `KeyError` on schemas that omit `properties` (for example MCP server schemas registered verbatim). (#9578, fixes #9409) - **Gemini tool-result media**: Images and document blobs returned from tools are now nested inside `FunctionResponse.parts` for Gemini 3 and later models instead of being emitted as sibling `inline_data` parts; legacy models keep the previous representation. URI-backed response media on Vertex AI is only sent when the MIME type is supported. (#9647) - **Location lookup on core-only installs**: `agno.utils.location` used the undeclared `requests` package, so `add_location_to_context=True` raised `ModuleNotFoundError` without extras installed. It now uses `httpx`. (#9793, fixes #9772) - **`ScheduleManager` cleanup**: `close()` tolerates a partially constructed manager (for example after a failed `deepcopy`), so garbage collection no longer raises `AttributeError` on a missing `_pool`. (#9792) ## **Cookbooks** - Added a deterministic side-effect approval flow example. (#9790) - Added DeepKeep AI Firewall guardrails example. (#9784) - Documented AgentOS team run states. (#9768) - Added a Peer Cash MCP agent example. (#9562) - Fixed stale cookbook paths left over from the directory renumber and in the MCP examples. (#9789, #9783) ## What's Changed * [fix] add PubMed request timeout by @Ghraven in https://github.com/agno-agi/agno/pull/9463 * [cookbook] Add Peer Cash MCP agent by @ADWilkinson in https://github.com/agno-agi/agno/pull/9562 * [cookbook] Document AgentOS team run states by @daleselaji-dev in https://github.com/agno-agi/agno/pull/9768 * feat: export QueueConfig from agno.os by @ysolanky in https://github.com/agno-agi/agno/pull/9776 * fix: correct stale 90_tools paths in MCP cookbook examples by @cc-9898 in https://github.com/agno-agi/agno/pull/9783 * fix: cookbooks stale paths left by the directory renumber by @harshsinha03 in https://github.com/agno-agi/agno/pull/9789 * [cookbook] Add DeepKeep AI Firewall guardrails by @gilarel in https://github.com/agno-agi/agno/pull/9784 * fix: make ScheduleManager cleanup tolerate partial copies by @kausmeows in https://github.com/agno-agi/agno/pull/9792 * [cookbook] Add deterministic side-effect approval flow by @daleselaji-dev in https://github.com/agno-agi/agno/pull/9790 * fix: use httpx for location lookup instead of undeclared requests by @kausmeows in https://github.com/agno-agi/agno/pull/9793 * fix: stop rebuilding session history on every conversation turn by @ashpreetbedi in https://github.com/agno-agi/agno/pull/9775 * [fix] Nest Gemini tool-result media in function responses by @green3sf in https://github.com/agno-agi/agno/pull/9647 * [fix] Tolerate a tool schema without `properties` in strict mode (#9409) by @Anai-Guo in https://github.com/agno-agi/agno/pull/9578 * fix: cache tool schema derivation across runs by @ashpreetbedi in https://github.com/agno-agi/agno/pull/9771 * fix: Drop no-op default assignments in search_user_memories by @darkdi in https://github.com/agno-agi/agno/pull/9720 * chore: release 3.0.1 by @ysolanky in https://github.com/agno-agi/agno/pull/9794 ## New Contributors * @ADWilkinson made their first contribution in https://github.com/agno-agi/agno/pull/9562 * @cc-9898 made their first contribution in https://github.com/agno-agi/agno/pull/9783 * @gilarel made their first contribution in https://github.com/agno-agi/agno/pull/9784 * @green3sf made their first contribution in https://github.com/agno-agi/agno/pull/9647 * @Anai-Guo made their first contribution in https://github.com/agno-agi/agno/pull/9578 * @darkdi made their first contribution in https://github.com/agno-agi/agno/pull/9720 **Full Changelog**: https://github.com/agno-agi/agno/compare/v3.0.0...v3.0.1