標準のサンドボックス
デフォルトでは、すべてのランタイムが standard サンドボックスポリシーの下で実行されます。このポリシーは次のように動作します。- 書き込みを制限します。 書き込めるのは、セッションに割り当てられたワークスペース、セッションごとの専用の状態ディレクトリと一時ディレクトリ、そしてそのセッションのランタイムが宣言した認証情報ストアだけです。macOS では、ホームディレクトリのそれ以外の場所、他のユーザーのファイル、共有の場所は読み取りもできません。Linux ではそれ以外のファイルシステムは読み取れますが、書き込みはできません。
- 許可します。 エージェントが必要とするツールのディレクトリへの読み取り専用アクセスです。OS の認証情報ストアへの包括的なアクセスはありません。macOS のキーチェーンは、マシンの共有ログインがそこに保存されている場合にのみセッションに開放されます。
- ネットワークは制限しません。 エージェントはパッケージのインストールや API の呼び出しのためにインターネットにアクセスでき、ローカルサーバーを起動してローカルポートに接続することもできます。
サンドボックスの適用場所
macOS でも
KANAERU_RUNTIME_EXTERNALLY_ISOLATED=1 を設定すると Seatbelt がオフになるため、他の方法で分離されたホストでのみ設定してください。
設定
マシン上のエージェントマネージャーの環境変数で設定します。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
ターンの合間でアイドル状態のエージェントは、上限の数に含まれません。開始できない作業は最大 1 分間再試行されます。それまでに空きが出なければセッションは開始されず、Kana がすべてのマシンがビジーだったことを伝えるので、もう一度メッセージを送ってください。