本文にスキップ
AI News HubLIVE
サイト内リライト6 分で読了

自律エージェントのためのサンドボックスインフラを構築しました

記事の要約

NeoSigmaは、自律エージェントに安全で隔離された完全な実行環境を提供するサンドボックスインフラを構築しました。エージェントは実際の開発環境と同様に作業でき、すべてのアクションは制御され、再現可能で、使い捨て可能です。

ソースHacker News AI著者: AdityaBilawar
自律エージェントのためのサンドボックスインフラを構築しました
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

エージェントの能力は、安全に行動できる環境に依存します。自律的に動作するためには、エージェントが自身の作業を検証する方法が必要です。エージェントは豊富なアクション空間と完璧な報酬信号を持つことができますが、実際の実行環境がなければ、それらの能力はほとんど理論上のものに留まります。モデルがより有能になるにつれて、データベースの変更、任意のコードの実行、インフラのデプロイ、プロダクションAPIとの連携など、より重要なタスクを任されるようになります。完全なランタイムワークスペースがあれば、エージェントは自身の作業を検証し、成功するまで反復できます。

課題は、開発者のローカル環境と見分けがつかないワークスペースを構築しつつ、エージェントが行うすべてのアクションの結果を安全に隔離することです。サンドボックスは隔離された実行環境を提供し、エージェントはコードの実行、サービスとの連携、障害からの復旧を安全に行えます。適切に設計されたサンドボックスはエージェントに本物の遊び場を提供し、すべてのアクションが隔離され、再現可能で、使い捨て可能であることを保証します。

優れた実行環境は以下のコア特性を備えるべきです:制御プレーン——最小限のレイテンシで実行準備を維持すること。実行プレーン——シェルではなく実際のマシンであること。セキュリティとネットワークプレーン——能力を制限せずに隔離すること。データプレーン——プロダクション規模での決定論的な状態。すべての設計判断は、最終的にこれらのコア原則に沿ったパレートフロンティアの最適化を目指します。

本稿では、エージェントが実行、探索、経験から学習するワークスペースを支えるコアインフラについて説明します。実際のファイルシステム、Docker、ネットワーキング、代表的なデータ、プロダクションツールなど、実際の環境と同じ機能をワークスペースに提供しながら、各実行を隔離、再現可能、使い捨て可能にする方法について議論します。

制御プレーン エージェントはインタラクティブなシステムであり、実行環境の準備に費やす1秒はユーザーの待機時間です。マイクロVMの起動、ストレージのプロビジョニング、リポジトリのクローン、サービスの初期化、ツールのロード、ヘルスチェックの実行は、リクエストのクリティカルパスを簡単に支配します。すべてのインタラクションでサンドボックスを一から作成する必要がある場合、最も有能なモデルでもすぐに鈍く感じられます。明白な解決策は、サンドボックスをオンデマンドで作成しないことです。制御プレーンは実行環境のライフサイクルを調整し、最小限のレイテンシで適切なサンドボックスがプロビジョニングされ、初期化され、エージェントに割り当てられるようにします。また、すぐに作業を受け入れられる事前プロビジョニングされた実行環境のプールを維持します。スケジューラはリクエストごとに新しいサンドボックスを起動するのではなく、既存のウォームサンドボックスにエージェントをアタッチしようとします。コールドスタートは、ウォームプールが枯渇したとき、またはワークロードにまだ利用可能でないリソースや構成が必要な場合にのみ発生します。ウォームサンドボックスは単に実行中の仮想マシン以上のものです。プールに入るときには、オペレーティングシステムが起動し、Dockerが動作し、リポジトリがクローンされ、依存関係がインストールされ、エージェントハーネスランタイムが初期化され、サポートサービス(MCPサーバーを含む)がすでに利用可能です。高価な初期化作業が既に完了しているため、エージェントから見ると実行はほぼ即座に開始されます。プールの維持は、プロビジョニングの問題というよりもスケジューリングの問題です。ウォームサンドボックスが少なすぎるとコールドスタートレイテンシが増加し、多すぎるとアイドル容量にコンピューティングを浪費します。スケジューラは継続的に需要を予測し、事前に新しいサンドボックスをプロビジョニングし、LRUスタイルのエビクションポリシーで未使用の容量を回収します。最適なプールサイズは、ワークロードパターン、リポジトリ特性、依存関係グラフ、ユーザー行動、リソース要件に依存します。最大のレイテンシ改善は、プロビジョニングの各ステップを高速化することではなく、不要なプロビジョニング作業を完全に回避することから生まれます。最も効果的な最適化の1つは、意図予測です。ユーザーインタラクションはリクエストが送信される前に始まるため、制御プレーンはユーザーがプロンプトを作成している間にサンドボックスの準備を開始できます。初期化をユーザーの思考時間と重ねることで、多くの潜在的なコールドスタートが単なるアタッチメントになり、実行環境自体を変更することなく知覚レイテンシを低減します。ウォームサンドボックスが利用できない場合でも、フォールバックパスは決定論的です。ベースイメージはバージョン管理されたスナップショットから復元され、ワークロード固有のCPU、メモリ、ストレージ割り当てが行われ、初期化、ヘルスチェックが実行された後、エージェントに引き渡されます。高速パスとフォールバックパスは同等の実行環境を生成し、リクエスト到着前に完了した作業量のみが異なります。

