Releases: pydantic/pydantic-ai
Releases · pydantic/pydantic-ai
v1.0.14 (2025-10-02)
What's Changed
- Remove leftover debug
print
statement by @KostyaGukish in #3070 - Fix duplicate output tool return part when concatenating first run messages with follow-up
new_messages
by @DouweM in #3075
New Contributors
- @KostyaGukish made their first contribution in #3070
Full Changelog: v1.0.13...v1.0.14
v1.0.13 (2025-10-01)
What's Changed
- feat: Otel instrumentation version 3 by @bitnahian in #3021
- Don't send strict to HuggingFace API as it's not supported by their types and at least some models by @DouweM in #3062
- Correctly merge
Model.settings
withmodel_settings
in direct mode by @moritzwilksch in #2980 - Expose
server_info
inMCPServer
by @Whadup in #3055 - Support contextually overriding agent instructions by @mwildehahn in #2926
- Update evals attributes by @dmontagu in #2924
New Contributors
Full Changelog: v1.0.12...v1.0.13
v1.0.12 (2025-09-30)
What's Changed
- Support Anthropic built-in memory tool by @DouweM in #3042
- Support text, JSON, XML and YAML
DocumentUrl
andBinaryContent
on OpenAI by @pulphix in #2851 - Prefer
structuredContent
MCP tool result when present by @shaheerzaman in #2854 - Expose
.messages
,.toolsets
types in top-levelpydantic_ai
to aid IDE auto-import by @moritzwilksch in #2957 - Add cost metric to the pydantic-evals output by @dmontagu in #2984
- Add retry args to
pydantic_evals.Dataset.evaluate_sync
by @m7mdhka in #3022 - Change type of common_tools to work with agent with any deps type by @lukekh in #3037
- Don't error when Gemini returns more than one candidate response by @DouweM in #3043
- Handle Ollama responses without
finish_reason
and document Ollama Cloud by @DouweM in #3045 - Add custom Vertex AI Model Garden example by @stefannae in #2868
- Fix StructuredDict with nested JSON schemas using $ref by @ChiaXinLiang in #2570
New Contributors
- @m7mdhka made their first contribution in #3022
- @lukekh made their first contribution in #3037
- @pulphix made their first contribution in #2851
- @stefannae made their first contribution in #2868
- @ChiaXinLiang made their first contribution in #2570
Full Changelog: v1.0.11...v1.0.12
v1.0.11 (2025-09-29)
What's Changed
- Support OpenAI image detail on
ImageUrl
andBinaryContent
viavendor_metadata
by @moritzwilksch in #2987 - Support callable classes as history processors by @bitnahian in #2988
- Add
claude-sonnet-4-5
to known model names by @DouweM in #3033 - Add
operation.cost
metric to instrumented models by @alexmojaki in #3013 - Fix streaming gpt-oss using Ollama by @DouweM in #3035
- Raise error when using Anthropic thinking with output tools by @DouweM in #3025
- Make
OutputObjectDefinition
public onpydantic_ai.output
by @moritzwilksch in #2991 - Update
pyproject.toml
to be PEP639 compliant by @Kludex in #3001 - Bump temporalio to 1.18.0 by @DouweM in #3027
- Bump genai-prices to 0.0.28 by @DouweM in #3030
- Document that Gemini requires native or prompted output mode for structured output streaming by @DouweM in #3032
- Update Ollama docs instructions by @slkoo-cc in #2993
- Update docs and tests for DBOS v2.0 by @qianl15 in #3004
New Contributors
Full Changelog: v1.0.10...v1.0.11
v1.0.10 (2025-09-19)
What's Changed
- Fix OTel for built-in tools returning a list (e.g. Anthropic web search) by @DouweM in #2959
- Drop assertion that Google streaming chunk has candidates by @DouweM in #2960
- Retry model request that produced an empty response by @DouweM in #2961
- Clarify
Agent(retries=...)
description by @DouweM in #2963 - Stop redundantly encoding binary data as base64 when sending to Google genai SDK by @DouweM in #2962
- Use model class names as tags in
format_as_xml
and add option to include field titles and descriptions as attributes by @giacbrd in #2313
Full Changelog: v1.0.9...v1.0.10
v1.0.9 (2025-09-18)
What's Changed
- Stream built-in tool calls from OpenAI, Google, Anthropic and return them on next request (required for OpenAI reasoning) by @DouweM in #2877
- Include built-in tool calls and results in OTel messages by @DouweM in #2954
- Add
RunContext.max_retries
and.last_attempt
by @DouweM in #2952 - Fix
StreamedResponse.model_name
for Azure OpenAI with content filter by @DouweM in #2951 - Fix TemporalAgent dropping model-specific
ModelSettings
(e.g.openai_reasoning_effort
) by @DouweM in #2938 - Don't send item IDs to Responses API for non-reasoning models by @DouweM in #2950
- Update DBOS version by @qianl15 in #2939
Full Changelog: v1.0.8...v1.0.9
v1.0.8 (2025-09-16)
What's Changed
- Tools can now return AG-UI events separate from result sent to model by @DouweM in #2922
- Fix bug causing doubled reasoning tokens usage by deepcopying by @DouweM in #2920
- Fix auto-detection of HTTP proxy settings by @maxnilz in #2917
- Fix
new_messages()
andcapture_run_messages()
when history processors are used by @DouweM in #2921 - chore: Remove 'text' from RunUsage docstrings by @alexmojaki in #2919
New Contributors
Full Changelog: v1.0.7...v1.0.8
v1.0.7 (2025-09-15)
What's Changed
- Added MCP metadata and annotations to
ToolDefinition.metadata
for use in filtering by @ChuckJonas in #2880 - When starting run with message history ending in
ModelRequest
, make its content available inRunContext.prompt
by @DouweM in #2891 - Let
FunctionToolset
take default values forstrict
,sequential
,requires_approval
,metadata
by @DouweM in #2909 - Don't require
mcp
orlogfire
to use Temporal or DBOS by @DouweM in #2908 - Combine consecutive AG-UI user and assistant messages into the same model request/response by @DouweM in #2912
- Fix
new_messages()
whendeferred_tool_results
is used withmessage_history
ending inToolReturnPart
s by @DouweM in #2913
Full Changelog: v1.0.6...v1.0.7
v1.0.6 (2025-09-12)
What's Changed
- Add support for
previous_response_id
from Responses API by @GDaamn in #2756 - Let MCP servers be loaded from file by @Kludex in #2698
- Fix how thinking summaries are sent back to Responses API by @DouweM in #2883
- Bump Cohere SDK and remove incorrect typing workaround by @DouweM in #2886
- Update MCP tool call customisation docs by @MasterOdin in #2817
New Contributors
- @MasterOdin made their first contribution in #2817
Full Changelog: v1.0.5...v1.0.6
v1.0.5 (2025-09-11)
What's Changed
- Don't lose Azure OpenAI Responses encrypted_content if no summary was included by @DouweM in #2874
- Store OpenAI Responses text part ID to prevent error with reasoning by @DouweM in #2882
- Make OpenAIResponsesModel work with reasoning from other models and modified history by @DouweM in #2881
Full Changelog: v1.0.4...v1.0.5