Skip to content

Releases: pydantic/pydantic-ai

v1.0.10 (2025-09-19)

20 Sep 00:08
556bf56
Compare
Choose a tag to compare

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)

18 Sep 23:37
f5231e8
Compare
Choose a tag to compare

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)

17 Sep 01:14
c028211
Compare
Choose a tag to compare

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() and capture_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)

15 Sep 23:37
ccd5e6a
Compare
Choose a tag to compare

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 in RunContext.prompt by @DouweM in #2891
  • Let FunctionToolset take default values for strict, sequential, requires_approval, metadata by @DouweM in #2909
  • Don't require mcp or logfire 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() when deferred_tool_results is used with message_history ending in ToolReturnParts by @DouweM in #2913

Full Changelog: v1.0.6...v1.0.7

v1.0.6 (2025-09-12)

12 Sep 23:12
ff0fbe3
Compare
Choose a tag to compare

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

Full Changelog: v1.0.5...v1.0.6

v1.0.5 (2025-09-11)

12 Sep 01:19
b00646d
Compare
Choose a tag to compare

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

v1.0.4 (2025-09-11)

11 Sep 17:37
ec87153
Compare
Choose a tag to compare

What's Changed

  • Add Pydantic AI Gateway provider by @Kludex in #2816, #2863
  • Fix OpenAI Responses API tool calls with reasoning by @DouweM in #2869
  • Support OpenAI Responses API returning encrypted reasoning content without summary by @DouweM in #2866
  • Don't ask for OpenAI Responses API to include encrypted reasoning content for models that don't support it by @DouweM in #2867
  • docs: update builtin-tools md by @tberends in #2857

New Contributors

Full Changelog: v1.0.3...v1.0.4

v1.0.3 (2025-09-10)

10 Sep 23:58
bee76e6
Compare
Choose a tag to compare

What's Changed

  • Include thinking parts in subsequent model requests to improve performance and cache hit rates by @DouweM in #2823
  • Add on_complete callback to AG-UI functions to get access to AgentRunResult by @ChuckJonas in #2429
  • Support ModelSettings.seed in GoogleModel by @DouweM in #2842
  • Add with agent.sequential_tool_calls(): contextmanager and use it in DBOSAgent by @DouweM in #2856
  • Ensure ModelResponse fields are set from actual model response when streaming by @DouweM in #2848
  • Send AG-UI thinking start and end events by @DouweM in #2855
  • Support models that return output tool args as {"response': "<JSON string>"} by @shaheerzaman in #2836
  • Support NativeOutput with FunctionModel by @DouweM in #2843
  • Raise error when WebSearchTool is used with OpenAIChatModel and unsupported model by @safina57 in #2824

New Contributors

Full Changelog: v1.0.2...v1.0.3

v1.0.2 (2025-09-08)

09 Sep 00:33
0047a68
Compare
Choose a tag to compare

What's Changed

  • Add support for durable execution with DBOS by @qianl15 in #2638
  • Support sequential tool calling by @strawgate in #2718
  • Add GoogleModelSettings.google_cached_content to pass cached_content by @Hojland in #2832
  • Add ModelResponse.finish_reason and set provider_response_id while streaming by @fatelei in #2590
  • Add support for gen_ai.response.id by @Kludex in #2831
  • Only send tool choice to Bedrock Converse API for Anthropic and Nova models by @DouweM in #2819
  • Handle errors in cost calculation in InstrumentedModel by @alexmojaki in #2834

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1 (2025-09-05)

05 Sep 15:09
55c6814
Compare
Choose a tag to compare

Breaking Changes

The following breaking change was slated to go into v1.0.0 but accidentally left out. Because it's a security issue, an uncommonly used feature, and few people will have updated to v1 yet within 24 hours, we decided it was justified to make an exception to the no-breaking-changes policy to get it out ASAP.

  • Remove Python evaluator from pydantic_evals for security reasons by @dmontagu in #2808

Other Changes

Full Changelog: v1.0.0...v1.0.1