MCPcopy
hub / github.com/openai/openai-agents-js

github.com/openai/openai-agents-js @v0.12.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.12.0 ↗
6,507 symbols 18,455 edges 828 files 259 documented · 4%
README

OpenAI Agents SDK (JavaScript/TypeScript)

npm version CI

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows in JavaScript/TypeScript. It is provider-agnostic, supporting OpenAI APIs and more.

Image of the Agents Tracing UI

[!NOTE] Looking for the Python version? Check out OpenAI Agents SDK Python.

Core concepts

  1. Agents: LLMs configured with instructions, tools, guardrails, and handoffs
  2. Sandbox Agents: Agents paired with a filesystem workspace and sandbox environment for longer-running work
  3. Agents as tools / Handoffs: Delegating to other agents for specific tasks
  4. Tools: Various Tools let agents take actions (functions, MCP, hosted tools)
  5. Guardrails: Configurable safety checks for input and output validation
  6. Human in the loop: Built-in mechanisms for involving humans across agent runs
  7. Sessions: Automatic conversation history management across agent runs
  8. Tracing: Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
  9. Realtime Agents: Build powerful voice agents with full features

Explore the examples/ directory to see the SDK in action.

Get started

Supported environments

  • Node.js 22 or later
  • Deno
  • Bun

Experimental support:

  • Cloudflare Workers with nodejs_compat enabled

Check out the documentation for more detailed information.

Installation

npm install @openai/agents zod

Run your first Sandbox Agent

Sandbox Agents are in beta. A sandbox agent can inspect files, run commands, apply patches, and carry workspace state across longer tasks.

import { run } from '@openai/agents';
import { gitRepo, SandboxAgent } from '@openai/agents/sandbox';
import { UnixLocalSandboxClient } from '@openai/agents/sandbox/local';

const agent = new SandboxAgent({
  name: 'Workspace Assistant',
  instructions: 'Inspect the sandbox workspace before answering.',
  defaultManifest: {
    entries: {
      repo: gitRepo({
        repo: 'openai/openai-agents-js',
        ref: 'main',
      }),
    },
  },
});

const result = await run(
  agent,
  'Inspect repo/README.md and summarize what this project does.',
  {
    sandbox: {
      client: new UnixLocalSandboxClient(),
    },
  },
);

console.log(result.finalOutput);
// This project provides a JavaScript/TypeScript SDK for building agent workflows.

(If running this, ensure you set the OPENAI_API_KEY environment variable)

Run an agent without a sandbox

You can still use a regular Agent when your workflow does not need a filesystem workspace or sandbox lifecycle.

import { Agent, run } from '@openai/agents';

const agent = new Agent({
  name: 'Assistant',
  instructions: 'You are a helpful assistant',
});

const result = await run(
  agent,
  'Write a haiku about recursion in programming.',
);
console.log(result.finalOutput);
// Code within the code,
// Functions calling themselves,
// Infinite loop's dance.

Explore the examples/ directory to see the SDK in action.

Acknowledgements

We'd like to acknowledge the excellent work of the open-source community, especially:

We're committed to building the Agents SDK as an open source framework so others in the community can expand on our approach.

For more details, see the documentation or explore the examples/ directory.

Extension points exported contracts — how you extend this code

Response (Interface)
* This Fetch API interface represents the response to a request. * * [MDN Reference](https://developer.mozilla.org/doc [6 …
integration-tests/cloudflare-workers/worker/worker-configuration.d.ts
MCPServer (Interface)
(no doc) [11 implementers]
packages/agents-core/src/mcp.ts
RealtimeOutputGuardrailDefinition (Interface)
(no doc) [7 implementers]
packages/agents-realtime/src/guardrail.ts
RunloopSandboxTimeouts (Interface)
(no doc)
packages/agents-extensions/src/sandbox/runloop/sandbox.ts
AirlineAgentContext (Interface)
(no doc)
examples/customer-service/index.ts
SessionItemCreateManyInput (Interface)
(no doc)
examples/memory/prisma-client-stub.d.ts
ButtonProps (Interface)
(no doc)
examples/nextjs/src/components/ui/Button.tsx
CustomContext (Interface)
(no doc)
examples/basic/dynamic-system-prompt.ts

Core symbols most depended-on inside this repo

log
called by 672
integration-tests/cloudflare-workers/worker/worker-configuration.d.ts
run
called by 459
packages/agents-core/src/run.ts
withTrace
called by 365
packages/agents-core/src/tracing/context.ts
create
called by 355
packages/agents-extensions/src/sandbox/e2b/sandbox.ts
get
called by 307
integration-tests/cloudflare-workers/worker/worker-configuration.d.ts
tool
called by 305
packages/agents-core/src/tool.ts
fakeModelMessage
called by 300
packages/agents-core/test/stubs.ts
close
called by 244
packages/agents-core/src/mcp.ts

Shape

Function 3,024
Method 2,199
Class 894
Interface 385
Enum 5

Languages

TypeScript100%

Modules by API surface

integration-tests/cloudflare-workers/worker/worker-configuration.d.ts536 symbols
packages/agents-core/src/sandbox/errors.ts153 symbols
packages/agents-core/src/sandbox/sandboxes/docker.ts146 symbols
packages/agents-extensions/src/sandbox/runloop/sandbox.ts143 symbols
packages/agents-core/test/run.test.ts128 symbols
packages/agents-extensions/src/sandbox/modal/sandbox.ts119 symbols
packages/agents-core/test/run.stream.test.ts110 symbols
packages/agents-core/src/mcp.ts95 symbols
packages/agents-openai/src/openaiResponsesModel.ts91 symbols
packages/agents-core/test/sandboxRunner.test.ts86 symbols
packages/agents-extensions/src/sandbox/cloudflare/sandbox.ts84 symbols
packages/agents-extensions/src/sandbox/blaxel/sandbox.ts78 symbols

Dependencies from manifests, versioned

@ai-sdk/anthropic3.0.9 · 1×
@ai-sdk/google3.0.6 · 1×
@ai-sdk/openai2.0.0 · 1×
@ai-sdk/provider2.0.0 · 1×
@ai-sdk/react3.0.44 · 1×
@astrojs/mdx5.0.6 · 1×
@astrojs/starlight0.38.5 · 1×
@astrojs/starlight-tailwind5.0.0 · 1×
@blaxel/core0.2.82 · 1×
@changesets/cli2.31.0 · 1×
@daytonaio/sdk0.162.0 · 1×
@e2b/code-interpreter2.3.3 · 1×

For agents

$ claude mcp add openai-agents-js \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact