---
title: Sandbox
description: Linux でしか動かないプログラムのための、Session 専用の Linux マシン。
sidebar:
  label: 概要
---

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

![Session の会話: Agent が Sandbox「workbench」でリポジトリを clone してテストを実行し、142 件すべてが成功したと報告しています](/blume-assets/content/docs/_images/ja/session-sandbox-call.webp)

## まず Function を検討する

Sandbox は Subako で最も汎用的な Tool ですが、その汎用性には代償があります。Agent に任せたい作業のほとんどは、[Function](/ja/functions) のほうがうまくこなせます。

| | 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](/ja/functions/runtime#session-volume)。すべての Function、アプリ、コンソールと共有されます | `/workspace`。Sandbox が一時停止すると Archive に保存されます |

Sandbox を付与する前に、その作業が次のどれかに当てはまらないか確認してください。どれも [subako-function-examples](/ja/functions/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](/ja/functions/calling-apis) |

## 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 の Grant: workbench、Release 2026、インターネットに接続、許可](/blume-assets/content/docs/_images/ja/agent-editor-sandbox.webp)

| 設定 | |
| --- | --- |
| **名前** | モデルが呼び出すときの名前で、`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](/ja/reference/agent-config#sandboxes) では次のように書きます。

```json
{
  "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 が廃止された後は削除もできます。

![Sandbox タブ: workbench、Platform 2026、インターネットに接続可、実行中](/blume-assets/content/docs/_images/ja/session-sandboxes.webp)

Archive には、削除するまで Storage 料金がかかります。詳しくは [Plan と使用量](/ja/console/plan-and-usage#課金の対象) を参照してください。
