OpenAI Cookbook のアプリケーション管理とWebhook 管理の例を参照してください。
プロビジョニングモードを選択します。
- アプリケーション管理: アプリケーションが E2B サンドボックスを直接作成し、接続します。
- Webhook 管理: OpenAI の Webhook を受けてサンドボックスを起動または再接続するハンドラーをデプロイします。
2 つのモードの比較については、サンドボックスのライフサイクルを参照してください。
事前準備
E2B_API_KEY を設定し、アプリケーションからのリクエストには OPENAI_API_KEY を使用します。OPENAI_EXECUTOR_API_KEY に環境キーを設定し、そのキーだけを CODEX_API_KEY としてサンドボックスに渡します。
Webhook 管理
OpenAI の Webhook を検証し、セッションごとに個別の E2B ワーカーをプロビジョニングするコントローラーを実装します。認証情報、エンドポイントの登録、署名の検証については、ハンドラーのデプロイと接続の手順に従ってください。
セッションとサンドボックスの対応関係を永続化します。接続リクエストを受けたら、一時停止中のワーカーを再開するか、削除済みのワーカーを新しいものに置き換えます。一時停止ではファイルが保持されますが、置き換えでは保持されません。コントローラーとワーカーの実行タイムアウトを設定し、コントローラーの使用を終了したら OpenAI の Webhook を削除してください。
アプリケーション管理
アプリケーションから E2B SDK または API を使用し、次の手順でサンドボックスを管理します。
- セルフホスト型セッションを作成し、その環境 ID を保存します。
- セッションの作業ディレクトリを備えた分離された E2B サンドボックスを作成し、その中に Codex CLI をインストールします。
- 環境 ID と環境キーを使用して、サンドボックス内でエグゼキューターを起動します。
- セッションの実行と継続の手順に従って入力を送信し、ターンの結果を確認します。
- 完了したら、セッションを削除し、E2B サンドボックスを停止します。
サンドボックスの有効期間は、エグゼキューターのコマンドのタイムアウトとは別に設定します。コマンドにタイムアウトを設定しなくても、有効期間が切れたサンドボックスの実行は継続されません。
参考資料
- E2B ドキュメントを参照
- E2B Python SDKを参照
- E2B TypeScript SDKを参照