Releases: openai/openai-agents-js
Release list
v0.11.4
What's Changed
- fix: avoid empty chat completions tool outputs by @seratch in #1309
- fix: avoid auto responses for unknown realtime tools by @seratch in #1310
- fix: preserve local approval rejection reasons by @seratch in #1311
- fix: abort active tracing exports on shutdown timeout by @seratch in #1313
- fix: preserve reasoning identities for OpenAI Conversations persistence by @seratch in #1308
Documentation & Other Changes
- docs: update translated document pages by @github-actions[bot] in #1314
- chore: update versions by @github-actions[bot] in #1312
Full Changelog: v0.11.3...v0.11.4
v0.11.3
v0.11.2
What's Changed
- fix: add configurable sandbox archive extraction limits by @seratch in #1299
- fix: include structured sandbox provider error details by @seratch in #1301
- fix: include Cloudflare sandbox exec and cleanup error details by @seratch in #1300
- fix: preserve GitRepo root subpath aliases by @seratch in #1294
- fix: validate sandbox GitRepo subpaths by @seratch in #1290
- fix: guard no-op tracing span IDs by @seratch in #1292
- fix: add strict feature validation for chat completions by @seratch in #1279
- fix: keep trace batch processing alive after exporter errors by @seratch in #1291
- fix: drop reasoning items orphaned by dropped tool calls by @seratch in #1280
- fix: preserve latest response id on resume by @seratch in #1281
- fix: allow callback-only handoff hooks by @seratch in #1283
- fix: exclude computer instances from provider detection by @seratch in #1284
- fix: preserve output audio content from output item events (realtime) by @seratch in #1287
- fix: treat null audio channels as unset (realtime) by @seratch in #1289
- fix: align Chat Completions strict validation by @seratch in #1303
- fix avoid duplicating reasoning across parallel tool calls in ai-sdk by @seratch in #1285
Documentation & Other Changes
- docs: skip corrupt Prisma session records by @seratch in #1288
- docs: skip corrupt FileSession items during pop by @seratch in #1298
- docs: fix md formatting for Python version note by @YazdanRa in #1297
- docs: refine examples auto-run defaults by @seratch in #1302
- test: isolate and speed up slow sandbox tests by @seratch in #1304
- test: keep output guardrail tripwires behind sibling completion by @seratch in #1286
- chore: stabilize examples auto-run for local MCP and sandbox runs by @seratch in #1295
- chore: upgrade pnpm toolchain to 11.0.9 by @seratch in #1293
- chore: update versions by @github-actions[bot] in #1282
New Contributors
Full Changelog: v0.11.1...v0.11.2
v0.11.1
What's Changed
- fix(sandbox): align Blaxel parity behavior by @mstolarzblaxelai in #1276
- fix: preserve sandbox env resolvers across manifest merges by @mstolarzblaxelai in #1275
Documentation & Other Changes
- docs: updates for v0.11.0 by @seratch in #1271
- docs: update translated document pages by @github-actions[bot] in #1274
- chore: update versions by @github-actions[bot] in #1277
New Contributors
- @mstolarzblaxelai made their first contribution in #1275
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Key Changes
RealtimeAgent's default is now gpt-realtime-2
Since this version, the default model for RealtimeAgents is gpt-realtime-2: https://developers.openai.com/api/docs/models/gpt-realtime-2
Sandbox local source materialization change
In this version, sandbox local source materialization keeps LocalFile.src and LocalDir.src within the materialization baseDir unless the source path is covered by Manifest.extraPathGrants. The baseDir is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.
import { Manifest, localDir, skills } from '@openai/agents/sandbox';
import { localDirLazySkillSource } from '@openai/agents/sandbox/local';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
// Outside the base dir
const sharedSkillsDir = '/opt/company/agent-skills';
// Under the base dir
const appRoot = dirname(fileURLToPath(import.meta.url));
const repoDir = join(appRoot, 'repo');
const manifest = new Manifest({
// Having extraPathGrants for the path outside the baseDir is now required
extraPathGrants: [
{
path: sharedSkillsDir,
readOnly: true,
description: 'Shared skill bundle.',
},
],
entries: {
// This one doesn't need extraPathGrants
repo: localDir({ src: repoDir }),
},
});
const skillCapability = skills({
lazyFrom: localDirLazySkillSource({
src: sharedSkillsDir,
}),
});What's Changed
- feat: default realtime sessions to gpt-realtime-2 by @seratch in #1270
- fix: constrain local sandbox artifact sources to source base directory by @seratch in #1267
Documentation & Other Changes
- chore(deps): bump hono from 4.12.14 to 4.12.16 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1269
- docs: make computer-use examples use headless click demo by @seratch in #1273
- chore: update versions by @github-actions[bot] in #1272
Full Changelog: v0.10.1...v0.11.0
v0.10.1
What's Changed
- fix: restore session history when responses compaction replacement fails by @seratch in #1265
- fix: validate hosted MCP approval policies by @seratch in #1268
Documentation & Other Changes
- docs: update for #1248 by @seratch in #1249
- docs: updates for #1250 by @seratch in #1251
- docs: updates for #1255 by @seratch in #1256
- docs: document function tool execution concurrency by @seratch in #1259
- docs: update translated document pages by @github-actions[bot] in #1260
- chore: update versions by @github-actions[bot] in #1266
Full Changelog: v0.10.0...v0.10.1
v0.10.0
Key Changes
Default model change
In this version, the SDK default model is now gpt-5.4-mini instead of gpt-4.1. This could affect agents and runs that do not explicitly set a model. Because the new default is a GPT-5 model, implicit default model settings now include GPT-5 defaults such as reasoning.effort="none" and verbosity="low".
The new default model should work better for most use cases (see the report at #1248), but if you need to keep the previous default model behavior for some reasons, set a model explicitly on the agent or run config or set the OPENAI_DEFAULT_MODEL environment variable.
maxTurns configuration
This version adds a new option maxTurns=null to disable the Agents SDK run turn limit while preserving the existing default of DEFAULT_MAX_TURNS (10) when maxTurns is omitted.
Tool execution concurrency
This version adds a new SDK-side runtime configuration for local function tool execution concurrency: toolExecution.maxFunctionToolConcurrency on RunConfig, preserves default behavior when unset. The change keeps provider-side ModelSettings.parallelToolCalls separate from SDK-side local execution scheduling.
Server-prefixed MCP tool naming
This version adds a new option MCPConfigin Agent to align with the Python SDK. When Its includeServerInToolNames is set to true, the SDK includes the MCP server name in the tool name to prevent tool name conflicts with other MCP servers.
What's Changed
- feat: switch the default model to a newer mini model (affecting only when a model is unset) by @seratch in #1248
- feat: allow maxTurns null to disable turn limits by @seratch in #1247
- feat: accept manifest init shorthands in sandbox configuration by @seratch in #1250
- feat: add function tool concurrency config by @seratch in #1254
- feat: align local MCP config with the Python SDK by @seratch in #1255
- fix: reject external symlink targets during Cloudflare workspace hydrate by @seratch in #1258
Documentation & Other Changes
- docs: update translated document pages by @github-actions[bot] in #1253
- chore: upgrade pnpm to 10.33.4 by @seratch in #1257
- chore: update versions by @github-actions[bot] in #1252
Full Changelog: v0.9.1...v0.10.0
v0.9.1
What's Changed
- fix: preserve duplicate-name agent identity in RunState serialization by @seratch in #1243
- fix: #1190 reconcile streamed function calls when server-managed runs abort by @seratch in #1241
- fix: avoid replaying assistant conversation item IDs by @seratch in #1235
Documentation & Other Changes
- docs: add sandbox agents guides by @seratch in #1200
- docs: update docs for #1216 by @seratch in #1217
- docs: updates for #1233 by @seratch in #1234
- docs: update translated document pages by @github-actions[bot] in #1236
- docs: update translated document pages by @github-actions[bot] in #1237
- docs: update translated document pages by @github-actions[bot] in #1238
- docs: update translated document pages by @github-actions[bot] in #1242
- docs: update translated document pages by @github-actions[bot] in #1245
- chore: upgrade GitHub Actions workflow pins by @seratch in #1239
- chore: upgrade dev & docs dependencies by @seratch in #1246
- chore: update versions by @github-actions[bot] in #1240
Full Changelog: v0.9.0...v0.9.1
v0.9.0
What's Changed
Sandbox Agents
This release adds Sandbox Agents, a beta SDK surface for running agents with persistent workspaces and sandbox-backed capabilities in JavaScript.
Sandbox agents build on the existing Agent, Runner, and run flow, while adding workspace manifests, sandbox sessions, capabilities, snapshots, memory, and resume support. They let agents inspect files, run commands, edit repositories, apply patches, generate artifacts, and continue work across runs.
Refer to the Sandbox Agents guide and examples/sandbox/ for more details.
Key additions include:
SandboxAgent, exported from@openai/agents/sandbox, with sandbox defaults such asdefaultManifest,baseInstructions, capabilities, andrunAs.Manifest, a workspace contract for synthetic files and directories, local files and directories, Git repositories, environment, users, groups, permissions, and mounts.SandboxRunConfig, which wires sandbox clients, live sessions, serialized session resume, manifest overrides, snapshots, and materialization limits into each run.- Built-in capabilities for filesystem access, shell access, patching and editing, image inspection, lazy skills, memory, and compaction.
- Sandbox-aware
RunStateserialization for resuming runner-managed sandbox sessions.
Sandbox Clients and Hosted Providers
Sandbox agents support local, containerized, and hosted execution backends:
UnixLocalSandboxClientfor local development.DockerSandboxClientfor container isolation and image parity.- Hosted sandbox clients for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through
@openai/agents-extensions/sandbox/*subpath exports.
Provider-specific examples are available under examples/sandbox/extensions/.
Workspaces, Snapshots, Resume, and Memory
This release adds a workspace model for sandbox sessions, including synthetic files and directories, local files and directories, Git repositories, local bind mounts, Docker volume strategies, and typed remote mounts where supported by the selected backend.
It also adds local and remote snapshot store interfaces for carrying workspace contents across runs, plus runner-managed resume through serialized sandbox session state.
Sandbox memory lets future sandbox-agent runs learn from prior runs by storing extracted lessons in the workspace, injecting concise summaries into later runs, and supporting progressive disclosure through deeper rollout summaries. Memory supports read-only and generate-enabled modes, live updates, automatic generation when sessions are flushed, multi-turn grouping, separate memory layouts, and pluggable MemoryStore implementations.
Examples
A new examples/sandbox/ suite demonstrates:
- Basic
SandboxAgentexecution with a manifest. - Unix-local and Docker sandbox runners.
- Interactive Unix-local PTY usage.
- Sandbox handoffs and sandbox agents as tools.
- Host-defined tools combined with sandbox agents.
- Filesystem, shell, image, patch, compaction, lazy skill, and memory capabilities.
- Snapshot-based resume and multi-agent or multi-turn memory.
- Hosted provider runners for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel.
Runtime, Tracing, and Model Plumbing
The release includes the runtime plumbing needed for sandbox agents to work naturally inside the JavaScript SDK:
- Runner-managed sandbox preparation, capability binding, lifecycle handling, cleanup, and resume.
- Per-agent sandbox session tracking for handoffs and agents-as-tools flows.
- Public sandbox agent identity preservation across model filters and runtime hooks.
- Sandbox operation spans for session startup, command execution, filesystem work, snapshots, memory, and provider operations.
runAssupport for compatible shell and filesystem operations.- Remote sandbox concurrency limits for manifest and local directory materialization.
What's Changed
- feat: add sandbox agents (#1199) by @seratch in #1210
- fix: keep public sandbox agent identity in filters by @seratch in #1226
- fix: support remote sandbox concurrency limits by @seratch in #1225
- fix: reject symlink ancestors in remote local sources by @seratch in #1223
- fix: support sandbox filesystem runAs across providers by @seratch in #1224
- fix: align sandbox mounts with Python and protect rclone credentials by @seratch in #1228
- fix: narrow sandbox public entrypoint by @seratch in #1230
- feat: expose Responses WebSocket keepalive options by @seratch in #1219
- feat: add context management model settings by @seratch in #1233
- feat: add tool item convenience accessors by @seratch in #1195
- fix: #1212 add code interpreter output include option by @seratch in #1213
- fix: surface model refusals during run resolution by @seratch in #1216
Documentation & Other Changes
- docs: use locked MCP filesystem server in examples by @mcgrew-oai in #1193
- docs: update readme for npm packages by @seratch in #1227
- ci: improve the automation to set milestone for a PR by @seratch in #1214
- test: add optional sandbox storage mount integrations by @seratch in #1229
- chore: upgrade pnpm to 10.33.2 by @seratch in #1211
- chore: upgrade pnpm to 10.33.3 by @seratch in #1231
- chore: bump the npm_and_yarn group across 1 directory with 4 updates by @dependabot[bot] in #1194
- chore: update versions by @github-actions[bot] in #1196
Full Changelog: v0.8.5...v0.9.0
v0.8.5
What's Changed
- feat: #1186 expose createAiSdkUiMessageStream by @mavrickdeveloper in #1187
Documentation & Other Changes
- docs: update translated document pages by @github-actions[bot] in #1189
- chore: update versions by @github-actions[bot] in #1188
New Contributors
- @mavrickdeveloper made their first contribution in #1187
Full Changelog: v0.8.4...v0.8.5