v1.88.0

pydantic/pydantic-aiv1.88.0Apr 29, 2026by DouweM

AI Summary

Introduces new validate/process hooks, cross-provider `service_tier`, Anthropic speed modes, and OpenAI Responses `phase` support.

Key Highlights

  • Add output validate/process hooks; scope `prepare_tools` to function tools
  • Add cross-provider `service_tier` model setting
  • Add anthropic speed, `fast` mode for opus 4.6
  • Support OpenAI Responses `phase` on assistant messages

Breaking Changes

  • Scope `prepare_tools` to function tools
  • Output validate/process hooks

New Features

  • New hooks: validate/process and prepare_output_tools
  • Cross-provider `service_tier` model setting
  • Anthropic `fast` mode for Opus 4.6

Full Release Notes

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

## What's Changed
### 🚀 Features
* feat(capabilities)!: output validate/process hooks; scope `prepare_tools` to function tools, add `prepare_output_tools` by @DouweM in https://github.com/pydantic/pydantic-ai/pull/4859
* feat: cross-provider `service_tier` model setting; Anthropic + Gemini API + Vertex Priority PayGo support by @markmcd in https://github.com/pydantic/pydantic-ai/pull/4926
* Add anthropic speed, `fast` mode for opus 4.6 by @bohdanhr in https://github.com/pydantic/pydantic-ai/pull/4300
* feat: support OpenAI Responses `phase` on assistant messages by @DouweM in https://github.com/pydantic/pydantic-ai/pull/5229
* feat(ui): add `UIAdapter.sanitize_messages` and `allowed_file_url_schemes` by @DouweM in https://github.com/pydantic/pydantic-ai/pull/5228
### 🐛 Bug Fixes
* fix: restore per-block `cache_control` for `anthropic_cache_messages` by @Wh1isper in https://github.com/pydantic/pydantic-ai/pull/5227
* fix: propagate original error when `CallToolsNode` stream fails by @thejens in https://github.com/pydantic/pydantic-ai/pull/4799
* fix: propagate `Agent(retries=...)` to user-provided toolsets by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/4745

## New Contributors
* @markmcd made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4926

**Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v1.87.0...v1.88.0