v2.6.1
agno-agi/agnov2.6.1Apr 24, 2026by ysolanky
AI Summary
Adds multi-block prompt caching for Claude and a new Parallel MCP backend for web search, along with OpenAI model string mapping improvements.
Key Highlights
- Multi-block prompt caching for Claude (system_prompt_blocks, cache_tools, deterministic ordering)
- Parallel MCP Backend for web search and fetch
- OpenAI model string prefix mapping to OpenAIResponses
New Features
- Claude Prompt Caching Multi-Block
- Parallel MCP Backend
- OpenAIResponses model string mapping
Full Release Notes
# Changelog
## New Features:
- **Claude Prompt Caching (Multi-Block):** Three Anthropic prompt caching enhancements, scoped to the Claude model (#7662):
- New `system_prompt_blocks: List[SystemPromptBlock]` on `Claude` — each block has `text`, `cache`, and optional `ttl` (`"5m"` or `"1h"`) that overrides the model-level `extended_cache_time` flag per block.
- New `cache_tools: bool` on Claude (Anthropic, AWS Bedrock, VertexAI). Adds `cache_control` to the last tool so the tool prefix is cached.
- Deterministic tool ordering in `Model._format_tools` (sort by name), so request prefixes stay stable across runs and prompt caches actually hit. Applies across Anthropic, OpenAI, Gemini, and Bedrock.
- **Parallel MCP Backend:** Added `ParallelMCPBackend` as a new web backend for `WebContextProvider` (#7667). Talks to Parallel's public MCP server at `search.parallel.ai/mcp`, exposing `web_search` + `web_fetch` (compressed markdown output). Keyless by default; Bearer-auth via `PARALLEL_API_KEY` for higher rate limits; optional OAuth endpoint via `use_oauth=True`. Defaults to a 30s timeout (up from `MCPTools`' 10s) because `web_fetch` frequently runs longer on large pages.
## Improvements:
- **OpenAI Model String:** Mapped `"openai:"` model string prefix to `OpenAIResponses` (previously `OpenAIChat`). Added `"openai-chat:"` as a fallback for users who still need `OpenAIChat`. `Agent(model="openai:gpt-5.4")` now resolves to `OpenAIResponses(id="gpt-5.4")`.
## Bug Fixes:
- **A2A:** Pinned `a2a-sdk>=0.3.0,<1.0` in the release workflow. `a2a-sdk` v1.0 has breaking changes that need to be adopted in a follow-up.
- **Cookbook:**
- Fixed outdated Redis cookbook docs - removed dependency install and setup commands that are no longer needed (#7615).
- Fixed `output_schema` example to demonstrate `output_schema` with a Pydantic model (it was incorrectly using `output_model` with web search).
- Fixed typo in `cookbook/05_agent_os/README.md` that referenced a non-existent `agno_agent.py` (corrected to `agno_assist.py`) (#7663).
## What's Changed
* chore: map "openai:" model string to OpenAIResponses by @kausmeows in https://github.com/agno-agi/agno/pull/7655
* fix typo in 05_agent_os readme by @asifshaikh in https://github.com/agno-agi/agno/pull/7663
* [cookbook] fix outdated docs for Redis by @edlng in https://github.com/agno-agi/agno/pull/7615
* feat: add ParallelMCPBackend for web search via Parallel MCP by @Mustafa-Esoofally in https://github.com/agno-agi/agno/pull/7667
* feat: multi-block prompt caching for Claude by @ysolanky in https://github.com/agno-agi/agno/pull/7662
* chore: Release v2.6.1 by @kausmeows in https://github.com/agno-agi/agno/pull/7666
## New Contributors
* @asifshaikh made their first contribution in https://github.com/agno-agi/agno/pull/7663
* @edlng made their first contribution in https://github.com/agno-agi/agno/pull/7615
**Full Changelog**: https://github.com/agno-agi/agno/compare/v2.6.0...v2.6.1