
The Agents SDK Now Demands openai v3
A dependency-tree break dressed as a routine release. The testing modules underneath it are the actually good news.
Founder, Automation Squad ·
The short answer
OpenAI Agents SDK Python v0.21.0, released August 15, 2026, changes its dependency pin to openai>=3.0.0,<4. Anyone still on openai v2 will hit a dependency conflict on upgrade. The same release adds provider-neutral testing modules — agents.testing, agents.realtime.testing and agents.voice.testing — for deterministic tests with no live provider requests.
What changed, what breaks, and the testing modules worth the upgrade
Two releases in three days across both SDKs. The pin is the thing that will interrupt your afternoon; the testing modules are the reason to do it anyway.
Check which openai version you are on before upgrading anything
pip show openai, or look at your lockfile. If it resolves to 2.x, the Agents SDK upgrade will fail or force a resolution you did not intend — and in a shared environment it may drag other packages with it.
Upgrade in a branch, not in place
This is a major version bump on a core dependency with changed HTTP handling underneath. It is the kind of change that works fine until one library in your tree disagrees about httpx.
Then use the reason you upgraded — write one deterministic test
agents.testing with ScriptedModel lets you assert on agent behaviour without a single provider request. That means tests that are free, fast, and do not fail because a model was in a mood.
Start with the workflow that broke most recently
Take the last agent failure you debugged by hand, script the model responses that produced it, and turn it into a test. That single test is worth more than any amount of general coverage.
If you are on TypeScript, look at Standard Schema
v0.16.0 adds Standard Schema support for tool inputs, handoffs and structured outputs alongside Zod and raw JSON Schema. It decouples your tool definitions from Zod specifically, which matters if you are validating with something else elsewhere.
| Change | Where | What it means |
|---|---|---|
| Dependency pin → openai>=3.0.0,<4 | Python v0.21.0 | Breaks if you are still on openai v2 |
| HTTPX2-aware request/response/transport handling | Python v0.21.0 | Comes with the v3 upgrade |
| agents.testing / realtime.testing / voice.testing | Python v0.21.0 | Deterministic tests, no provider calls |
| ScriptedModel, scriptedSandboxSession(), ScriptedRealtimeTransport | JS/TS v0.16.0 | Same idea, TypeScript side |
| Standard Schema for tools, handoffs, structured outputs | JS/TS v0.16.0 | Decouples tool definitions from Zod |
| Model call timeouts | Both | A hung call no longer hangs the run |
| Run-scoped sandbox working directories | Python v0.21.0 | Isolation between runs |
| Docker sandbox network disabling | Python v0.21.0 | Cut network access for a sandboxed run |
| MCP snapshot isolation + configurable retry backoff | Python v0.21.0 | Fewer flaky MCP failures |
Take it with you
OPENAI AGENTS SDK — v0.21.0 (Python) / v0.16.0 (JS-TS)
Released Aug 15-16, 2026
Source: https://automationsquad.com/news/openai-agents-sdk-v3-pin/
THE BREAKING BIT
Python dependency pin moves to: openai>=3.0.0,<4
If you are still on openai v2, your upgrade will conflict.
Comes with HTTPX2-aware request/response/transport/exception handling.
BEFORE YOU UPGRADE
[ ] pip show openai -> version: ________
[ ] If 2.x: upgrade in a BRANCH, not in place
[ ] Check the rest of the tree for anything pinned to httpx
THE GOOD NEWS — deterministic testing, no provider calls
Python: agents.testing
agents.realtime.testing
agents.voice.testing
JS/TS: ScriptedModel
scriptedSandboxSession()
ScriptedRealtimeTransport
[ ] Write ONE test: take the last agent failure I debugged by hand,
script the model responses that caused it, assert on the behaviour
-> free, fast, and doesn't fail because a model was in a mood
ALSO IN THESE RELEASES
Model call timeouts (a hung call no longer hangs the run)
Run-scoped sandbox working directories
Docker sandbox network disabling
MCP snapshot isolation + configurable retry backoff
JS/TS: Standard Schema for tools/handoffs/structured outputs
(decouples tool definitions from Zod)OpenAI released Agents SDK Python v0.21.0 on August 15, 2026, followed by v0.21.1 on August 16, and JS/TS v0.16.0 and v0.16.1 across the same weekend.
The facts: the Python release moves its dependency pin to openai>=3.0.0,<4, bringing HTTPX2-aware request, response, transport and exception handling with it. The release notes state it does not introduce a known breaking SDK behaviour change — the disruption is in the dependency tree rather than in the API. Alongside that, three provider-neutral testing modules arrived: agents.testing, agents.realtime.testing and agents.voice.testing, enabling deterministic agent, sandbox, realtime and voice tests without provider requests. The TypeScript side gained ScriptedModel, scriptedSandboxSession() and ScriptedRealtimeTransport, plus Standard Schema support for tool inputs, handoffs and structured outputs alongside Zod and raw JSON Schema. Both releases add model call timeouts; Python adds run-scoped sandbox working directories, Docker sandbox network disabling, and MCP snapshot isolation with configurable retry backoff.
Automation Squad's take: the pin will generate more support threads than the features will, which is a shame, because the testing modules are the most useful thing in either release. Testing agent behaviour has been genuinely awkward — your test suite either calls a live model, making it slow, expensive and non-deterministic, or it mocks so aggressively that it stops testing anything real. Scripted models sit in between: real SDK machinery, scripted responses, repeatable results. That is the missing piece for anyone who has watched an agent workflow work on Tuesday and fail on Thursday with no code change. The dependency bump is ordinary major-version housekeeping, and the only reason it matters is that a lot of projects pin openai loosely and will discover the conflict at the worst moment.
Run this now: check what version of the openai package you actually resolve to before upgrading anything — pip show openai, or read your lockfile. If it is 2.x, do the upgrade in a branch rather than in place, because a major version bump with changed HTTP handling underneath is exactly the kind of change that surfaces a conflict elsewhere in your tree. Then take the last agent failure you debugged by hand, script the model responses that produced it, and turn it into a test. One real regression test is worth more than the rest of the release notes combined.
Questions people are asking
- What breaks in OpenAI Agents SDK v0.21.0?
- The dependency pin moves to openai>=3.0.0,<4. If your project is still on openai v2, upgrading the Agents SDK will produce a dependency conflict or force a resolution you did not choose. The release notes state it does not introduce a known breaking SDK behaviour change — the break is in the dependency tree.
- What are the new testing modules for?
- agents.testing, agents.realtime.testing and agents.voice.testing let you test agent, sandbox, realtime and voice workflows deterministically without making provider requests. On the TypeScript side the equivalents are ScriptedModel, scriptedSandboxSession() and ScriptedRealtimeTransport.
- What is Standard Schema support in the JS SDK?
- Added in v0.16.0, it lets you define tool inputs, handoffs and structured outputs using Standard Schema alongside Zod and raw JSON Schema, decoupling tool definitions from Zod specifically.
- Are there other changes worth knowing about?
- Model call timeouts so a hung call no longer hangs the run, run-scoped sandbox working directories, the ability to disable networking in a Docker sandbox, and MCP snapshot isolation with configurable retry backoff.
Further reading
- OpenAI Agents SDK for Python — releases — Full changelogs. Worth watching directly, since dependency changes rarely get announced anywhere else.
Last checked August 17, 2026 against the primary sources above, by Automation Squad Research. Spot an error? [email protected].
