Sandbox
Linux でしか動かないプログラムのための、Session 専用の Linux マシン。
Sandbox は、Session 専用の Linux マシンです。Agent には exec という Tool が 1 つ与えられ、そのマシンでシェルコマンドを実行できます。開発者がターミナルで作業するのと同じように、リポジトリを clone し、package をインストールし、ビルドしてテストを実行できます。

まず Function を検討する
Sandbox は Subako で最も汎用的な Tool ですが、その汎用性には代償があります。Agent に任せたい作業のほとんどは、Function のほうがうまくこなせます。
| Function | Sandbox | |
|---|---|---|
| 実行されるもの | 自分で書いてレビューしたコード。入力 Schema を通して呼び出されます | モデルが書いたあらゆるコマンド |
| 隔離 | 呼び出しごとに新しい隔離環境で動き、応答すると消えます | Session ごとに 1 台のマシンで、コマンドをまたいで保持されます |
| ネットワーク | 付与しない限り使えません。付与した場合も、指定した Host にしか接続できません | 無効にしない限り、インターネットに接続できます |
| Credential | Vault に保管され、外向きのリクエストに付けられます。コードもモデルも Credential を目にしません | マシンの中にあるものだけです。トークンはコマンドかファイルに書き込むしかなく、そこではモデルが読めてしまいます |
| Subako Cloud での価格 | 呼び出しの実行時間 1 秒あたり 0.01 SC (1 時間あたり $0.36) | マシンの実行時間 1 秒あたり 0.02777778 SC (1 時間あたり $1.00)。一時停止されるまでのアイドル状態の時間も含みます。これに Archive の Storage 料金が加わります |
| 起動 | 呼び出しの中ですぐに始まります | 最初に使うときに起動するか、Archive から復元します |
| ファイル | Session Volume。すべての Function、アプリ、コンソールと共有されます | /workspace。Sandbox が一時停止すると Archive に保存されます |
Sandbox を付与する前に、その作業が次のどれかに当てはまらないか確認してください。どれも subako-function-examples にある Function package で、Sandbox のようなリスクはありません。
| 目的 | 使う Function |
|---|---|
| モデルが書いた Python を実行する | python: CPython。Pure Python の package を使えます |
| ファイルに対してシェルスクリプトを実行する | bashkit: 約 145 個の組み込みコマンドを備えた bash |
| JavaScript を実行する | quickjs |
| Word、Excel、PowerPoint、PDF のファイルを読む | anydoc |
| PDF や PowerPoint の資料を作る | typst、pptx |
| HTML の表示を確認する | html |
| GitHub を読む | github |
| 自社の API を呼び出す | 自分で作る Package |
Sandbox が向いている作業
どの Function でも用意できない、本物の Linux のユーザーランドが必要な作業には Sandbox を使います。
- コードベースのビルドやテスト:
git clone、npm ci、pytest、コンパイラー。 - WebAssembly 向けにビルドされていない、ネイティブのプログラムや CLI の実行。
- ネイティブ拡張が必要な npm や PyPI の package のインストール。
- モデルがコードを書いては実行して直していく作業のうち、コマンド間でマシンの状態を引き継ぐ必要があるもの。
Sandbox と Function は、同じ Agent のバージョンにまとめて付与できます。ビルドとテストは Sandbox で行い、Credential が必要な呼び出しはすべて Function に任せる、という分担がおすすめです。こうすれば、トークンをマシンに入れる必要がまったくありません。
Sandbox を付与する
Agent のバージョンの編集画面で、Tool › Sandbox の Sandbox を追加 を選び、名前を付けます。

| 設定 | |
|---|---|
| 名前 | モデルが呼び出すときの名前で、sandbox__<name>__exec の形になります。 |
| Release | 起動する Platform image の系列で、これによってツールチェーンが固定されます。2026 の系列には、Python 3 と uv、Node.js と npm、git、curl、jq が入っています。 |
| ネットワーク | インターネット か インターネットなし を選びます。インターネットなしでも、Sandbox 自身のバックアップと Session の Skill には接続できます。 |
| 既定の Policy、Tool rule | exec を実行するか、承認を求めるか、拒否するかを決めます。承認を求める にすると、コマンドを実行するたびに人の判断が入ります。 |
Agent config では次のように書きます。
{
"sandboxes": [
{
"name": "workbench",
"environment": { "type": "platform", "release": "2026" },
"network": { "type": "unrestricted" },
"default_policy": "allow"
}
]
}
exec Tool
exec は 1 つのコマンドを sh -c で実行するので、パイプや && も使えます。
| 引数 | |
|---|---|
command |
実行するコマンドです。最大 8,192 文字です。 |
cwd |
コマンドを実行する場所です。既定は /workspace です。 |
env |
コマンドに渡す環境変数です。 |
stdin |
コマンドの標準入力に渡すテキストです。最大 1 MiB です。 |
timeout_secs |
タイムアウトの秒数です。既定は 300、最大 3,600 です。 |
結果として、終了コードと、stdout と stderr をそれぞれ最大 64 KiB まで返します。Session の Skill はスクリプトも含めて /skills/<name> に展開されるので、Agent がここで実行するスクリプトを Skill に同梱できます。
起動から廃止まで
Sandbox は最初の exec で起動します。5 分間アイドル状態が続くと 一時停止 し、/workspace が Archive に保存されてマシンが止まります。次のコマンドを実行すると、Archive から復元されます。一時停止したまま 5 時間たつと 廃止 され、残るのは Archive だけになります。その後にコマンドを実行すると、Archive から新しいマシンが起動します。
保持されるのは /workspace だけで、上限は圧縮後 256 MiB です。グローバルにインストールした package など、ほかの場所に置いたものは一時停止すると消えます。/workspace にインストールするか、必要になるたびにインストールし直してください。
Session の Sandbox タブには、各 Sandbox の状態と Archive が表示されます。Archive はダウンロードでき、Sandbox が廃止された後は削除もできます。

Archive には、削除するまで Storage 料金がかかります。詳しくは Plan と使用量 を参照してください。