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

標準のサンドボックス

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

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

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

設定

マシン上のエージェントマネージャーの環境変数で設定します。
ホストの Docker デーモンへのアクセスは、実質的にホストへのアクセスと同じです。それが問題になるマシンでは KANAERU_SANDBOX_DOCKER=deny を設定してください。

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 やメモリに負荷がかかっているときは、新しい作業の受け付けも停止します。上限を変更するには次の変数を使います。 ターンの合間でアイドル状態のエージェントは、上限の数に含まれません。開始できない作業は最大 1 分間再試行されます。それまでに空きが出なければセッションは開始されず、Kana がすべてのマシンがビジーだったことを伝えるので、もう一度メッセージを送ってください。