OpenAI Responses API コンピュータ環境の更新

OpenAIはResponses APIにコンピュータ環境を統合し、AIエージェントがテキスト生成を超えて複雑なワークフローを実行できるようにしました。モデルにシェルツールとホストされたコンテナワークスペースを提供することで、プラットフォームはサービスの実行、APIからのデータ取得、スプレッドシートやレポートといった成果物の生成を、隔離された環境内で行えるようになりました。

シェルツールと実行ループ

シェルツールは、モデルがコマンドラインインターフェースを通じてコンピュータと対話できるようにし、grepcurlawk といった慣れ親しんだUnixユーティリティを利用できます。既存のコードインタープリタがPythonに限定されているのとは異なり、シェルツールはGo、Java、NodeJSサーバーの実行を可能にし、エージェントが実行できるタスクの範囲を大幅に拡大します。

Responses API を介したオーケストレーション

Responses API はモデルとホストされたツール間のオーケストレーターとして機能します。シェル実行を有効にするには、プロンプトでシェルツールの使用を明示し、モデルがシェルコマンド(具体的には GPT-5.2 以降)に対応している必要があります。

実行ループは以下の手順で進行します:

  1. モデルが1つ以上のシェルコマンドを提案する。
  2. Responses API がこれらのコマンドをコンテナランタイムに転送する。
  3. API が出力をほぼリアルタイムでモデルにストリーミングする。
  4. モデルが結果を検査し、フォローアップコマンドを発行するか最終回答を提供する。

効率性を保つため、Responses API は別々のコンテナセッションで複数コマンドの同時実行をサポートし、コマンドごとの出力上限を設定して大規模なターミナルログがコンテキストウィンドウを圧迫するのを防ぎます。

コンテキスト管理と圧縮

長時間実行されるエージェントループがコンテキストウィンドウを使い果たすのを防ぐため、OpenAI はネイティブ圧縮を導入しました。このシステムにより、モデルは過去の会話状態を分析し、重要な詳細を暗号化かつトークン効率の高い形で表現できます。

圧縮実装

圧縮は組み込みのサーバーサイド機能として、またはスタンドアロンの /compact エンドポイントを通じて利用できます。サーバーサイド圧縮は設定可能な閾値を使用して自動的にタイミングを管理し、コンテキスト上限に近いリクエストでも拒否せずに処理・圧縮できるようにします。このメカニズムは Codex の利用を通じて開発・洗練され、長時間のコーディングタスクにおける反復的ツール実行を支える圧縮を活用しています。

コンテナコンテキストとリソース管理

ホストされたコンテナはモデルの作業コンテキストとして機能し、データ操作や外部とのやり取りのための制御された環境を提供します。

ファイルシステムとデータベース

OpenAI はコンテナおよびファイル API を提供し、モデルが利用可能なデータをマッピングできるよう支援します。これにより、リソースをプロンプトに詰め込むのではなく、コンテナのファイルシステムにステージングするパターンが推奨されます。構造化データには SQLite の使用が推奨され、モデルはテーブル定義を受け取り、必要な行だけをクエリできるため、プロンプト全体でデータセットを走査するよりもスケーラビリティとコスト効率が向上します。

安全なネットワークアクセス

無制限のインターネットアクセスに伴うリスクを軽減するため、ホストされたコンテナはサイドカー型イグレスプロキシを使用します。この集中型ポリシーレイヤーは許可リストとアクセス制御を強制します。認証にはドメインスコープのシークレット注入がイグレスポイントで行われ、シークレットの生値はモデルが参照できるコンテキスト外に保持され、承認された宛先にのみ適用されます。

再利用可能なエージェントスキル

エージェントスキルは、開発者が繰り返し使用されるマルチステップパターンを再利用可能なビルディングブロックとしてパッケージ化できる仕組みです。これにより、モデルが毎回ワークフローを再発見する必要がなくなります。スキルは SKILL.md ファイル(メタデータと指示)と API 仕様などの補助リソースを含むフォルダバンドルで構成されます。

スキル統合ワークフロー

スキルが使用されると、Responses API は決定的なシーケンスに従います:

  1. スキルメタデータ(名前と説明)を取得する。
  2. スキルバンドルを取得し、コンテナにコピーして解凍する。
  3. スキルメタデータとコンテナパスでモデルコンテキストを更新する。

その後、モデルはシェルコマンドを用いてこれらのファイルを検出し、指示に従ってスクリプトを実行します。

Sources