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