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

どこまで任せるか

実行ルールを厳しくすれば、Agent が危ないことをしないと言えるでしょうか。言えません。 止まるものと止まらないものがあり、その境目は直感と合いません。

実行ルールは、Agent にどの操作まで許すかを決める設定です。 このページでは、それが何をどこまで止めるのかと、どこからが利用者の責任になるのかを説明します。設定の手順は実行ルールガイドにあります。

テナント全体の実行ルールより緩くはできない​

実行ルールは 2 段構えです。テナント全体で実行ルールを決め、プロジェクトはそれを受け継ぎます。

プロジェクトで選べるのは、テナント全体のルールと同じか、それより厳しいものだけです。緩くする方向には動かせません。両方に設定があるときは、厳しい方が効きます。

止め方は 2 通りある​

ひとつは基本ルールで決めるやり方です。製品に組み込まれた操作には、1 つずつ分類が付いています。読み取りか、書き込みか、壊すものかです。この分類は製品側で決まっていて、変えられません。

基本ルールは緩い順に Open・Guarded・Strict の 3 つ。利用者が選ぶのはこの 3 つからだけです。Open は分類された操作をそのまま通します。Guarded は、壊す側に分類された操作を止めます。Strict は、読み取りだけを通します。

もうひとつは禁止操作として名指しするやり方で、こちらが先に効きます。プロジェクトで足すときの指定は 3 通りあり、内部ツールを操作の種類から選ぶ、つなぐ先を指定する(外部サービスはツール名も、エージェント連携は接続先だけ)、ツール名のパターンで指定するのいずれかです(実行ルールガイド)。禁止操作は基本ルールより先に判定されるので、基本ルールが緩くても止まります。逆に、基本ルールで止まるものを禁止操作の側から通すことはできません。

禁止操作は 2 か所から積まれます。テナント全体で決めた分と、プロジェクトで足した分です。両方が効き、テナント全体で決めた分はプロジェクトからは外せません。プロジェクトで足した分は、プロジェクト側で外せます。

連携先は、禁止操作でしか止められない​

連携先の操作には分類が付きません。 外部サービスのツールの名前は接続先が自由に付けるので、get_ で始まるから読むだけ、とは限りません。名前から分類を決め続けることはできないため、分類を付ける前提そのものをやめました。エージェント連携は、頼んだ相手が何をするかを相手が決めるので、こちら側で分類できません。

分類が無いので、基本ルールでは判定できません。いちばん厳しい Strict にしても通ります。止めたいときは、禁止操作として名指ししてください。

連携先を追加するときは注意してください。 連携先には外部サービスとエージェント連携の 2 種類があり、どちらも基本ルールの判定を通りません。

禁止しても、別の操作で同じことができる​

禁止操作を書くときの注意です。禁止は、行為ではなく操作に当たります。だから止まるのは、指定した操作だけです。

たとえば、ファイルに書き込む操作を禁じたとします。それでも Agent は、コマンドを実行する操作を使って同じファイルを書き換えられます。コマンド実行は別の操作なので、禁止には当てはまりません。「書き込みを止めた」つもりでも、書き込みは起きます。

ブラウザを操作する操作も同じで、Web 経由で書き換えられます。行為を止めたいなら、その行為ができる操作をすべて挙げる必要があります。

禁止は人の確認では覆らない​

実行ルールで禁止した操作は、人が工程を進めても許可されません。

人の確認と実行ルールは、まったく別の仕組みです。確認は「この業務を次に進めるか」を決めます。実行ルールは「その操作をしてよいか」を決めます。人が進めると判断しても、禁止されている操作はできません。

ですから「厳しくしすぎたら確認で通せばよい」とは考えないでください。通せません。

効く範囲はプロジェクトの実行だけ​

設定した実行ルールが効くのは、プロジェクトの工程の実行と、サイクルの巡回です。同じ Agent をプロジェクトの外の会話で使っても効きません。プロジェクトの外で動くジョブにも効きません。

見ているのは、Agent がツールを呼ぶときです。記録を残すといった基盤自身の動きは対象ではありません。シェルや Skill の中のスクリプトが直接行う API 通信も、ツールの呼び出しではないので判定されません。 通信そのものを絞りたいときは、実行環境の通信設定や接続先の権限で行います。

なお、拒否されても実行そのものは止まりません。拒否された操作は記録に残り、Agent は拒否されたことを受け取って、許された範囲で続けられます。実行が「ルールにより実行不可」で終わるのは、基盤が実行そのものを止めたときです。

責任の境界​

実行ルールが判断するのは、その操作を許可するか禁止するかだけです。

その操作が業務として正しいか、出てきた結果が使えるかは、基盤の側では判断できません。基盤そのものが健全に動くことは提供側が担い、その上で組み立てた業務と、連携先で扱う業務データは利用者の責任になります。

だから「実行ルールを厳しくしたから安全」ではありません。何を任せるかを決めるのは利用者で、実行ルールはその決めごとを機械的に守らせる仕組みです。

次に読むもの​