メインコンテンツまでスキップ

サンドボックスと承認

二つの設定は、別々の仕事をしています。 サンドボックスはエージェントに何ができるを、 承認は何を先に訊かねばならないかを決めます。

サンドボックス

sandbox_mode = "workspace-write"
エージェントができること
read-onlyファイルを見る。変更はしない
workspace-write作業ディレクトリの中に書く
danger-full-accessあなたのアカウントにできること全部

読み取りは決して制限されません。 制限されるのは書き込みとネットワークだけなので、 read-only は「ディスク全体が見えて、一つも変えられない」という意味です。

書き込める根は作業ディレクトリです

workspace-write のもとでの「ワークスペース」とは、 その対話または実行が開いているディレクトリのことです。 プロジェクトでも、リポジトリでもなく、そのディレクトリです。

このページで最も重要な一文がこれです。 ホームディレクトリで開いた実行は、 .sshDocumentsLibrary に書けます。

これは仮定の話ではありません。 部門が存在する前に作られた定時タスクが ホームディレクトリを抱えたまま、そのやり方で四十二回走っていました。 毎回そのすべてに手が届く状態で、誰も訊かれず、何も言われませんでした。 新しい対話の既定を変えても、それには触れませんでした —— 既定は遡らないからです。

だから、実行が始まる瞬間に二つ目の検査があります。

バックグラウンド実行がどこで始められるか

実行が始められるのは、そのディレクトリがこの製品がすでに知っている場所のときです:

  • ワークスペースの中
  • ある部門のディレクトリの中
  • あなたが名指しで許可した場所

それ以外は保留され、Dispatch パネルのあなた待ちの下に このディレクトリを許可 ボタンつきで現れます。 ある場所を許可すると、それを待っていた実行がすべて解放されます。

訊くことが要点です:普段と違う場所で走らせるのは、たいていまさに望まれたことであり、 答えは拒否ではなく一つの問いです。

承認

approval_policy = "on-failure"
untrusted安全と分かっていないコマンドは毎回先に見せる
on-failureコマンドは無人で走り、もっと権限が要るときだけ訊かれる
never実行前に何も見せない

never何も保留されないことも意味します。承認を切った人は、言葉どおり 「止められたくない」と言ったのであり、それをもっと狭い意味だと決めつけるのは、 製品が自分の設定を上書きすることになります。

スクリプトを放しても構わないディレクトリに使ってください。

人がはまる組み合わせ

sandbox_mode = "danger-full-access"approval_policy = "never" の組み合わせは、 何も見せず何も訊かずに、あなたのマシンで任意のコマンドを走らせるエージェントです。 それが正解のディレクトリはあります。あなたのホームディレクトリはその一つではありません。

サンドボックスがしない二つのこと

  • モデルがあなたのファイルを読むのを止めません。 読み取りはどのモードでも制限されません。
  • 走らせたコマンドがそのあと何をするかは覆いません。 エージェントが起動したスクリプトは サンドボックスを継ぎますが、実行より長生きするサービスを起動した場合、それは継ぎません