v1.63.0

pydantic/pydantic-aiv1.63.0Feb 23, 2026by DouweM

AI Summary

This release adds Gemini 3.1 Pro Preview support, logprob support for Gemini models, and introduces an args_validator parameter for tools enabling pre-execution validation. Multiple bug fixes are included for MCP tools caching, Cohere typing, Anthropic Bedrock JSON schema output, and message identification.

Key Highlights

  • Add Gemini 3.1 Pro Preview support
  • Logprob Support for Gemini models
  • Add args_validator parameter to tools for pre-execution validation
  • Fix Temporal and DBOS MCP to use cached tools instead of fetching each time
  • Fix Anthropic model on Bedrock incorrectly being treated as supporting json schema output

New Features

  • Gemini 3.1 Pro Preview support
  • Logprob Support for Gemini
  • args_validator parameter for tools

Full Release Notes

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

## What's Changed
### 🚀 Features
* Add Gemini 3.1 Pro Preview support by @majdalsado in https://github.com/pydantic/pydantic-ai/pull/4372
* feat(gemini):  Logprob Support by @DRXD1000 in https://github.com/pydantic/pydantic-ai/pull/4269
* Add `args_validator` parameter to tools for pre-execution validation by @jerry-reevo in https://github.com/pydantic/pydantic-ai/pull/4016
### 🐛 Bug Fixes
* Fix Temporal and DBOS MCP to use cached tools instead of fetching each time by @DouweM in https://github.com/pydantic/pydantic-ai/pull/4331
* Updated Cohere content item typing to fix the incompatibility by @DarthJuri in https://github.com/pydantic/pydantic-ai/pull/4384
* Fix Anthropic model on Bedrock incorrectly being treated as supporting json schema output by @vimota in https://github.com/pydantic/pydantic-ai/pull/4369
* fix(pydantic-evals): gracefully handle custom `TracerProviders` without `add_span_processor` by @AtharvaJaiswal005 in https://github.com/pydantic/pydantic-ai/pull/4328
* fix: use non-greedy regex in `strip_markdown_fences` to stop at closing fence by @sksvineeth in https://github.com/pydantic/pydantic-ai/pull/4398
* fix: add defaults for optional fields in OpenRouter streaming models by @majdalsado in https://github.com/pydantic/pydantic-ai/pull/4371
* Set `BuiltinToolCallPart.id` for OpenAI Responses WebSearch/FileSearch by @yipstar in https://github.com/pydantic/pydantic-ai/pull/4391
* fix: Identify new messages by `run_id` instead of index by @madanlalit in https://github.com/pydantic/pydantic-ai/pull/4086

## New Contributors
* @majdalsado made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4372
* @DarthJuri made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4384
* @AtharvaJaiswal005 made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4328
* @sksvineeth made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4398
* @DRXD1000 made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4269
* @yipstar made their first contribution in https://github.com/pydantic/pydantic-ai/pull/4391

**Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v1.62.0...v1.63.0