請參閱 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,避免沙盒在智慧體工作時停止,並設定存續時間上限,以免執行中斷後,運算資源仍無限期地持續運作。
若會經常使用,請將 Codex 和 ripgrep 納入 Daytona 快照,讓沙盒能更快建立連線。
2. 執行工作階段
Daytona 執行器連線後,使用執行與接續工作階段中的 HTTP 範例傳送輸入,並以串流方式接收結果。完成後,請刪除工作階段,並另行停止供應商的沙盒。
提交輸入前,請先啟動沙盒。回合會等待環境連線,工作階段則會透過事件串流中的 agent.session.environment.connected 回報連線。
使用 agent.session.turn.completed 判斷回合是否成功。失敗或取消的回合之後也可能出現 agent.session.idle,因此請勿將工作階段閒置視為回合成功的證明。在事件發生後立即擷取工作階段,可能會在短時間內傳回先前的狀態。