python Pydantic AI Releases · · 2.0.0

Pydantic AI V2.0.0 Released

sdkaideprecationmediapython-agentic
feature patch

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

Read the original announcement →

https://github.com/pydantic/pydantic-ai/releases/tag/v2.0.0

Related releases