pypi pydantic-ai 2.5.0
v2.5.0 (2026-07-03)

3 hours ago

What's Changed

🚀 Features

  • Add sanitize_messages for inbound message-history hardening by @dsfaccini in #6169
  • Round-trip multimodal tool returns through the AG-UI and Vercel AI adapters (history and streaming) by @dsfaccini in #5255

🐛 Bug Fixes

  • Document why _clean_message_history merges consecutive ModelRequests regardless of conversation_id/metadata by @adtyavrdhn in #6221
  • Align LLMJudge _build_prompt section order with its few-shot examples by @immuhammadfurqan in #6111
  • Reject duplicate deferred tool call IDs by @hramezani in #6241
  • Fix MoonshotAI Kimi thinking support and add models to KnownModelNames by @SuperMarioYL in #6208
  • fix(dbos,prefect): preserve runtime toolsets in durable runs by @Trollgeir in #6076
  • Exclude first-class token counts from gen_ai.usage.details.* OTel attributes to fix double-counting by @adtyavrdhn in #6244
  • fix(dbos,prefect): preserve runtime event stream handlers by @Trollgeir in #6093
  • Reject non-object agent spec inputs by @Ghraven in #5820
  • Run the sync streaming wrappers on an anyio portal thread; fix async stream_text early-break teardown by @DouweM in #6199
  • fix(bedrock): only synthesize a leading user message for models that require it by @DouweM in #6255
  • fix(bedrock): correct bedrock_supported_media_kinds_in_tool_returns for Meta, Mistral, and Qwen by @DouweM in #6254

📦 Dependencies

New Contributors

Full Changelog: v2.4.0...v2.5.0

Don't miss a new pydantic-ai release

NewReleases is sending notifications on new releases.