> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kanaeru.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# サンドボックスと同時実行数

> エージェントマネージャーがエージェントをワークスペース内に閉じ込める仕組みと、同時に実行する数の調整方法。

コーディングエージェントは、あなたのマシン上でコマンドを実行します。エージェントマネージャーは、各エージェントを必要なファイルだけに制限し、セッション同士を分離します。

## 標準のサンドボックス

デフォルトでは、すべてのランタイムが **standard** サンドボックスポリシーの下で実行されます。このポリシーは次のように動作します。

* **書き込みを制限します。** 書き込めるのは、セッションに割り当てられたワークスペース、セッションごとの専用の状態ディレクトリと一時ディレクトリ、そしてそのセッションのランタイムが宣言した認証情報ストアだけです。macOS では、ホームディレクトリのそれ以外の場所、他のユーザーのファイル、共有の場所は読み取りもできません。Linux ではそれ以外のファイルシステムは読み取れますが、書き込みはできません。
* **許可します。** エージェントが必要とするツールのディレクトリへの読み取り専用アクセスです。OS の認証情報ストアへの包括的なアクセスはありません。macOS のキーチェーンは、マシンの共有ログインがそこに保存されている場合にのみセッションに開放されます。
* **ネットワークは制限しません。** エージェントはパッケージのインストールや API の呼び出しのためにインターネットにアクセスでき、ローカルサーバーを起動してローカルポートに接続することもできます。

マシンがポリシーを適用できない場合、ランタイムは起動しません。サンドボックスなしの実行にフォールバックすることはありません。

## サンドボックスの適用場所

| マシン | 適用方法 |
| - | - |
| macOS | macOS のサンドボックスである Seatbelt |
| 直接インストールした Linux と WSL | bubblewrap（`/usr/bin/bwrap`）。これがないとインストーラーは続行しません。専用の VM など、ホストがすでに分離されている場合は、`KANAERU_RUNTIME_EXTERNALLY_ISOLATED=1` を設定すると bubblewrap なしで実行できます |
| Docker Engine でのインストールとクラウドマシン | コンテナまたはクラウドプロバイダーによる分離に加えて、コンテナ内の bubblewrap |
| Windows | 組み込みのサンドボックスはありません。分離されたホストで `KANAERU_RUNTIME_EXTERNALLY_ISOLATED=1` を設定するか、`KANAERU_SANDBOX_POLICY=permissive` を設定した場合にのみエージェントが起動します |

macOS でも `KANAERU_RUNTIME_EXTERNALLY_ISOLATED=1` を設定すると Seatbelt がオフになるため、他の方法で分離されたホストでのみ設定してください。

```mermaid theme={null}
%%{init: {"theme":"base","themeVariables":{"fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif","fontSize":"16px","primaryColor":"#FFF1E0","primaryBorderColor":"#A94604","primaryTextColor":"#3B1A02","secondaryColor":"#FFE4C2","tertiaryColor":"#FFF8F0","lineColor":"#A94604","clusterBkg":"#FFF8F0","clusterBorder":"#E8B98A","edgeLabelBackground":"#FFFFFF","git0":"#A94604","git1":"#FF9F0A","git2":"#D97706","git3":"#B45309","gitBranchLabel0":"#FFFFFF","gitBranchLabel1":"#3B1A02","gitBranchLabel2":"#FFFFFF","commitLabelColor":"#3B1A02","commitLabelBackground":"#FFF1E0"}}}%%
flowchart TD
  A[ランタイムの起動] --> P{ポリシーは permissive?}
  P -- はい --> U[ファイルシステムのサンドボックスなしで実行]
  P -- いいえ --> C{Docker でのインストールまたはクラウドマシン?}
  C -- はい --> W[bubblewrap サンドボックス]
  C -- いいえ --> D{ホストは分離済みと宣言?}
  D -- はい --> E[ホストの分離に依存]
  D -- いいえ --> L{Linux または WSL?}
  L -- はい --> W
  L -- いいえ --> B{macOS?}
  B -- はい --> S[Seatbelt サンドボックス]
  B -- いいえ --> X[ランタイムは起動しない]
```

## 設定

マシン上のエージェントマネージャーの環境変数で設定します。

| 変数 | 値 | 効果 |
| - | - | - |
| `KANAERU_SANDBOX_POLICY` | `standard`（デフォルト）、`permissive` | `permissive` にするとファイルシステムのサンドボックスがオフになります。Kanaeru 専用のマシンでのみ使ってください。すべてのランタイムに適用されます |
| `KANAERU_RUNTIME_EXTERNALLY_ISOLATED` | `1` | 専用の VM など、ホストがすでに分離されていることを宣言し、組み込みのサンドボックスなしでランタイムを起動します。クラウドマシンと Docker でのインストールには影響しません |
| `KANAERU_SANDBOX_DOCKER` | `allow`（デフォルト）、`deny` | セッションがホストの Docker デーモンを使えるかどうか。すべてのランタイムに適用されます。`deny` が適用されるのは macOS のサンドボックスだけです |
| `KANAERU_CLAUDE_PERMISSION_MODE` | `confirm` | Claude Code のみ。Claude Code にツールを自由に実行させるのではなく、ツールを実行する前に人に確認します。他のランタイムには同等の設定はありません |

<Warning>
  ホストの Docker デーモンへのアクセスは、実質的にホストへのアクセスと同じです。それが問題になるマシンでは `KANAERU_SANDBOX_DOCKER=deny` を設定してください。
</Warning>

### Docker を拒否した状態でアプリを実行する

`deny` がブロックするのは Docker CLI と Docker デーモンだけです。エージェントは引き続き、`npm run dev` や Python サーバーなど、サンドボックス内の通常のプロセスとしてアプリを実行、テスト、配信し、ローカルポートで接続できます。ローカルデータベースのデータディレクトリなど、アプリが書き込むものはワークスペース内に置いてください。アプリが Docker Compose でしか動かない場合は、そのマシン（できれば Kanaeru 専用のマシン）では Docker を `allow` のままにしてください。

## 同時実行数

エージェントマネージャーは、マシンのメモリと CPU から同時に実行するエージェントの数を決めます。目安は次のとおりです。

* 小さなマシンでは 2〜4
* 4 コア・8 GB では 8
* 8 コア・16 GB では 12
* 最大 15

CPU やメモリに負荷がかかっているときは、新しい作業の受け付けも停止します。上限を変更するには次の変数を使います。

| 変数 | 効果 |
| - | - |
| `KANAERU_CAPACITY_PRESET` | `conservative`（4）、`balanced`（8）、`performance`（15） |
| `KANAERU_MAX_CONCURRENT` | 1〜100 の正確な上限。無効な値の場合は自動のサイズに戻ります |
| `KANAERU_MAX_CPU_LOAD_RATIO` | CPU の負荷率がこの値を超えると作業の受け付けを停止します（デフォルト `0.95`） |
| `KANAERU_MAX_RUNTIME_RSS_GIB` | 実行中のエージェントのメモリ上限（デフォルトは RAM の 75%） |

ターンの合間でアイドル状態のエージェントは、上限の数に含まれません。開始できない作業は最大 1 分間再試行されます。それまでに空きが出なければセッションは開始されず、Kana がすべてのマシンがビジーだったことを伝えるので、もう一度メッセージを送ってください。


## Related topics

- [マシンを接続する](/ja/machines/connect-a-machine.md)
- [他のツールとの比較](/ja/concepts/comparison.md)
- [セッションプラグイン](/ja/machines/session-plugins.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.