AIエージェントの状態をコンテナに閉じ込めない — OpenAI Agents SDKに学ぶ再開可能な実行設計

長時間動くAIエージェントでは、実行コンテナが落ちた瞬間に仕事まで消える設計は危険です。OpenAIが更新したAgents SDKは、サンドボックスを単なる「隔離箱」ではなく、交換可能な計算資源として扱います。重要なのは、エージェントの状態をコンテナの外へ出し、別環境でも再開できる構造です。

サンドボックスと実行状態は別物です

OpenAIの公式発表では、更新版Agents SDKにファイル操作やシェル実行などを扱うハーネスと、ネイティブなサンドボックス実行が追加されました。

ここでいうハーネスは、モデルに作業を進めさせる制御層です。一方のサンドボックスは、コマンドやモデル生成コードを実行する計算環境です。この2つを分けると、認証情報をコード実行環境へ置かずに済み、コンテナを使い捨てやすくなります。

「落ちない」より「落ちても戻れる」

長時間タスクでは、コンテナの期限切れ、障害、再配置を完全には避けられません。OpenAIは、状態を外部化し、スナップショットと再水和(rehydration)によって新しいコンテナへ復元する設計を説明しています。元の環境が失われても、最後のチェックポイントから処理を続けられるという考え方です。

これは車載システムのフェイルオーバーにも似ています。特定のECUが絶対に故障しないことへ賭けるのではなく、必要な状態を保持し、代替系へ引き継げるようにします。AIエージェントでも、コンテナの寿命と仕事の寿命を同じにしないことが要点です。

Manifestは作業場所の契約書です

Agents SDKは、作業環境を記述するManifest抽象化も導入しました。入力ファイルのマウント、出力先、ストレージから持ち込むデータなどを定義し、ローカル試作から本番サンドボックスまで同じ形で扱います。

Manifestを「作業場所の契約書」と考えると分かりやすいです。モデルにホスト固有のパスを覚えさせるのではなく、入力はどこにあり、成果物をどこへ書くかを明示します。OpenAIの発表では、持ち込みのサンドボックスに加え、複数のサンドボックス事業者との組み込み連携も案内されています。

本番レビューで分けたい4項目

  • 制御:次に何を実行するか、途中状態をどこへ記録するか
  • 計算:コードをどの隔離環境で動かし、いつ破棄するか
  • データ:入力、成果物、チェックポイントをどこへ永続化するか
  • 秘密情報:モデル生成コードから認証情報へ到達できないか

ただし、SDKを使うだけで安全性や復旧性が自動的に保証されるわけではありません。ネットワーク制御、権限、保存先、復元試験は利用側の設計事項です。特に「スナップショットを取っている」と「実際に復元できる」は別なので、障害注入で確認する必要があります。

まとめ

長時間エージェントの信頼性は、高性能なモデルだけでは決まりません。

  • ハーネスと計算環境を分離する
  • 状態を使い捨てコンテナの外へ出す
  • Manifestで入出力の場所を固定する
  • 別コンテナからの再開を実際に試す

コンテナは作業員ではなく、交換できる作業台です。仕事の記憶まで作業台に置きっぱなしにしない設計が、長時間エージェントを実験から運用へ進めます。

公式ソース

※本記事の設計上の考察は、OpenAI公式発表を基にした筆者の整理です。