Pydantic AI V2.0.0 Released
Pydantic AI has released version 2.0.0, marking a stable release after seven betas. This version introduces a harness-first design with capabilities as a core primitive for agent development. It's recommended for developers building AI agents, and users should consult the upgrade guide for migration from V1.
- →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 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
- →Don't send Gemini function_calling_config without function declarations by @glendigity in https://github.com/pydantic/pydantic-ai/pull/5791
Features (5) ›
- 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
Fixes (23) ›
- 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
https://github.com/pydantic/pydantic-ai/releases/tag/v2.0.0
Related releases
- Pydantic-AI v2.9.0: Security fix, GPT-5.6 models, usage command Pydantic AI Releases ·
- LangGraph 1.2.7: Fixes for delta overwrites and UUID generation LangGraph Releases ·
- pydantic-ai v2.1.0: Anthropic web tools, serialization, and bug fixes Pydantic AI Releases ·
- pydantic-ai v2.5.1: Bug Fixes and Model Compatibility Pydantic AI Releases ·
- crewAI 1.15.0: Conversational Flow Tracking and Declarative Flow Loading CrewAI Releases ·
- OpenAI Agents Python Library v0.17.8: Enhancements and Fixes OpenAI Agents SDK (Python) Releases ·