- Vercelが開発した "Bash for Agents"
- 安全でサンドボックス化された bash 環境を必要とする AI エージェントのために設計された、TypeScript ベースの仮想 Bash 環境
- メモリ内仮想ファイルシステム(InMemoryFs) 上で動作し、実際のディスクにはアクセスできない サンドボックス実行環境
- デフォルトで ネットワークアクセスは遮断されており、必要に応じて
curl による 許可 URL ベースの安全なネットワークリクエストをサポート
- 提供されたファイルシステムにのみアクセス可能で、無限ループ・再帰実行防止機能を含む
- API の使用時は
exec() 単位で分離され、環境変数・関数・作業ディレクトリは呼び出し間で保持されない(ファイルシステム状態のみ永続化)
- 生成引数として、初期ファイル、環境変数、作業ディレクトリ、実行制限などを細かく設定可能
- Lazy ファイルロードをサポートし、必要な時点でのみファイル内容を同期/非同期関数で生成可能
- ユーザー定義コマンド(defineCommand) 機能により、TypeScript ベースのカスタムコマンドを追加可能
CommandContext を通じて fs, cwd, env, stdin, exec へのアクセスをサポート
- 4種類のファイルシステム実装を提供
- InMemoryFs: 純粋なメモリベース
- OverlayFs: 読み取りはディスク、書き込みはメモリ
- ReadWriteFs: 実際のディスクの読み書きが可能
- MountableFs: 複数のファイルシステムをパスごとにマウントし、統合ネームスペースを構成
- AI SDK 統合ツールとして
bash-tool をサポート
generateText() と組み合わせて、AI モデルが Bash コマンドを安全に実行できるよう設計
- Vercel Sandbox 互換 API を提供
Sandbox クラスにより @vercel/sandbox と同じインターフェースで使用可能
- 必要に応じて実際の VM ベースのサンドボックスへ移行しやすい
- CLI の
just-bash コマンドを提供
- OverlayFS ベースで実行後、すべての書き込み内容はメモリ上で破棄
--json オプションで プログラム的な結果出力をサポート
- 対話型シェルモード(
pnpm shell) を提供
- デフォルトでインターネットアクセスを許可し、
--no-network で遮断可能
- サポートするコマンド群
- ファイル操作、テキスト処理、データ処理、圧縮、ネットワークなど 標準的な Bash コマンドの大半を含む
jq, sqlite3, python3(Pyodide ベース) などのデータ処理コマンドも任意でサポート
- シェル機能として、パイプ、リダイレクト、条件分岐、ループ、関数、変数、グロブパターンなど Bash 構文の大半を実装
- 基本ディレクトリ構造は
/home/user, /bin, /usr/bin, /tmp など、Unix ライクな環境を提供
- ネットワークアクセス制御は URL・HTTP メソッドベースのホワイトリスト方式
dangerouslyAllowFullInternetAccess オプションで全面許可も可能
- Python および SQLite サポートは任意で有効化
- Pyodide ベースの Python、WASM ベースの SQLite(sql.js) により 完全なサンドボックス実行を保証
- 実行保護機能として、関数の深さ、コマンド数、ループ反復回数など 実行上限を設定可能
- Apache-2.0 ライセンス
まだコメントはありません。