テクニカルガイド

エージェント用のコード実行サンドボックス

コード実行サンドボックスは、AI エージェントがホスト マシンに損害を与えたり、見るべきでないデータにアクセスしたり、無制限のリソースを使用したりすることなく、作成したコードを実行できる隔離された環境です。

  • 4 分で読めます
  • 最終更新日
このページでは4 分で読めます
  1. 概要
  2. ディープダイブ
  3. 戦略的影響
  4. エージェント向けのコード実行サンドボックスの将来
  5. 現実世界の実装
  6. リスクとガードレール
  7. 実装ロードマップ
  8. 探検を続けましょう
  9. よくある質問

概要

これが重要なのは、コードを実行できるエージェントの方がはるかに有能であるため (計算、ファイルの分析、独自の作業のテストが可能)、モデルで記述されたコードはデフォルトでは信頼されず、バグが多く、無駄が多かったり、プロンプト インジェクションによって操作されたりする可能性があります。

ディープダイブ

エージェントがコードを生成するときは、何かがそれを実行する必要があります。そのコードを開発者のラップトップまたは運用サーバーで直接実行するのは危険です。コードにより、ファイルの削除、環境変数からの資格情報の読み取り、ソフトウェアのインストール、暗号通貨のマイニング、またはネットワーク接続のオープンが行われる可能性があります。サンドボックスは、コードとその他すべての間に境界を置きます。分離にはいくつかの層があり、さまざまなトレードオフがあります。標準コンテナ (Docker など) は、Linux 名前空間と cgroup を使用して、コードにプロセス、ファイル、ネットワークの独自のビューを与え、CPU とメモリを制限します。これらはすぐに起動しますが、すべてのコンテナがホストのカーネルを共有するため、カーネルの脆弱性によりコードが漏洩する可能性があります。 Google のオープンソース プロジェクトである gVisor は、システム コールをインターセプトするユーザー空間カーネルを追加し、信頼できないコードが実際のカーネルに触れる可能性を縮小します。 Firecracker などの MicroVM は、もともと AWS によって Lambda と Fargate 用に構築されたもので、各ワークロードに独自の軽量仮想マシンとカーネルを与えながら、ほんの数秒で起動します。 E2B などのエージェント向けのホスト型サンドボックス サービスは、この microVM アプローチに基づいて構築されています。最も軽いエンドでは、WebAssembly ランタイムと Pyodide などのツールを使用して、システムに直接アクセスすることなく、ブラウザーまたは Wasm サンドボックスで Python を実行できます。絶縁技術は設計の半分にすぎません。優れたサンドボックスは、ネットワークを制限し (多くの場合、ホワイトリストでデフォルトで拒否されます)、スクラッチ ディレクトリを除いてファイル システムを読み取り専用でマウントし、機密情報を環境から完全に排除し、時間、メモリ、プロセス数、およびディスクの制限を強制します。通常、それらは一時的なものであり、タスクごとに作成され、その後破棄されます。よくある誤解は、サンドボックスによってエージェントが安全になるというものです。コード自体による被害は制限されますが、エージェントが誤った回答を生成することは阻止されず、サンドボックスに渡されたツールや資格情報には、挿入された命令に応答して記述されたコードを含め、そこで実行されるあらゆるコードがアクセス可能になります。

戦略的影響

費用と予算

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

より明確な判決

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

品質管理

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

エージェント向けのコード実行サンドボックスの将来

コード実行は AI アシスタントやエージェントの標準機能になりつつあるため、サンドボックス化は各チームがゼロから構築するものではなく、合理的なデフォルトを備えたコモディティ サービスになる可能性があります。より高速な起動、スナップショットと再開、およびタスクごとに調整できるネットワークとファイル アクセスのより詳細なポリシーについては、継続的な取り組みが期待されます。より困難な未解決の問題は、分離ではなくポリシーです。つまり、エージェントがより長い自律的なアクションを実行する場合に、エージェントがどこに到達できるかを決定し、ユーザーに情報を提供し続けます。分離は、権限、ロギング、人間によるレビューと並んで、複数のレイヤーの中の 1 つのレイヤーに留まります。

現実世界の実装

データ分析アシスタントはアップロードされた CSV を受け取り、それをクリーンアップして傾向をプロットするためのパンダ コードを記述し、そのコードをセッション終了時に削除される使い捨てサンドボックスで実行します。

コーディング エージェントは、送信ネットワーク アクセスのないコンテナ内でリポジトリのテスト スイートを実行するため、悪意のある依存関係スクリプトがソース コードやシークレットを外部サーバーに送信できません。

教育プラットフォームでは、学生が AI 講師に Python サンプルの実行を依頼できます。各実行の上限は数秒の CPU と固定メモリ制限に制限されているため、偶発的な無限ループによってサービスが停止することはありません。

研究チームは、データセットの読み取り専用コピーと単一の書き込み可能な出力フォルダーを備えた microVM をエージェントに提供するため、エージェントは元のデータを変更または削除することなく結果を生成できます。

リスクとガードレール

  • 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

  • インフラストラクチャとメンテナンスのコストは過小評価されがちです。

  • システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

  1. 実装前にレイテンシ、品質、コストの目標を定義します。

  2. 現実的な負荷とデータ条件でのベンチマーク。

  3. エラー、ドリフト、ユーザーへの影響を計測器で監視します。

  4. スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Code Execution Sandboxes for Agents quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

クイズを開始する

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

よくある質問

エージェント用のコード実行サンドボックスとは何ですか?

コード実行サンドボックスは、AI エージェントがホスト マシンに損害を与えたり、見るべきでないデータにアクセスしたり、無制限のリソースを使用したりすることなく、作成したコードを実行できる隔離された環境です。これが重要なのは、コードを実行できるエージェントの方がはるかに有能であるため (計算、ファイルの分析、独自の作業のテストが可能)、モデルで記述されたコードはデフォルトでは信頼されず、バグが多く、無駄が多かったり、プロンプト インジェクションによって操作されたりする可能性があります。

AI エージェントによって作成されたコードがデフォルトで信頼できないものとして扱われるのはなぜですか?

このガイドでは、モデルで記述されたコードにはバグが含まれたり、過剰なリソースを消費したり、挿入された命令に従う可能性があるため、ホスト上で直接実行するのではなく、境界内で実行する必要があると説明されています。

microVM と比較した、標準コンテナーのセキュリティ上の主な弱点は何ですか?

コンテナは名前空間と cgroup を使用しますが、すべてホスト カーネルを共有するため、カーネルの脆弱性によりエスケープが可能になる可能性があります。 MicroVM は、各ワークロードに独自のカーネルを与えます。

gVisor は信頼できないコードによるリスクを軽減するために何を追加しますか?

Google の gVisor は、システム コールを処理するユーザー空間カーネルを実行し、実際のホスト カーネルの信頼できないコードが到達できる量を減らします。

Firecracker microVM は元々、どの種類のサービスを駆動するために AWS によって構築されましたか?

Firecracker は、多くの分離されたワークロードを迅速に開始する必要がある、Lambda や Fargate などの AWS サーバーレス ワークロード用に作成されました。

プロンプト インジェクションが可能な場合に、アウトバウンド ネットワーク アクセスの制限が最も重要なサンドボックス制御とみなされるのはなぜですか?

挿入された命令によってエージェントが悪意のあるコードを作成した場合、デフォルト拒否ネットワークがそのコードによるデータの漏洩を阻止します。