strands-agents/box
Run AI agents in a sandbox that restricts what they can execute, read, write, and reach on the network. Box combines OS isolation with default-deny Dogwood policies and credential injection that keeps secrets outside the agent. Written in Rust. Supports macOS on Apple silicon, with Linux support planned.
Strands Box – それは何か
Strands Box は、厳密に制御された環境内で AI エージェントプログラムを実行できるオープンソースのサンドボックスエンジンです。サンドボックスはオペレーティングシステムレベルでエージェントを隔離し、エージェントが実行しようとするすべての操作(ファイル読み取り、プログラム起動、ネットワーク呼び出し、ツール呼び出し)にセマンティックポリシー(Dogwood ポリシー言語で記述)を適用します。
なぜ重要か
ローカルマシンで強力な LLM ベースのエージェントを実行することはリスクを伴う可能性があります。エージェントが誤って機密ファイルを読み取ったり変更したり、不要なプロセスを起動したり、外部 API を呼び出す際に資格情報を漏洩したりする可能性があります。Strands Box は、開発者がエージェントが実行できることを正確に宣言し、実行時にそれらのルールを強制する方法を提供します。エージェントの履歴に基づいて決定を下すこともできます(例:「機密ファイルを読んだ後、送信 HTTP リクエストをブロックする」)。
コア機能(README に記載の通り)
| 機能 | 説明 |
|---|---|
| ファイル / プログラム / ネットワーク制限 | 直接の OS レベルの許可は box.toml で定義されます。許可されていないものは、エージェントが認識する前にブロックされます。 |
| セマンティックおよび時間ポリシー | Dogwood ルール(permit / forbid)は、操作、その引数、以前のアクション、経過時間を検査できます。デフォルトでは、permit が一致しない限り、すべてが拒否されます。 |
| 統合ポリシーエンジン | 同じ Dogwood エンジンが 4 つの「ゲートウェイ」で使用されます:Strands Shell、Monty(Python)、送信 HTTP ゲートウェイ、MCP ブローカー。これらのいずれかを介して実行されたアクションは共有イベント履歴に記録され、クロスツールポリシーを可能にします。 |
| ツール呼び出しチェック | 送信ゲートウェイは HTTP メソッド/パスを検証します。MCP ブローカーは設定されたツール呼び出しと引数を検証します。 |
| 資格情報の注入 | リクエストが許可されると、ゲートウェイは API キーや AWS SigV4 署名を追加できますが、生のシークレットをエージェントに公開しません。 |
| 決定テレメトリ | すべてのポリシー決定は、監査またはデバッグのために OTLP 互換の JSON 行(records.jsonl)に記録されます。 |
| プラットフォームサポート | 現在、Apple silicon を搭載した macOS 15+ でローカルに実行されます。 |
仕組み – クイックフロー
- エージェントは、
box.tomlにリストされた許可のみを持つ OS サンドボックス内で実行されます。 - エージェントがファイルを読み取ったり、プログラムを起動したり、ネットワークリクエストを行いたい場合、Box ゲートウェイ(Shell、Monty、egress、MCP)のいずれかと通信します。
- ゲートウェイはリクエストを Dogwood Local Engine に転送し、エンジンは
policy.dwルールをリクエストとイベント履歴に対して評価します。 - エンジンは 許可 または 拒否 を返します。許可された場合、ゲートウェイは操作を実行します(例:独自のサンドボックスでプログラムを実行、注入された資格情報で HTTP リクエストを転送)。拒否された場合、操作はブロックされ、決定レコードが書き込まれます。
- すべてのイベントは共有履歴に保存されるため、後のルールは以前のアクションに依存できます。
はじめに(README より)
- 前提条件 – Apple silicon を搭載した macOS 15+、Node 22.21+(Homebrew 経由)、および Amazon Bedrock(us-west-2)上の Claude Opus 5 へのアクセス。
- インストール – 提供されている
download.shスクリプトを実行します。チェックサムを検証し、バイナリを./box-coreに抽出します。 - 実行 –
./box-core/box --versionを実行して確認し、docs/user/getting-started.mdガイドに従ってbox.tomlとpolicy.dwを作成し、エージェントを起動します。 - 自分でビルド – リポジトリをクローンし、Cargo を使用します(
cargo build --release -p strands-box -p strands-box-containment)。ヘルパータスクはjustで利用できます(build、test、lint など)。
誰が使うのか?
- LLM エージェント開発者 – 自律的なコード生成エージェントの安全な実行環境が必要な方。
- セキュリティ重視のチーム – 監査ログと、エージェントが触れるものに対するきめ細かい制御を求めるチーム。
- 研究者 – ツールを使用するエージェントを実験し、複数のインタープリターにわたって決定的なポリシー強制を必要とする研究者。
ライセンス
Apache 2.0 – 商用または学術目的で無料で使用できます。
上記の詳細はすべてリポジトリの README から直接取得したものです。追加の機能は推測されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト