OpenAI Agents APIは、OpenAIのオープンソースCodexハーネスをユーザーのために実行します。`OpenAI-Beta: agents=v1`ヘッダー、エージェント定義、およびタスクを付けて`POST https://api.openai.com/v1/agents/sessions`を送信すると、OpenAIがモデルとツールループを実行し、セッションを維持し、サンドボックスをプロビジョニングできます。Agents APIに料金はかかりません。トークン、ツール、ホスト型コンテナの時間に対して支払いが発生します(1GBから16GBのサンドボックスサイズで、20分セッションあたり0.03ドルから0.48ドル)。これは2026年9月10日にパブリックベータ版になり、OpenAIは9月29日のDevDayでコンピューター使用機能を追加しました。
以下:最初のRESTセッション、進捗イベント、MCPツール、サブエージェント、およびコンピューター使用の承認フロー。OpenAIの他のエージェントインターフェースとの比較については、Agents API vs Responses API vs Agents SDKをお読みください。イベントの残りの部分については、DevDay 2026のまとめをご覧ください。すべての呼び出しはプレーンなHTTPであるため、アプリケーションコードを記述する前にApidogから送信できます。
OpenAI Agents APIの概要
| 項目 | 値 |
|---|---|
| ステータス | 2026年9月10日からパブリックベータ版、コンピューター使用機能は9月29日に追加 |
| セッションの作成 | POST /v1/agents/sessions |
| ベータヘッダー | OpenAI-Beta: agents=v1(OpenAI SDKが追加) |
| 主要なパーミッション | api.agents.read, api.agents.write, api.responses.write |
| 料金 | Agents API料金はなし。モデルトークンはAPIレート、ツールは標準レート(ウェブ検索は1,000回呼び出しあたり10ドル) |
| ホスト型コンテナ | 20分セッションあたり0.03ドル(small, 1 GB)、0.12ドル(medium, 4 GB)、0.48ドル(large, 16 GB) |
| 環境 | none, openai_hosted, self_hosted |
| ドキュメントの例で使用されているモデル | gpt-6-astra |
| データ管理 | 米国のみのデータレジデンシー。Zero Data Retention (ZDR) はなし |
| 最大リクエストサイズ | 4 MiB |
出典: Agents APIの紹介、Agents APIの概要、および料金ページ。
4つの概念
ドキュメントでは、APIを以下の4つの要素を中心に構築しています。
- エージェント: モデル、指示、ツール、MCPサーバー。インラインで渡すか、保存して
agent_idを再利用できます。 - 環境: エージェントがファイルを読み込んだりコマンドを実行したりする、オプションのサンドボックスまたはコンピューター。
- セッション: 設定、会話、保存された作業を保持するエージェントの永続的なインスタンス。
- イベントとアイテム: イベントは進行状況をリアルタイムで報告し、アイテムは保存されたメッセージとツール呼び出しです。
アイドル状態のセッションに送信されたメッセージは新しいターンを開始し、ターン中に送信されたメッセージはそれを操縦します。ハーネス(アーキテクチャページによると、モデルとツールループを実行するホスト型Codexインスタンス)もコンテキストの圧縮を処理するため、設定は不要です。
環境を選択する
environment.typeはコマンドがどこで実行されるかを決定します。
none: 計算機能なし。リモートMCPサーバーと関数ツールは機能しますが、組み込みのBash、apply-patch、ワークスペースファイル、executor MCPは機能しません。openai_hosted: OpenAIが/workspaceにPythonとNode.jsを備えたLinuxサンドボックスを管理します。container_sizeをsmall(1 GB)、medium(デフォルト, 4 GB)、またはlarge(16 GB)に設定し、network.accessをenabled、disabled、またはallowed_domainsと共にrestrictedに設定します。/workspace/outputs内のファイルは、ターンが完了するとアーティファクトになります。キープアライブなしのアイドル状態のサンドボックスは1時間後に削除される場合があります。self_hosted: あなた自身のインフラストラクチャ。ラップトップ、コンテナ、またはリモートサンドボックスでcodex exec-serverを実行し、個別の環境キーでアウトバウンド接続します。
ローンチ投稿では、サンドボックスパートナーとしてBlaxel、Cloudflare、Daytona、DigitalOcean、E2B、Modal、Oracle、Runloop、Vercelが挙げられており、セルフホストガイドにはAWS Lambda MicroVMsが追加されています。
REST経由で最初のセッション
上記のパーミッションを持つキーを`OPENAI_API_KEY`としてエクスポートし、小さなコンテナでクイックスタートタスクを送信します。
curl --no-buffer https://api.openai.com/v1/agents/sessions \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent": {
"model": "gpt-6-astra",
"instructions": "Write clean code, run it, and report the actual output."
},
"environment": { "type": "openai_hosted", "container_size": "small" },
"input": "Create tree.py, a script that prints a tree of the files in the current directory. Run it and show the output.",
"stream": true
}'
`stream: true`を使用すると、レスポンスは最初のターンのイベントストリームになります。そこからセッションIDを保存します。ライフサイクルの残りの部分では同じリソースを使用します。
| アクション | リクエスト |
|---|---|
| フォローアップまたは操縦 | agent.session.input.messageイベントを含むPOST /v1/agents/sessions/{id}/events |
| アクティブなターンのキャンセル | 同じエンドポイント、イベントタイプagent.session.input.cancel |
| 保存された作業の読み取り | GET /v1/agents/sessions/{id}/items?order=asc&limit=100 |
| クリーンアップ | DELETE /v1/agents/sessions/{id} |
JavaScript SDKも同じ形状をとります。ローンチ投稿から採用されたこのバージョンは、ツール、サブエージェント、およびボールトを追加します。
import OpenAI from "openai";
const client = new OpenAI();
const session = await client.beta.agents.sessions.create({
agent: {
model: "gpt-6-astra",
tools: [{ type: "web_search" }],
multi_agent: { enabled: true, max_concurrent_subagents: 3 },
},
vault_ids: [process.env.VAULT_ID],
environment: { type: "openai_hosted" },
input: "Summarize breaking changes in the latest release notes.",
});
console.log(session.id);
進捗の追跡:ストリームまたはウェブフック
ストリーミング。入力を送信する前に、`Accept: text/event-stream`とともに`GET /v1/agents/sessions/{id}/events?stream=true`を開くことで、初期イベントを見逃さないようにします。以下のイベントに注意してください。
- テキストの場合は
agent.session.turn.output_text.deltaとagent.session.turn.output_text.done - 結果の場合は
agent.session.turn.completed、agent.session.turn.failed、またはagent.session.turn.cancelled - エージェントが関数結果、環境接続、またはコンピューター使用承認を必要とする場合の
agent.session.requires_action
3つの落とし穴: agent.session.idleはターンが成功したことを意味せず、完了したターンでも失敗したツール呼び出しが含まれる可能性があり、ストリームを閉じてもタスクは停止しません。ストリームは見逃したイベントをリプレイしないため、切断後は新しいストリームを開き、セッションとそのアイテムを取得してください。
ウェブフック。agent.session.created、agent.session.action_required、agent.session.in_progress、agent.session.idle、およびagent.session.failedを購読します。命名に注意してください。ストリームはrequires_actionと表示しますが、ウェブフックはaction_requiredと表示します。ペイロードには呼び出しの詳細が含まれないため、ハンドラーはセッションを取得し、required_actionsを読み取ります。各署名を検証してください(ウェブフック署名検証)。長時間実行されるAPI操作は、なぜウェブフックが数分かかるタスクに適しているかを説明しています。
MCPツール、ツール検索、プログラムによるツール呼び出し、およびサブエージェント
MCP。`agent.tools`にサーバーを追加します。
{
"type": "mcp",
"server_label": "openai_docs",
"transport": { "type": "http", "server_url": "https://developers.openai.com/mcp" },
"required": true
}
デフォルトではOpenAIが接続を行います(connection_origin: "service")ので、サーバーはOpenAIから到達可能である必要があります。プライベートネットワークサーバーにはconnection_origin: "environment"を使用するか、サンドボックスで起動するにはstdioを使用します。認証情報には、1つのセッションにtransport.authorizationを渡すか、vault_idsとともにボールト認証情報(static_bearerまたはmcp_oauth)を添付します。
ツール検索。モデルがツール検索をサポートしている場合、MCPツールは自動的に検出されます。多数の関数ツールの場合、{"type": "tool_search"}を追加し、関数をdefer_loading: trueとマークします。
プログラムによるツール呼び出し。デフォルトで有効: エージェントは分離されたV8ランタイムでJavaScriptを実行するexecツールを取得し、ツール呼び出しをループしたり、大きな結果がコンテキストに到達する前にトリミングしたりできます。{"type": "programmatic_tool_calling", "enabled": false}で無効にできます。
サブエージェント。`multi_agent: {"enabled": true, "max_concurrent_subagents": 3}`を設定します(デフォルトの制限は6です)。サブエージェントは環境のファイルシステムを共有し、MCPツールとウェブ検索を継承しますが、関数ツールは使用できません。ターンのsubagent_idはメインエージェントの場合nullになります。
コンピューター使用:DevDayで追加された機能
コンピューター使用機能により、エージェントはホスト型ブラウザを利用できるようになります。ホスト型環境にツールとデスクトップを追加します。
{
"agent": {
"model": "gpt-6-astra",
"tools": [{ "type": "computer_use", "include_screenshots": true }]
},
"environment": {
"type": "openai_hosted",
"desktop": { "enabled": true },
"network": { "access": "enabled" }
}
}
ブラウザは、パブリックサイトを含む新しいウェブサイトのオリジンにアクセスする前に、ユーザーの承認を必要とします。agent.session.requires_actionが発生したら、セッションを取得し、computer_use_approval_requestエントリを探します。ネストされたrequest.typeは次の2種類のいずれかです。
browser_origin_access:originとreasonを表示し、approve、deny、またはcancelを送信します。browser_authentication:fields、オプションのログインoptions、およびcredential_originを含むサインインフォーム。ユーザーの値とともにaction: "submit"を送信するか、action: "cancel"を送信します。
どちらの回答もイベントエンドポイントを通じて返されます。
curl "https://api.openai.com/v1/agents/sessions/$SESSION_ID/events" \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"events": [{
"type": "agent.session.input.computer_use_approval_request_result",
"request_id": "REQUEST_ID",
"response": { "type": "browser_origin_access", "decision": "approve" }
}]}'
ブラウザの作業は、id、turn_id、title、status、およびoutputを持つcomputer_use_callアイテムとして表示されます。include_screenshotsがオンでスクリーンショットが利用可能な場合、outputにはbase64 JPEGスクリーンショットが含まれます。スクリーンショットはログに残さないでください。アカウントデータが表示される可能性があります。
コンピューター使用ガイドでは、以下の注意点が指摘されています。
- オリジン承認はアクション確認ではありません。サイトを承認しても、エージェントが購入や削除のたびに確認を求めるわけではありません。それが必要な場合は、ブラウザをそれらのアクションを実行できないリソースに制限するか、自分で制御するブラウザランタイムを使用してください。
- サインインはメール、パスワード、確認コードに対応しています。パスキーとQRコードによるサインインはサポートされていません。
- 認証を要求できるのはメインエージェントのみです。サブエージェントはできません。
- 認証情報送信時の自動再試行を無効にします(SDKでは
maxRetries: 0、curlでは--retry 0)。 202は承認されたことを意味し、ナビゲーションやサインインが成功したことを意味しません。認証リクエストは5分後に期限切れになります。- オリジン承認はネットワークポリシーを上書きしません。
networkでもサイトとそのリダイレクトドメインを許可してください。
まとめによると、コンピューター使用機能は「API、およびCodex、Pro 500およびEnterprise向けのChatGPT Workを通じて」提供されます。同じモデルを使用したUI駆動テストについては、APIテストのためのGPT-6 Astraコンピューター使用をご覧ください。
エージェントにはUIではなくAPIを提供してください
ブラウザはAPIを持たないソフトウェアのフォールバックです。システムがあなたのものである場合、MCPサーバーでラップしてください。これにより、型付きツール、オリジンプロンプトなし、確認可能な結果が得られます。コンピューター使用と構造化APIの比較ではトレードオフについて説明されており、Apidog MCPサーバーは、API仕様をラッパーを作成するコーディングアシスタントに供給します。
コードを書く前にApidogでAgents APIをテストする
APIはベータ版であるため、コードを記述する前に、Apidogで各呼び出しの形状を手動で確認してください。

