v2.0.0
langflow-ai/langflowv2.0.0Jun 23, 2026by dsfaccini
AI Summary
Pydantic AI V2.0 is a major stable release featuring a harness-first design with capabilities as a core primitive. It introduces new embedding models, improved tool handling, and various bug fixes across multiple AI providers including OpenAI, Anthropic, and Google.
Key Highlights
- Pydantic AI V2.0 stable release with harness-first design
- Add gemini-embedding-2 embedding model
- Map AG-UI interrupts to DeferredTools in AGUIAdapter
- feat: add xai_max_turns to XaiModelSettings
- fix(groq): add groq_reasoning_effort setting
New Features
- gemini-embedding-2 embedding model
- Dynamic LoRA support in vLLM proxy
- xai_max_turns model setting
- groq_reasoning_effort setting
- Enhanced AG-UI integration with DeferredTools
Full Release Notes
# 🎉 Pydantic AI V2.0 is here! After seven betas, **Pydantic AI V2 is now stable.** V2 leans into a harness-first design with [capabilities](https://ai.pydantic.dev/capabilities/) as a core primitive — a single composable unit that bundles an agent's tools, hooks, instructions, and model settings, reaching every layer of the agent through one concept. Install it with: ```bash uv add pydantic-ai ``` See the [Upgrade Guide](https://ai.pydantic.dev/changelog/) for everything that's changed and the recommended path from V1. --- <!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### 🚀 Features * Add `gemini-embedding-2` embedding model by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5887 * Map AG-UI interrupts to `DeferredTools` in `AGUIAdapter` by @jjmllr in https://github.com/pydantic/pydantic-ai/pull/5441 * Add `google_task` text-prefix conditioning for `gemini-embedding-2` embeddings by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5894 * feat: add `xai_max_turns` to `XaiModelSettings` by @manan-tech in https://github.com/pydantic/pydantic-ai/pull/5978 * Pydantic AI V2 by @DouweM in https://github.com/pydantic/pydantic-ai/pull/5451 ### 🐛 Bug Fixes * Don't send Gemini `function_calling_config` without function declarations by @glendigity in https://github.com/pydantic/pydantic-ai/pull/5791 * fix(openai): map image `UploadedFile` parts to `input_image` by @Oxygen56 in https://github.com/pydantic/pydantic-ai/pull/5809 * Fix unified `thinking` handling for Groq qwen3 and Cerebras `gpt-oss` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5850 * Disallow non-finite `Evaluator` outputs by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/5863 * Fix `AnthropicModel.count_tokens` divergence on `ToolSearchTool` replay history by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5855 * Send `reasoning_content` on synthesized tool-call turns for DeepSeek thinking models by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/5842 * Validate `UploadedFile.provider_name` in tool returns and consolidate the guard into `Model._validate_uploaded_file_provider` by @Oxygen56 in https://github.com/pydantic/pydantic-ai/pull/5860 * Replay Cerebras `zai-glm` reasoning in `<think>` tags and bump to `zai-glm-4.7` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5891 * Retain dropped usage fields across `GoogleModel` streaming chunks by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5886 * Accumulate `output_audio_tokens` in `RunUsage` by @HaozheZhang6 in https://github.com/pydantic/pydantic-ai/pull/5904 * fix(output): validate union `kind` discriminator in text output by @ret2libc in https://github.com/pydantic/pydantic-ai/pull/5845 * fix(openai): prevent AG-UI stalls during multi-server MCP discovery by @cooleryu in https://github.com/pydantic/pydantic-ai/pull/5443 * Forward `additionalModelRequestFields` in Bedrock `count_tokens` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5910 * Fix `MCPToolset(http_client=...)` crash on FastMCP's `follow_redirects` kwarg by @he-yufeng in https://github.com/pydantic/pydantic-ai/pull/5694 * fix(cohere): forward `tool_choice` from `ModelSettings` to v2 chat API by @Julien-ser in https://github.com/pydantic/pydantic-ai/pull/5833 * Route `max_tokens` to `max_completion_tokens` or `max_tokens` via `OpenAIModelProfile` flag by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5926 * Forward `top_k` model setting to Bedrock `additionalModelRequestFields` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5922 * Fix `FallbackModel` declaring an unassigned `_model_name` dataclass field by @dorukgezici in https://github.com/pydantic/pydantic-ai/pull/5932 * fix(groq): add `groq_reasoning_effort` setting by @Oxygen56 in https://github.com/pydantic/pydantic-ai/pull/5797 * fix: use running loop in chat app example by @Ghraven in https://github.com/pydantic/pydantic-ai/pull/5971 * fix(cohere): forward usage.cached_tokens as cache_read_tokens by @bdpgmbv in https://github.com/pydantic/pydantic-ai/pull/5957 * fix(mistral): forward penalties in completions by @he-yufeng in https://github.com/pydantic/pydantic-ai/pull/5695 * Emit `reasoning_effort='none'` for Cerebras, deprecate `cerebras_disable_reasoning`, add `cerebras_clear_thinking` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/5897 ## New Contributors * @glendigity made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5791 * @Oxygen56 made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5809 * @HaozheZhang6 made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5904 * @ret2libc made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5845 * @cooleryu made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5443 * @jjmllr made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5441 * @strickvl made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5908 * @Julien-ser made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5833 * @MylittleQueercat made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5876 * @Kropiunig made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5928 * @Nukually made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5813 * @MakenRosa made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5997 * @manan-tech made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5978 * @MeloMei made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5950 * @kaxil made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5984 * @pranavmutatkar made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5991 * @Ghraven made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5971 * @bdpgmbv made their first contribution in https://github.com/pydantic/pydantic-ai/pull/5957 **Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v2.0.0b7...v2.0.0