実行プレーン サンドボックスの低レイテンシは、その環境がエージェントの最終的なターゲット環境と同様に動作する場合にのみ価値があります。サービスを省略したり、ファイルシステムを簡略化したり、プロダクションツールをモックに置き換えた実行環境は、プロビジョニングは速いかもしれませんが、根本的にエージェントの動作を変えてしまい、有用ではありません。人工的な環境での成功軌跡は、実際のインフラに転送されるとしばしば失敗します。そのため、私たちの目標はミニマリズムではなく忠実度です。各サンドボックスは開発者のワークステーションに可能な限り近づけるように設計されています。エージェントは、書き込み可能なファイルシステム、クローンされたリポジトリ、プロジェクト設定、開発ツール、Docker、MCPサーバー、本番開発時に遭遇するのと同じサポートサービスを含む完全な環境内で動作します。目的は単純です:サンドボックス内でタスクが成功した場合、顧客の実際の環境で実行しても成功するはずです。この哲学の結果の1つは、コンテナ化されたワークロードを第一級市民として扱うことです。現代のソフトウェア開発は、ホストマシン上で実行される単一のプロセスで構成されることはめったにありません。アプリケーションは、データベース、キャッシュ、メッセージキュー、バックグラウンドワーカーなどのサービスに依存し、これらは通常Docker Composeや同様のツールを通じてオーケストレーションされます。これらのワークフローをサポートするには、Docker CLIだけでなく、サンドボックス内部で機能するDockerデーモンが必要です。エージェントは変更が機能すべきかどうかを推論するのではなく、変更したアプリケーションをビルドして実行することで、その動作を直接検証できます。このレベルの忠実度を提供することは、必然的に実行面を拡大します。ネストされたコンテナの実行、Dockerデーモンの公開、任意の開発ツールのサポートは、すべて追加のセキュリティ考慮事項を導入します。これらの機能を制限する代わりに、セキュリティアーキテクチャを通じて隔離します。目標はエージェントの能力を低下させることではなく、それらの能力が安全に隔離された状態を保つことを確実にすることです。最終的に、実行プレーンは評価とデプロイの間のギャップをなくすために存在します。エージェントは、ソフトウェアが最終的に実行される環境と同じ環境内で開発、テスト、デバッグすべきです。サンドボックスが現実をより忠実に模倣すればするほど、エージェントはより信頼性が高まります。

セキュリティとネットワークプレーン 実行プレーンは意図的にエージェントに広範な能力を与えています。任意のコードの実行、Dockerとの連携、リポジトリの変更、代表的なデータへのアクセス、外部サービスとの通信が可能です。これらの能力がエージェントを有用にしますが、同時にサンドボックスセキュリティを従来のアプリケーションセキュリティとは根本的に異なるものにします。目標は実行を防ぐことではなく、実行が完全に隔離されることを確実にすることです。単一のセキュリティ境界では十分ではありません。サンドボックスは、信頼されていないモデル生成コードを実行しながら、顧客のインフラや資格情報と同時に連携します。権限昇格、秘密の漏洩、横方向の移動、データの持ち出しから保護するには、単一の境界ではなく、複数の独立した分離層が必要です。最も安全な秘密は、エージェントが決してアクセスできない秘密です。この原則は、資格情報アーキテクチャ全体を形成します。実行環境に公開された資格情報——環境変数、マウントされたファイル、プロセスメモリを介して——は、攻撃者がプロンプトインジェクションやモデル操作を通じてエージェントを制御した場合、最終的に漏洩する可能性があります。短期間の資格情報は露出を減らしますが、根本的なリスクを排除するわけではありません。エージェントが秘密を読み取れるなら、それを漏洩できます。代わりに、資格情報はサンドボックスの外部に完全に配置する必要があります。認証を必要とするリクエストは、資格情報注入プロキシを介してルーティングされ、リクエストを転送する直前に適切な資格情報を添付します。エージェントは通常のネットワークリクエストを発行し、基礎となる秘密を決して観察せず、プロキシが資格情報管理を担当する唯一のコンポーネントになります。秘密は実行環境の一部になることはなく、漏洩攻撃のクラス全体を排除します。さらに、未承認のホストを狙ったプロンプトインジェクションリクエストは、厳格な出口許可リストにより通過できません。サンドボックスを保護するには、双方向のトラフィックを制御する必要があります。インバウンドトラフィックは必要なサービスに厳密に制限され、アウトバウンドトラフィックは許可リストで制御され、承認された外部エンドポイントのみにアクセスを許可します。この多層アーキテクチャにより、サンドボックスが侵害された場合でも、攻撃者が簡単に横方向に移動したりデータを漏洩したりすることを防ぎます。

データプレーン 各実行は既知の状態から開始され、各アクションは回復可能でなければなりません。同一の入力は同一の環境を生成し、障害のデバッグ、評価の再現、成功軌跡の再利用を可能にします。データプレーンはサンドボックスの永続状態を管理し、スナップショットの一貫性と環境の再現性を保証します。バージョン管理されたイメージと状態スナップショットにより、サンドボックスを以前の任意の時点にロールバックでき、デバッグと反復に不可欠です。

要点と分析を開く

記事インテリジェンス

エンジニア中級

要点

  • サンドボックスは制御プレーン、実行プレーン、セキュリティ/ネットワークプレーン、データプレーンの4つのコアプレーンを備えています。
  • ウォームプールと意図予測により起動レイテンシを最小化し、エージェントはほぼ即座に作業を開始できます。
  • 実行環境はファイルシステム、Docker、ネットワーキング、データベース、完全な開発ツールを備えた実際のワークステーションを忠実に再現します。
  • シークレットレスのサンドボックス設計と厳格なネットワーク分離により、エージェントのアクションは安全かつ隔離された状態を保ちます。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。