Releases: pydantic/pydantic-ai
Releases Β· pydantic/pydantic-ai
v1.5.0 (2025-10-24)
What's Changed
- Introduce new graph API in beta by @dmontagu in #2982
- Preformat run graph/node span names for other OTel backends by @alexmojaki in #3244
- Ensure that google-genai doesn't close httpx client provided by Pydantic AI or user by @DouweM in #3243
Full Changelog: v1.4.0...v1.5.0
v1.4.0 (2025-10-23)
What's Changed
- Support OpenAI and Anthropic native MCP support via
MCPServerToolbuiltin tool by @Artui in #3101, #3239 - Use correct agent's instructions when telling model to retry output by @dsfaccini in #3209
- Raise clear error when any Google content filter is hit resulting in empty response by @DouweM in #3236
- Expand docs for pydantic-evals by @dmontagu in #3213
New Contributors
Full Changelog: v1.3.0...v1.4.0
v1.3.0 (2025-10-22)
What's Changed
- Raise
IncompleteToolCallwhen token limit is reached during generation of tool call by @erhuve in #3137 - Include evals report averages in span attributes by @cetra3 in #3053
- Make
AbstractBuiltinToolserializable and work with durable execution by @DouweM in #3176 - Ignore empty text deltas when streaming gpt-oss on Bedrock by @DouweM in #3215
- Ignore empty text deltas when streaming gpt-oss via Ollama by @DouweM in #3216
- docs: Replace deprecated Cohere model 'command' with 'command-r7b-12-β¦ by @sijanonly in #3201
- Include all usage fields in OTel attributes by @DouweM in #3221
- Correct Prefect
.serveexample by @desertaxle in #3192 - Ensure toolset spans (e.g. MCP sampling) are nested under agent run span by @DouweM in #3224
- Update genai-prices, fix default
api_flavor, fixes anthropic usage extraction by @alexmojaki in #3226 - feat(gateway): support AWS Bedrock by @Kludex in #3203
- Add OVHcloud AI Endpoints provider by @eliasto in #3188
- Use
gateway/<upstream_provider>:as provider name prefix for Gateway by @DouweM in #3229 - Add
http_clientoption toGoogleProvider, supportapi_keyfor Vertex AI, and use Pydantic AI's cached httpx client by default by @DouweM in #3217
New Contributors
- @erhuve made their first contribution in #3137
- @cetra3 made their first contribution in #3053
- @sijanonly made their first contribution in #3201
- @eliasto made their first contribution in #3188
Full Changelog: v1.2.0...v1.3.0
v1.2.0 (2025-10-20)
What's Changed
- Strip markdown fences when generating evals datasets by @jlegewie in #3141
- Include
final_resultagent span attribute after streaming by @DouweM in #3170 - Add Claude Haiku 4.5 model by @rian-dolphin in #3183
- change paig base url by @samuelcolvin in #3200
- Extract openai usage using genai-prices by @alexmojaki in #3123
New Contributors
- @jlegewie made their first contribution in #3141
- @rian-dolphin made their first contribution in #3183
Full Changelog: v1.1.0...v1.2.0
v1.1.0 (2025-10-15)
Features in v1.1.0
- Add support for durable execution with Prefect by @desertaxle in #3074, #3156
Selected Features since v1.0.0
- Support image generation and output with Google and OpenAI by @DouweM in #2970
- Add Pydantic AI Gateway provider by @Kludex in #2816, #2863
- Add support for
previous_response_idfrom OpenAI Responses API by @GDaamn in #2756 - Add support for durable execution with DBOS by @qianl15 in #2638
- Built-in tool call streaming from OpenAI, Google, Anthropic by @DouweM in #2877
- Support Anthropic built-in memory tool by @DouweM in #3042
- Support text, JSON, XML and YAML
DocumentUrlandBinaryContenton OpenAI by @pulphix in #2851 - Added MCP metadata and annotations to
ToolDefinition.metadatafor use in filtering by @ChuckJonas in #2880 - Let agent
namebe overridden contextually by @MinuraPunchihewa in #3094 - Support contextually overriding agent
instructionsby @mwildehahn in #2926 - Tools can now return AG-UI events separate from result sent to model by @DouweM in #2922
- Add
AgentRunResult.responseconvenience method to get latest model response by @DouweM in #2970 - Add
ModelResponse.text,thinking,files,images,tool_calls, andbuiltin_tool_callsconvenience methods by @DouweM in #2970 - Add
Agent.run_stream_events()convenience method wrappingrun(event_stream_handler=...)by @DouweM in #3084
Other Changes in v1.1.0
- Record instructions on the agent run span even when they are dynamic by @dmontagu in #3131
- Add
descriptionarg to tool function decorators by @zhcn000000 in #3153 - fix(gateway): update base_url by @Kludex in #3164
- Document OpenAI-compatible provider prefixes by @DouweM in #3169
- Explicitly request image response modality from Google API when model supports it by @DouweM in #3172
New Contributors
- @zhcn000000 made their first contribution in #3153
- @certainly-param made their first contribution in #3133
Full Changelog: v1.0.18...v1.1.0
v1.0.18 (2025-10-13)
What's Changed
- Add
rendermethod toEvaluationReportclass by @dmontagu in #3116 - Omit
previous_response_idwhen unset instead of sendingnullto OpenAI Responses by @DouweM in #3134 - Include all API docs in llms.txt by @DouweM in #3152
- Add anyio and httpcore to Temporal passthrough modules by @slumbi in #3147
- Add Nebius AI Studio provider support by @antoncp in #3124
- Add new
ToolCallPart.idfield for OpenAI Responses by @DouweM in #3151
New Contributors
- @slumbi made their first contribution in #3147
- @antoncp made their first contribution in #3124
- @desertaxle made their first contribution in #3074
Full Changelog: v1.0.17...v1.0.18
v1.0.17 (2025-10-09)
What's Changed
- Let
builtin_toolsbe specified at agent run time by @safina57 in #3009 - Make
BinaryImagework with inline-snapshot by @alexmojaki in #3125 - Document
InstrumentationSettings(version=3)by @alexmojaki in #3127
Full Changelog: v1.0.16...v1.0.17
v1.0.16 (2025-10-08)
What's Changed
- Add support for datetime.time/timedelta to format_as_xml by @nurikk in #3087
- Ensure graph persistence snapshots are not mutated when run is resumed by @lienminhquang in #3077
- Use
Sequence[ModelMessage]instead oflistfor method arg types by @moritzwilksch in #3040 - Let agent name be overridden contextually by @MinuraPunchihewa in #3094
- Respect
FileUrl.force_downloadflag in OpenAI Chat and Responses models by @nicolas-chaulet in #3106 - Ensure
FileUrlandBinaryContentwithoutidentifierare valid by @DouweM in #3110 - Don't include ToolResultPart for external tool call when streaming by @DouweM in #3112
- Fix token usage for anthropic streaming by @alexmojaki in #3111 and #3115
- plain text docs, fix redirects and add logfire by @samuelcolvin in #3096
New Contributors
- @nurikk made their first contribution in #3087
- @lienminhquang made their first contribution in #3077
- @MinuraPunchihewa made their first contribution in #3094
- @nicolas-chaulet made their first contribution in #3106
Full Changelog: v1.0.15...v1.0.16
v1.0.15 (2025-10-03)
What's Changed
- Support image generation and output with Google and OpenAI by @DouweM in #2970
- Add
AgentRunResult.responseconvenience method to get latest model response by @DouweM in #2970 - Add
ModelResponse.text,thinking,files,images,tool_calls, andbuiltin_tool_callsconvenience methods by @DouweM in #2970 - Add
Agent.run_stream_events()convenience method wrappingrun(event_stream_handler=...)by @DouweM in #3084 - Add content (e.g. files) returned by tool to
FunctionToolResultEventby @DouweM in #3082 - Set
MCPServeridandtool_prefixinload_mcp_serversby @DouweM in #3052 - Add latest gemini 2.5 flash(-lite) model names and aliases by @moritzwilksch in #3060
- Support enums in
format_as_xmlby @DouweM in #3064 - Fix dataset serialization when inputs have discriminators with defaults by @DouweM in #3079
- Fix parallel tool call limit enforcement by @tradeqvest in #2978
Full Changelog: v1.0.14...v1.0.15
v1.0.14 (2025-10-02)
What's Changed
- Remove leftover debug
printstatement by @KostyaGukish in #3070 - Fix duplicate output tool return part when concatenating first run messages with follow-up
new_messagesby @DouweM in #3075
New Contributors
- @KostyaGukish made their first contribution in #3070
Full Changelog: v1.0.13...v1.0.14