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