What's Changed
🚀 Features
- feat(openai): support explicit prompt caching for
gpt-5.6by @Wh1isper in #6423 - Inline text-like files in
MistralModelprompts by @pulphix in #6556 - Support overriding the tool-retry budget at
run/iter/overridetime by @dsfaccini in #6072 - Support
DynamicCapabilitytoolsets in durable execution and wrapDynamicToolsetin DBOS steps and Prefect tasks by @DouweM in #6623 - Add
openai_moderationsetting and expose OpenAI Responses API moderation results inprovider_detailsby @pydanty[bot] in #6628 - Deprecate the Exa search common tools in favor of the
ExaSearchcapability in Pydantic AI Harness by @dsfaccini in #6644
🐛 Bug Fixes
- Fix hosted
tool_searchreplay with null call IDs by @adtyavrdhn in #6604 - Mark untyped arrays as not strict-compatible for OpenAI by @hramezani in #6547
- Fix durability capability compatibility regressions by @dsfaccini in #6631
- Fix OpenAI background retrieve 400 for
reasoning.encrypted_contenton persisted responses by @pydanty[bot] in #6614 - Round-trip tool control-flow exceptions on DBOS/Prefect, fix Prefect replay edges, and add
register_legacy_workflowstoDBOSDurabilityfor cleanDBOSAgentmigration by @DouweM in #6640
Full Changelog: v2.14.1...v2.15.0