Releases: pydantic/pydantic-ai
Releases · pydantic/pydantic-ai
v0.3.6 (2025-07-04)
What's Changed
- Deprecate
{FunctionToolCallEvent,FunctionToolResultEvent}.call_id
in favor oftool_call_id
by @proever in #2028 - Indicate to the model that a
RetryPromptPart
not tied to a tool call contains validation feedback rather than a user message by @hovi in #2008 - Update starlette subdomain in docs by @alDuncanson in #2099
- Update client.md - Typo by @kauabh in #2105
- Add support for predicted outputs in OpenAIModelSettings by @webholics in #2106
- Record tool response in tool run span by @alexmojaki in #2109
- Use contextvars for agent overriding, rather than a local attribute by @dmontagu in #2118
- Fix model parameters not being customized in fallback model request stream by @almeidaalajoel in #2120
- simplify weather example by @samuelcolvin in #2129
New Contributors
- @alDuncanson made their first contribution in #2099
- @webholics made their first contribution in #2106
- @almeidaalajoel made their first contribution in #2120
Full Changelog: v0.3.5...v0.3.6
v0.3.5 (2025-06-30)
What's Changed
- Add progress bar on evaluate by @davide-andreoli in #1871
- Fix deprecation warning under Pydantic 2.11 by @medaminezghal in #2076
- fix: async fixtures in conftest.py by @stevenh in #2068
- fix: docs examples python version in tests by @stevenh in #2069
- Set 'us-central1' by default on
GoogleProvider
by @Kludex in #2031 - Move
ThinkingPart
to preceedTextPart
inOpenAIResponsesModel
by @Kludex in #2043 - Fix deprecated kwargs validation to prevent silent failures by @svilupp in #2047
- Support strict mode in NativeOutput by @severinh in #2084
- Let tools return ToolReturn to pass additional content to model, or attach metadata that's not passed to the model by @Wh1isper in #2060
- Add ability to include snippets in docs with inline-named sections for fragments and highlighting by @dmontagu in #2088
- Add Slack Lead Qualifier example by @DouweM in #2079
New Contributors
- @medaminezghal made their first contribution in #2076
- @svilupp made their first contribution in #2047
- @severinh made their first contribution in #2084
Full Changelog: v0.3.4...v0.3.5
v0.3.4 (2025-06-26)
What's Changed
- Scrubbing sensitive content by @adtyavrdhn in #2014
- fix(anthropic): send
ThinkingPart
back when using tool calls by @Kludex in #2072
New Contributors
- @adtyavrdhn made their first contribution in #2014
Full Changelog: v0.3.3...v0.3.4
v0.3.3 (2025-06-24)
What's Changed
- Support
NativeOutput
andPromptedOutput
modes in addition toToolOutput
by @DouweM in #1628 - Improve Dynamic Instructions Documentation by @xflashxx in #1819
- docs: add API reference to
UserPromptNode
by @Kludex in #2052 - Include additional usage fields from OpenAI-compatible APIs in usage details by @Wh1isper in #2038
- Fix: Handled and pretty-printed exceptions without exiting the CLI. by @fswair in #2055
- document alternative otel backends by @samuelcolvin in #2062
- note on self-hosting logfire by @samuelcolvin in #2063
- Make Edge hashable by @dmontagu in #2064
New Contributors
Full Changelog: v0.3.2...v0.3.3
v0.3.2 (2025-06-21)
v0.3.1 (2025-06-18)
v0.3.0 (2025-06-18)
Breaking Changes
See #1142 — Adds support for thinking parts.
We now convert the thinking blocks ("<think>..."</think>"
) in provider specific text parts to
PydanticAI ThinkingPart
s. Also, as part of this release, we made the choice to not send back the
ThinkingPart
s to the provider - the idea is to save costs on behalf of the user. In the future, we
intend to add a setting to customize this behavior.
What's Changed
Full Changelog: v0.2.20...v0.3.0
v0.2.20 (2025-06-18)
What's Changed
- Handle
McpError
from MCP tool calls by @ppcantidio in #1999 - Add
process_tool_call
hook to MCP servers to modify tool args, metadata, and return value by @stevenh in #2000 - Respect
ModelSettings.timeout
inGoogleModel
by @DouweM in #2006 - feat: add
RunContext
support to history processors by @Wh1isper in #2002
New Contributors
- @ppcantidio made their first contribution in #1999
- @stevenh made their first contribution in #2000
Full Changelog: v0.2.19...v0.2.20
v0.2.19 (2025-06-16)
What's Changed
- Proper check if callable is async by @Kludex in #1972
- More flexible method infer_provider by @hovi in #1945
- Ignore dynamic instructions returning an empty string by @giacbrd in #1961
- uprev Pyodide to 0.27.6 by @samuelcolvin in #1944
- refactor: updated tools doc with function naming: roll_die → roll_dice by @yamanahlawat in #1986
- Set Anthropic
max_tokens
to 4096 by default by @Kludex in #1994 - feat: add
history_processors
parameter toAgent
for message processing by @Kludex in #1970 - Yield events for unknown tool calls by @proever in #1960
- Always set a parameters schema on a Gemini function declaration, even when it's an empty object by @DouweM in #1998
New Contributors
- @hovi made their first contribution in #1945
- @giacbrd made their first contribution in #1961
- @yamanahlawat made their first contribution in #1986
- @proever made their first contribution in #1960
Full Changelog: v0.2.18...v0.2.19
v0.2.18 (2025-06-13)
What's Changed
- Reuse last request from message history if no user prompt was provided by @DouweM in #1955
- Prevent Anthropic API errors from empty message content by @mike-luabase in #1934
- Add MCP Streamable HTTP implementation by @Kludex in #1965
- feat(openai): expose Responses API id as vendor_id by @sarunas-zebra in #1949
- Use
GoogleModel
instead ofGeminiModel
on inference by @Kludex in #1881
New Contributors
- @sarunas-zebra made their first contribution in #1949
Full Changelog: v0.2.17...v0.2.18