v2.15.0

pydantic/pydantic-aiv2.15.0Jul 22, 2026by dsfaccini

AI Summary

Adds explicit prompt caching for GPT-5.6, tool-retry budget override, and DynamicCapability toolsets support for durable execution. Deprecates Exa search common tools.

Key Highlights

  • Support explicit prompt caching for `gpt-5.6`
  • Support overriding the tool-retry budget at runtime
  • Support `DynamicCapability` toolsets in durable execution
  • Deprecate Exa search common tools

New Features

  • Explicit prompt caching
  • Tool-retry budget override
  • DynamicCapability support
  • OpenAI moderation results exposure

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### 🚀 Features
* feat(openai): support explicit prompt caching for `gpt-5.6` by @Wh1isper in https://github.com/pydantic/pydantic-ai/pull/6423
* Inline text-like files in `MistralModel` prompts by @pulphix in https://github.com/pydantic/pydantic-ai/pull/6556
* Support overriding the tool-retry budget at `run`/`iter`/`override` time by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/6072
* Support `DynamicCapability` toolsets in durable execution and wrap `DynamicToolset` in DBOS steps and Prefect tasks by @DouweM in https://github.com/pydantic/pydantic-ai/pull/6623
* Add `openai_moderation` setting and expose OpenAI Responses API moderation results in `provider_details` by @pydanty[bot] in https://github.com/pydantic/pydantic-ai/pull/6628
* Deprecate the Exa search common tools in favor of the `ExaSearch` capability in Pydantic AI Harness by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/6644
### 🐛 Bug Fixes
* Fix hosted `tool_search` replay with null call IDs by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/6604
* Mark untyped arrays as not strict-compatible for OpenAI by @hramezani in https://github.com/pydantic/pydantic-ai/pull/6547
* Fix durability capability compatibility regressions by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/6631
* Fix OpenAI background retrieve 400 for `reasoning.encrypted_content` on persisted responses by @pydanty[bot] in https://github.com/pydantic/pydantic-ai/pull/6614
* Round-trip tool control-flow exceptions on DBOS/Prefect, fix Prefect replay edges, and add `register_legacy_workflows` to `DBOSDurability` for clean `DBOSAgent` migration by @DouweM in https://github.com/pydantic/pydantic-ai/pull/6640


**Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v2.14.1...v2.15.0