コンテンツにスキップ
Subako Docs
日本語
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

Sandbox

Linux でしか動かないプログラムのための、Session 専用の Linux マシン。

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

Session の会話: Agent が Sandbox「workbench」でリポジトリを clone してテストを実行し、142 件すべてが成功したと報告しています

まず 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 の Grant: workbench、Release 2026、インターネットに接続、許可

設定
名前 モデルが呼び出すときの名前で、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 が廃止された後は削除もできます。

Sandbox タブ: workbench、Platform 2026、インターネットに接続可、実行中

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

このページは役に立ちましたか?