For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

Daytona

Daytona のサンドボックスで Agents API セッションを実行します。

OpenAI Cookbook のアプリケーション管理とWebhook 管理の実装例を参照してください。

エグゼキューターのセットアップ手順と接続要件については、セルフホスト型サンドボックスを参照してください。

プロビジョニング方式を選びます。

  • アプリケーション管理: このガイドに沿って、アプリケーションからサンドボックスを起動・停止します。
  • Webhook 管理: OpenAI からの Webhook を受けてサンドボックスを起動または再接続するハンドラーをデプロイします。

両方式の違いについては、サンドボックスのライフサイクルを参照してください。

Webhook 管理

コントローラーで OpenAI から届いた Webhook を検証し、プロビジョニング処理をキューに追加します。コントローラーは、各セッションのエグゼキューターを実行するワーカー用サンドボックスとは別に配置してください。ハンドラーのデプロイと接続の手順に従って、エンドポイントと署名用シークレットを登録します。

environment_connection リクエストを受けたら、ワーカーを起動または再接続します。セッションが失敗した場合は、ワーカーを解放してください。ワーカーとコントローラーのタイムアウトはそれぞれ明示的に設定します。アイドル時にコンピューティングリソースを停止するには、新しい処理の受付とリソースの停止を調整するポリシーが必要です。詳しくはライフサイクルの動作を参照してください。

アプリケーション管理

事前準備

OpenAI プロジェクトの API キー、Daytona の API キー、Codex CLI パッケージを用意してください。

DAYTONA_API_KEY を設定し、アプリケーションからのリクエストには OPENAI_API_KEY を使用します。OPENAI_EXECUTOR_API_KEY には環境キーを設定し、サンドボックスにはそのキーだけを CODEX_API_KEY として渡してください。

1. Daytona 環境のセットアップ

セルフホスト型セッションを作成し、その環境 ID を保存します。Daytona SDK または API を使い、設定した作業ディレクトリを指定して、隔離されたサンドボックスを作成します。サンドボックスに Codex CLI をインストールしてから、その環境 ID と環境キーを使ってエグゼキューターを起動します。

エグゼキューターは OpenAI へのアウトバウンド接続を長時間維持しますが、Daytona はアイドル状態の判定時にこの接続を検知しません。エージェントの作業中にサンドボックスが停止しないよう、auto_stop_interval=0 を設定してください。また、実行が中断された後もコンピューティングリソースが稼働し続けることを防ぐため、サンドボックスの稼働時間に上限を設けてください。

繰り返し利用する場合は、Daytona のスナップショットに Codex と ripgrep を含めておくと、サンドボックスが接続するまでの時間を短縮できます。

2. セッションの実行

Daytona のエグゼキューターが接続したら、セッションの実行と継続にある HTTP の例に沿って入力を送信し、結果をストリームで受け取ります。作業が終わったら、セッションを削除し、プロバイダー側のサンドボックスも別途停止してください。

入力を送信する前にサンドボックスを起動してください。ターンは環境が接続されるまで待機します。接続が確立すると、セッションはイベントストリーム上で agent.session.environment.connected を通知します。

ターンが成功したかどうかは agent.session.turn.completed で確認してください。ターンが失敗またはキャンセルされた後にも agent.session.idle が通知されることがあるため、セッションがアイドル状態になったことだけでターンが成功したと判断しないでください。イベントの直後にセッション情報を取得すると、一時的に以前のステータスが返ることがあります。

参考資料