OPENAI_API_KEY、VAULT_ID、SESSION_IDを使用してApidog環境を作成します。すべてのリクエストでBearer {{OPENAI_API_KEY}}とOpenAI-Beta: agents=v1を送信します。streamなしでセッション作成リクエストを送信し、2xxステータスと空でないidをアサートし、idをSESSION_IDに抽出します。- SSEリクエストとしてイベントストリームを開き、2番目のリクエストから入力を送信し、イベントが到着するのを確認します。
- 承認およびキャンセルペイロードをリクエストとして保存し、各
required_actionsケースをリプレイします。 - それらをテストシナリオに連結し、Apidog CLIを使用してCIで実行します。
AIエージェントAPIテストガイドには、非決定的な出力のアサーションパターンがあります。Apidogをダウンロードして続けてください。
よくある質問
OpenAI Agents APIは無料ですか? プラットフォーム料金はかかりませんが、モデルトークン、ツール呼び出し、ホスト型コンテナの時間に対して料金が発生します。
Agents APIはどのモデルで動作しますか? ドキュメントの例では、すべてのコンピューター使用例を含め、gpt-6-astraを使用しています。他のサポートされているモデルはリストされていないため、まずご自身のモデルでテストしてください。
Agents APIはZero Data Retentionをサポートしていますか? いいえ。米国のみのデータレジデンシーをサポートしており、セルフホスト型サンドボックスを使用してもZDRの対象ではありません。
Agents SDKまたはResponses APIとはどう異なりますか? SDKはアプリ内でループを実行し、Responses APIはループを構築するモデル呼び出しです。詳細な比較をご覧ください。
まずは読み取り専用セッションから始める
まずは読み取り専用のセッションから始め、MCPサーバーを1つ追加し、次にデフォルトで拒否する承認ハンドラーの背後にコンピューター使用機能を追加します。ChatGPTが代わりに独自のサーバーからのイベントに反応すべき場合は、MCPイベントがその対応する部分です。
