NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #327 most downloaded on PyPI
Graph and state machine library
Last release today
23 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
2 years old
315 releases · first in 2025
One column per month.
Disable instrumentation by default, add instrument param to Agent, use plain OpenTelemetry by @alexmojaki in https://github.com/pydantic/pydantic-ai/p
instrument param to Agent, use plain OpenTelemetry by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/1005gemini-2.0-pro-exp-02-05 by @barapa in https://github.com/pydantic/pydantic-ai/pull/1038Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.31...v0.0.32
Accept recursive objects in return_type by @Kludex in https://github.com/pydantic/pydantic-ai/pull/1017
return_type by @Kludex in https://github.com/pydantic/pydantic-ai/pull/1017model request span with InstrumentedModel by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/1012all_messages in agent span with all_messages_events in same format as InstrumentedModel span by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/1018Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.30...v0.0.31
Use .iter() API to fully replace existing streaming implementation by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/951
.iter() API to fully replace existing streaming implementation by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/951TestModel by @Kludex in https://github.com/pydantic/pydantic-ai/pull/1015Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.29...v0.0.30
Add max_results parameter to DuckDuckGo search tool by @HamzaFarhan in https://github.com/pydantic/pydantic-ai/pull/1003
max_results parameter to DuckDuckGo search tool by @HamzaFarhan in https://github.com/pydantic/pydantic-ai/pull/1003Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.28...v0.0.29
Allow Anthropic Models to use more broad mime types for ImageUrl by @pedroallenrevez in https://github.com/pydantic/pydantic-ai/pull/993
ImageUrl by @pedroallenrevez in https://github.com/pydantic/pydantic-ai/pull/993Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.27...v0.0.28
Add FallbackModel support by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/894
FallbackModel support by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/894Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.26...v0.0.27
Support multimodal inputs by @Kludex in https://github.com/pydantic/pydantic-ai/pull/971
Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.25...v0.0.26
Add InstrumentedModel by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/892
InstrumentedModel by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/892name methods from openai and mistral models by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/925request_stream to InstrumentedModel by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/922next more ergonomic by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/833InstrumentedModel by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/945Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.24...v0.0.25
Remove now-invalid reference to graph extra from docs by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/873
async from _get_model by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/893ModelResponse.model_name from responses by @alexmojaki in https://github.com/pydantic/pydantic-ai/pull/883Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.23...v0.0.24
Fix error in evals example by @samuelcolvin in https://github.com/pydantic/pydantic-ai/pull/852
o3 support for OpenAIModel by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/853AgentModel class by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/800reasoning_effort param for OpenAIModel by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/854project_id == creds_id check for vertexai by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/862model_name and system model properties by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/865Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.22...v0.0.23
Port pydantic_ai.Agent to using pydantic_graph by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/725
pydantic_ai.Agent to using pydantic_graph by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/725tool_call_id to chatbot.append if it's set by @chug2k in https://github.com/pydantic/pydantic-ai/pull/771Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.21...v0.0.22
Update index.md by @kauabh in https://github.com/pydantic/pydantic-ai/pull/759
AgentDeps refs to AgentDepsT by @zzstoatzz in https://github.com/pydantic/pydantic-ai/pull/767ModelSettings to support specialized model requests by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/766_utils.Either by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/768docstring_format and require_parameter_descriptions by @chris-dare in https://github.com/pydantic/pydantic-ai/pull/776OllamaModel in favor of usage with OpenAIModel by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/805Cohere docs and additional (live) tests by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/810Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.20...v0.0.21
Add missing allow_model_requests check by @YanSte in https://github.com/pydantic/pydantic-ai/pull/697
allow_model_requests check by @YanSte in https://github.com/pydantic/pydantic-ai/pull/697model_name to ModelResponse by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/701'deepseek-r1' to the list of Ollama Model Names by @izzyacademy in https://github.com/pydantic/pydantic-ai/pull/735o1 by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/740from_text and from_tool_call utilities that complicate snapshot testing by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/744IsNow() delta by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/746set_event_loop fixture by @dmontagu in https://github.com/pydantic/pydantic-ai/pull/747parallel_tool_calls in ModelSettings by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/750user role system prompts o1-preview-2024-09-12 by @siavashg in https://github.com/pydantic/pydantic-ai/pull/754Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.19...v0.0.20
Docs: add asyncio to all examples that need it. by @ME-Msc in https://github.com/pydantic/pydantic-ai/pull/638
asyncio to all examples that need it. by @ME-Msc in https://github.com/pydantic/pydantic-ai/pull/638docstring_format and require_parameter_descriptions on tools by @sydney-runkle in https://github.com/pydantic/pydantic-ai/pull/643phi4 to Ollama by @josead in https://github.com/pydantic/pydantic-ai/pull/668run/ run_sync docs by @KranthiGV in https://github.com/pydantic/pydantic-ai/pull/688testing-evals and RAG example by @lealre in https://github.com/pydantic/pydantic-ai/pull/694Full Changelog: https://github.com/pydantic/pydantic-ai/compare/v0.0.18...v0.0.19
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →