v2.56.0

pydantic/pydantic-aiv2.56.0Oct 13, 2026by dsfaccini

Upgrading?

AI Summary

This release introduces major enhancements to the Skills layer, including support for Python 3.15 and the new Gemini 4 Argon model. It also adds a SmolSandbox for local microVM execution and integrates with Render Workflows for durable execution.

Key Highlights

  • SmolSandbox: A new workspace that runs harness capabilities in a local smolvm microVM.
  • Skills layer improvements: Allows project and personal libraries, directory naming, and host command rendering.
  • New model support: Gemini 4 Argon with long decode capabilities.
  • Infrastructure: Adds Render Workflows Integration for Durable Execution engines.

Breaking Changes

  • BrowserUse now runs on the host model by default, with browser-use telemetry becoming opt-in.

New Features

  • Add `base_url` argument to `ZaiProvider`.
  • Add `PGTaskDurability` based on pgtask.
  • Support Gemini 4 Argon (`gemini-4-argon`) on `GoogleModel` with long decode.
  • Support Python 3.15.
  • Allow list-form `tool_choice` to name output tools.

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### ⚠️ Compatibility Notes
* Run `BrowserUse` on the host model by default and make browser-use telemetry opt-in by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/9506
### 🚀 Features
* Let `Skills` layer project and personal libraries, name each skill's directory, and render a skill for a host command by @DouweM in https://github.com/pydantic/pydantic-ai/pull/9802
* Add `base_url` argument to `ZaiProvider` by @aisk in https://github.com/pydantic/pydantic-ai/pull/10099
* Adds `PGTaskDurability` based on pgtask by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/10174
* Adds Render Workflows Integration for Durable Execution engines  by @ojusave in https://github.com/pydantic/pydantic-ai/pull/9439
* Remove `WarnNearLimits` from the harness `Coder` capability by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/9969
* Add `SmolSandbox`: a workspace that runs harness capabilities in a local smolvm microVM by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/10148
* Support Gemini 4 Argon (`gemini-4-argon`) on `GoogleModel` with long decode past the per-request output cap, and raise the Google providers' default timeout to 20 minutes by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/10202
* Support Python 3.15 by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/10064
### 🐛 Bug Fixes
* Keep a `send_audio()` chunk whose send fails out of the realtime `SpeechPart.audio` recorded while it was sending by @DouweM in https://github.com/pydantic/pydantic-ai/pull/10058
* Explain the Bedrock data retention opt-in when Claude Fable 5 / 5.1 reject the default mode by @DouweM in https://github.com/pydantic/pydantic-ai/pull/10050
* Apply `auth` to requests through `MCPToolset(http_client=...)` and stop closing the user-supplied client by @DouweM in https://github.com/pydantic/pydantic-ai/pull/10051
* Allow list-form `tool_choice` to name output tools, and accept static lists that include one by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/8565
* Raise `ModelAPIError` when a 200 response from OpenAI Responses, Anthropic, Groq or OpenAI images has a `text/plain` body by @DouweM in https://github.com/pydantic/pydantic-ai/pull/10065
* Stop sending explicit prompt caching fields to the `openai-codex` backend by @aisk in https://github.com/pydantic/pydantic-ai/pull/10103
* Use `openai-decisions` pricing before matching the shared OpenAI base URL by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/10122
* Unwrap decorated partials when inferring evaluation task names by [@pydanty](https://github.com/apps/pydanty) in https://github.com/pydantic/pydantic-ai/pull/10121
* Stop harness context estimates double-counting changed instructions and tool-returned files by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/9929
* Support adjustable reasoning on `mistral-large-4` and `mistral-large-4-0` by [@pydanty](https://github.com/apps/pydanty) in https://github.com/pydantic/pydantic-ai/pull/9967
* Map every `UsageLimits` field to an explicit ACP stop reason by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/9497
* Record native tool events in `gh-aw` sessions by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/10000
* Retry stale thinking blocks with `drop_block` when Bedrock rejects them by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/9486
* Fix `import pydantic_ai.models` on Pyodide by skipping the eager `httpcore2` import on Emscripten by @adtyavrdhn in https://github.com/pydantic/pydantic-ai/pull/10134
* Replay xAI server-side tool results as tool turns paired with their calls by @kevinwmerritt in https://github.com/pydantic/pydantic-ai/pull/10043
* Keep one summary, receipt and system prompt copy across repeated `SummarizingCompaction` runs by @aweis89 in https://github.com/pydantic/pydantic-ai/pull/9716
* Run gathered `CodeMode` calls concurrently under `parallel_ordered_events` by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/10137
* Keep the `Memory` snapshot with the latest user prompt instead of after tool results by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/10192
* Stop `AnthropicModel` picking native structured output that Bedrock rejects on `AsyncAnthropicBedrock` by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/10207
* Propagate Exa 402 payment-required errors instead of retrying them by [@pydanty](https://github.com/apps/pydanty) in https://github.com/pydantic/pydantic-ai/pull/9816
* Raise `WorkspaceUnavailableError` when a Sprite is deleted during a command, whatever its exit code by @mpfaffenberger in https://github.com/pydantic/pydantic-ai/pull/10193
### 📦 Dependencies
* Bump `genai-prices` to 0.1.10 and keep tests passing on `rich` 15, `dbos` 3 and `e2b` 2.55 by @dsfaccini in https://github.com/pydantic/pydantic-ai/pull/10077

## New Contributors
* @kevinwmerritt made their first contribution in https://github.com/pydantic/pydantic-ai/pull/10043
* @ojusave made their first contribution in https://github.com/pydantic/pydantic-ai/pull/9439
* @sharosoo made their first contribution in https://github.com/pydantic/pydantic-ai/pull/9965
* @ninglinLiu made their first contribution in https://github.com/pydantic/pydantic-ai/pull/10171

**Full Changelog**: https://github.com/pydantic/pydantic-ai/compare/v2.55.0...v2.56.0

Related Repositories