NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2373 most downloaded on PyPI
The official capability library and harness for Pydantic AI
Last release today
03 Oct 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 41 of 44 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
44 releases · first in 2026
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add hosted MCP tools with Grain by @adtyavrdhn in #1088
Grain by @adtyavrdhn in #1088DayAI by @adtyavrdhn in #1089PostHog by @adtyavrdhn in #1090Pylon by @adtyavrdhn in #1091pydantic-monty>=1 and add web sockets support by @adtyavrdhn in #524Model.context_window, and ask for a summarizer model on a text-less run by @DouweM in #1101Coder delegate to the agent it is bound to, via SubAgents(include_self=True) by @DouweM in #1061Full Changelog: v0.35.0...v0.36.0
Add hosted MCP tools with LogfireMCP by @adtyavrdhn in #806
LogfireMCP by @adtyavrdhn in #806GitHub by @adtyavrdhn in #799Linear by @adtyavrdhn in #793Notion by @adtyavrdhn in #797GoogleWorkspace by @adtyavrdhn in #791Slack by @adtyavrdhn in #808Ordinal by @adtyavrdhn in #861CodeMode results as repr instead of aborting the run by @mpfaffenberger in #1077Full Changelog: v0.34.0...v0.35.0
Clarify Code Mode speculation setup, safety, and metrics by @mpfaffenberger in #1022
FileSystemToolset without replacing local write safeguards by @mpfaffenberger in #1031Shell.max_file_bytes by @mpfaffenberger in #1030Advisor accept output_type for structured consultations by @mpfaffenberger in #1028Shell.max_file_bytes in configuration summaries by @mpfaffenberger in #1041CodeMode eagerly scans multiple statements by @mpfaffenberger in #1044Coder output limits a stable identity for durable execution by @mpfaffenberger in #1043Full Changelog: v0.33.0...v0.34.0
Add BackgroundTools for concurrent tool execution by @DouweM in #222
BackgroundTools for concurrent tool execution by @DouweM in #222PAI_AGENT spec omit the model and raise the pydantic-ai floor to 2.44.0 by @DouweM in #953speculate) for CodeMode by @mpfaffenberger in #699Full Changelog: v0.32.0...v0.33.0
Warn on the deprecated single-key get / add of InMemorySpendStore and RedisSpendStore by @xixi-box in #747
file_system events by @mpfaffenberger in #853Coder around six tools and persistent shell commands by @mpfaffenberger in #870Coder on Terminal-Bench with Harbor by @mpfaffenberger in #872Coder from FileSystem and Shell by upstreaming its tools into them by @mpfaffenberger in #895gh-aw engine's agent when a workflow configures observability.otlp by @DouweM in #862gh-aw engine experimental by @DouweM in #891FileSystem a max_read_chars budget so Coder reads page without skipping lines by @Quiyyy in #892FallbackCompaction by @mpfaffenberger in #913RepairToolArguments as a standalone capability by @mpfaffenberger in #917Coder instructions to engineering guidance by @mpfaffenberger in #916FileSystem discovery paths with cwd by @Quiyyy in #943get/add of InMemorySpendStore and RedisSpendStore by @xixi-box in #747Coder's plumbing last and fix the Coder docs drift by @DouweM in #949WarnOnCacheBusts, across the runs that continue it by @DouweM in #825Full Changelog: v0.31.0...v0.32.0
Drop the unfulfilled 0.28.0 removal date from SpendStore deprecations by @mpfaffenberger in #841
eager streamed execution to CodeMode by @mpfaffenberger in #746PlanStore get_items and set_items docstrings by @mpfaffenberger in #843tool_return_max_chars to SummarizingCompaction by @mpfaffenberger in #842SpendStore deprecations by @mpfaffenberger in #841step_persistence docs by @mpfaffenberger in #840agent_docs, ported from core by @mpfaffenberger in #835Truncate by @Quiyyy in #836Planning cache breakpoint on the last durable user content by @pydanty in #833FileSystem content hashes agree across read_file, write_file, and edit_file by @mpfaffenberger in #847SnapshotHistorySource.run_history duplicating messages with serializing stores by @mpfaffenberger in #848pydantic-ai 2.40.0 by @mpfaffenberger in #851DelegationStartEvent and DelegationEndEvent from SubAgents by @mpfaffenberger in #855aws-lambda docs install line, which named a bedrock extra that does not exist by @mpfaffenberger in #854pip and uv installation commands throughout the Harness docs by @mpfaffenberger in #858CodeMode sandbox the value shape its own stubs declare by @bohdanhr in #681Full Changelog: v0.30.0...v0.31.0
Deprecate on_spend , on_usage , on_fire , and PlanEventEmitter toward capability event subscriptions by @DouweM in #714
MCPToolsetClient from pydantic_ai_harness.stackone._toolset so CI lint passes again by @mpfaffenberger in #725media docs as Step Persistence plumbing, not a capability by @mpfaffenberger in #751Agent in SummarizingCompaction, ToolOutputLimits, SystemReminders, Advisor and PydanticAIChatModel so Logfire attributes their runs by @mpfaffenberger in #774gather teardown in guardrails parallel mode and MontyExecutor by @mpfaffenberger in #758TrajectoryJudge: review the live run with a second model on a cadence and steer it mid-run by @mpfaffenberger in #724on_spend, on_usage, on_fire, and PlanEventEmitter toward capability event subscriptions by @DouweM in #714FileSystem traversal events and subscribe RepoContext with @on_event, deprecating traversal_tool_names sniffing by @DouweM in #712youdotcom>=3.1.2 and pass attribution kwargs to You() so outbound requests carry an X-Client-Info header by @tyler5673 in #786pydantic-ai gh-aw engine definition is now hosted here, and PAI_AGENT points a workflow at an agent your repository defines by @dsfaccini in #708Truncate.max_chars by @Quiyyy in #816Full Changelog: v0.29.1...v0.30.0
Handle instruction updates in token estimates and conversation search by @dsfaccini in #815
pydantic-monty floor to 0.0.23 by @adtyavrdhn in #813Full Changelog: v0.29.0...v0.29.1
Floor on released pydantic-ai 2.38.0 by @DouweM in #780
pydantic-ai 2.38.0 by @DouweM in #780SummarizingCompaction stream nested summary requests by @JayGhiya in #620media marker keys and match the escape stash by shape by @dsfaccini in #700SubAgents and StackOne the ids that decide it by @DouweM in #767Full Changelog: v0.28.1...v0.29.0
Make StepPersistence replay-safe under durable execution by @DouweM in #749
StepPersistence replay-safe under durable execution by @DouweM in #749SpendLimits replay-safe under durable execution by @DouweM in #748pydantic-ai 2.37.0 and drop the version straddle by @DouweM in #769RunCancelled past contain_errors by @mpfaffenberger in #754tests/logfire_variables so a local .env cannot reach the real Logfire API by @mpfaffenberger in #752Advisor's default id on the class by @DouweM in #776Full Changelog: v0.28.0...v0.28.1
Separate instruction parts from different capabilities with a blank line by @DouweM in #698
pydantic-ai 2.36.0 and drop the version straddle by @DouweM in #743Further reading section to the PlaywrightBrowser docs and README by @dsfaccini in #654SummarizingCompaction summarization a durable operation by @DouweM in #707Full Changelog: v0.27.0...v0.28.0
Allow compaction summaries to override model settings by @thomwebb in #650
spend doc snippets for undefined names, so they stay runnable on the 3.10 floor by @Neallin-917 in #701Full Changelog: v0.26.0...v0.27.0
Apply one response to every budget window as one BatchSpendStore operation, deprecate SpendStore for removal in 0.28.0, and hash-tag the RedisSpendSto…
Shell spawn failures to the model instead of aborting the run by @dsfaccini in #623BatchSpendStore operation, deprecate SpendStore for removal in 0.28.0, and hash-tag the RedisSpendStore keys by @dsfaccini in #548SpendLimits, and correct the durability, composition and UsageLimits claims in the shipped docs by @dsfaccini in #547Full Changelog: v0.25.0...v0.26.0
Allow release gates to pin harness-ref by @dsfaccini in #652
harness-ref by @dsfaccini in #652pydantic-ai against dependencies it does not support by @dsfaccini in #659pydantic-ai-slim>=2.33.0 so anthropic resolves to the HTTPX2 generation by @dsfaccini in #664UsageLimits to nested summaries by @dsfaccini in #665instructions on SummarizingCompaction by @mpfaffenberger in #669Full Changelog: v0.24.0...v0.25.0
Add a serializer seam and indented_json / json_lines presets so ToolOutputLimits spills page by line by @adtyavrdhn in #638
serializer seam and indented_json/json_lines presets so ToolOutputLimits spills page by line by @adtyavrdhn in #638FileSystem tools from leaking absolute host paths to the model by @ada-zl5825 in #628YouSearch and YouResearch capabilities backed by the You.com APIs by @itsakhilyou in #646FileSystem failures to the model instead of aborting the run by @dsfaccini in #612PlaywrightBrowser capability driving Chromium through async Playwright by @dsfaccini in #420write_file from blocking on FIFOs by @samrusani in #613Full Changelog: v0.23.0...v0.24.0
Keep the ManagedPrompt baggage snapshot valid when the resolution span nests under the run span by @adtyavrdhn in #641
ManagedPrompt baggage snapshot valid when the resolution span nests under the run span by @adtyavrdhn in #641FallbackCompaction for failure-based strategy chains by @mpfaffenberger in #644Full Changelog: v0.22.0...v0.23.0
Fix protected pattern semantics for read-only walkers by @dsfaccini in #364
PromptInjectionDefender for indirect prompt injection by @shashi-stackone in #439CodeMode from folding shell command tools into run_code by @kaxil in #593compaction doc examples to claude-sonnet-5, claude-opus-5, gpt-5.6-luna/terra, and gemini-3.6-flash by @mpfaffenberger in #639Full Changelog: v0.21.0...v0.22.0
Front pages + first harnesses: Coder and Researcher, one capability index across core and Harness by @DouweM in https://github.com/pydantic/pydantic-a
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.20.0...v0.21.0
Full Changelog: v0.20.0...v0.21.0
Fix Planning cache-point order by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/570
Planning cache-point order by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/570SpeechPart and AbstractModel run models from pydantic-ai 2.28 by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/586hatchling below 1.32 for release builds by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/595Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.18.1...v0.20.0
Planning cache-point order by @dsfaccini in #570SpeechPart and AbstractModel run models from pydantic-ai 2.28 by @DouweM in #586hatchling below 1.32 for release builds by @dsfaccini in #595Full Changelog: v0.18.1...v0.20.0
Read deferred-tool hiddenness from visibility, not absence by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/573
ToolAvailabilityDeltaPart in the compaction estimator and conversation-search index by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/579Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.18.0...v0.18.1
ToolAvailabilityDeltaPart in the compaction estimator and conversation-search index by @adtyavrdhn in #579Full Changelog: v0.18.0...v0.18.1
feat(browseruse): delegate open-ended web tasks to a browser-use agent by @DEENUU1 in https://github.com/pydantic/pydantic-ai-harness/pull/419
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.17.0...v0.18.0
feat(spend): add SpendLimits for spend and token budgets across windows and processes by @DEENUU1 in https://github.com/pydantic/pydantic-ai-harness/p
SpendLimits for spend and token budgets across windows and processes by @DEENUU1 in https://github.com/pydantic/pydantic-ai-harness/pull/474Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.16.0...v0.17.0
SpendLimits for spend and token budgets across windows and processes by @DEENUU1 in #474Full Changelog: v0.16.0...v0.17.0
feat(guardrails): guard chains and ready-made detectors by @DEENUU1 in https://github.com/pydantic/pydantic-ai-harness/pull/478
system_reminders): cache-safe SystemReminders capability by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/414Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.15.0...v0.16.0
system_reminders): cache-safe SystemReminders capability by @dsfaccini in #414Full Changelog: v0.15.0...v0.16.0
feat: add StackOne capability for linked account actions by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/479
agent_name storage key by @sevakva in https://github.com/pydantic/pydantic-ai-harness/pull/449ToolGuard for tool arguments and tool results by @DEENUU1 in https://github.com/pydantic/pydantic-ai-harness/pull/470agent_docs): require an issue comment when docs or code link it; retry the dependency gate by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/515max_output_chars cap accounting by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/507Shell allowlist with the default denylist by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/508run_code again (revealed_tool_names) by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/517Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.14.0...v0.15.0
agent_name storage key by @sevakva in #449ToolGuard for tool arguments and tool results by @DEENUU1 in #470agent_docs): require an issue comment when docs or code link it; retry the dependency gate by @dsfaccini in #515max_output_chars cap accounting by @adtyavrdhn in #507Shell allowlist with the default denylist by @adtyavrdhn in #508run_code again (revealed_tool_names) by @DouweM in #517Full Changelog: v0.14.0...v0.15.0
fix(ci): let dependency approval revoke a label and still report by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/495
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.13.0...v0.14.0
subagents: per-delegation model selection via an opt-in model menu by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/451
step_persistence: opt-in max_snapshots_per_run to bound snapshot growth by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/442docs/nav.json parity so pages cannot ship orphaned from the site nav by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/491conversation_search): BM25 search over the history StepPersistence stores by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/413Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.12.0...v0.13.0
Add Agent Skills as deferred capabilities by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/396
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.11.0...v0.12.0
Exclude agent state from typechecking by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/435
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.10.0...v0.11.0
feat: add ModalSandbox for isolated cloud sandboxes by @strawgate in https://github.com/pydantic/pydantic-ai-harness/pull/269
ClampOversizedMessages clamping typed ToolCallPart subclasses (ToolSearchCallPart, LoadCapabilityCallPart) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/411Memory capabilities coexist by @sevakva in https://github.com/pydantic/pydantic-ai-harness/pull/409release job silently skipping on tag pushes by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/429release skipping on tag pushes: opt out of skipped-ancestor propagation by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/430Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.9.0...v0.10.0
> This release raises the pydantic-ai-slim floor to 2.14.1.
[!IMPORTANT] This release raises the
pydantic-ai-slimfloor to 2.14.1.
cache_stability): observational CacheStabilityMonitor capability by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/327web_search text_summary mode and deferred ExaAgent capability by @ryahern in https://github.com/pydantic/pydantic-ai-harness/pull/386ClearToolResults corrupting typed ToolReturnPart subclasses (ToolSearchReturnPart) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/383Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.8.0...v0.9.0
Add .macroscope/ignore.md to skip mechanical files in review by @strawgate in https://github.com/pydantic/pydantic-ai-harness/pull/387
CodeMode final-expression returns by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/370step_persistence): rescue last provider-valid resume point on error by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/384Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.7.1...v0.8.0
Remove third-party MCP endpoint from pydantic-ai-harness skill by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/368
pydantic-ai-harness skill by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/368search_files return description parsing by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/377ModelRequests in LimitWarner._strip_old_warnings by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/311Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.7.0...v0.7.1
feat: input and output guardrails (block, redact, retry) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/249
experimental (ACP excepted) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/347Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.6.0...v0.7.0
Bump vcrpy to 8.2.1 to fix YAML deserialization RCE by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/300
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.5.0...v0.6.0
Bump pydantic-ai floor to 2.1 by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/303
read_tool_result returns on a missing handle instead of raising by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/293Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.4.0...v0.5.0
feat: add FileSystem and Shell capabilities by @strawgate in https://github.com/pydantic/pydantic-ai-harness/pull/260
StepPersistence capability for step-event durability across delegates (experimental) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/251SummarizingCompaction, ClearToolResults, DeduplicateFileReads, TieredCompaction by @DouweM in
https://github.com/pydantic/pydantic-ai-harness/pull/191ClampOversizedMessages for runaway generations (experimental) by @dsfaccini in https://github.com/pydantic/pydantic-ai-harness/pull/286dynamic_catalog flag for cache-stable tool disclosure by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/243Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.3.0...v0.4.0
deps: Add support for, and require, pydantic-ai-slim>=1.95.1 by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/241
pydantic-ai-slim>=1.95.1 by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/241Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.2.1...v0.3.0
fix(code_mode): Document monty's missing wall-clock and timing primitives in run_code description by @DouweM in https://github.com/pydantic/pydantic-a
run_code description by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/236ToolDefinition.prefer_builtin=True) out of sandboxing by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/234codemode dependency group alias by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/224Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.2.0...v0.2.1
feat(code_mode): resolve deferred/approval-required tool calls via Pydantic AI v1.87.0's HandleDeferredToolCalls capability by @DouweM in https://gith
HandleDeferredToolCalls capability by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/220.Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.1.2...v0.2.0
Fix compatibility with monty v0.0.13 resume API by @adtyavrdhn in https://github.com/pydantic/pydantic-ai-harness/pull/216
Full Changelog: https://github.com/pydantic/pydantic-ai-harness/compare/v0.1.1...v0.1.2
Rename package to pydantic-ai-harness by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/207
Rename package to pydantic-ai-harness by @DouweM in https://github.com/pydantic/pydantic-ai-harness/pull/207
Your coding agent can read these notes before it upgrades. Set up the MCP server →