実行権限と承認
対象読者: AIにツールの実行権限をどこまで与えるか決めたい方、承認フローを設計したい方
前提知識: ツール利用とは の基礎
ツールに与える実行権限は、AIエージェントの安全性を決める中心的な設計です。指示で禁止するのではなく、そもそもできないようにするのが基本になります。
最小権限の原則
その作業に必要な最小限の権限だけを与えます。「あとで使うかもしれない」という理由で広い権限を渡すと、誤った判断が起きたときの影響も広がります。
| 判断 | 内容 |
|---|---|
| 対象範囲 | 触れてよいディレクトリ・テーブル・エンドポイントを限定する |
| 操作の種類 | 読み取りのみか、書き込みまで許すか |
| 実行条件 | いつでも実行してよいか、承認が必要か |
読み取りと書き込みを分ける
1つのツールに読み取りと書き込みを両方持たせると、権限の単位が粗くなります。分けておけば、読み取りは自動実行、書き込みは承認必須、という設計ができます。
# 分離されていない例
manage_file(path, mode, content) # 読み取りも削除も1つで行う
# 分離された例
read_file(path) # 自動実行してよい
write_file(path, content) # 差分を提示して実行
delete_file(path) # 承認必須指示ではなく仕組みで縛る
「本番環境は変更しないでください」とプロンプトに書くことは有効ですが、それだけでは足りません。指示は解釈の対象であり、長い作業の途中で薄まることもあります。
ツール側に制約を実装するほうが確実です。
- 書き込みツールの対象ディレクトリを設定で限定する
- 本番環境への接続情報を、そもそもエージェントに渡さない
- 削除ツールには対象の条件を必須パラメータとして持たせる
承認の置き方
承認は、自律レベルの設計と同じ基準で決めます。元に戻せない操作の直前に、実行内容を具体的に示して確認します。
自動的にこの確認を差し込む仕組みがフックです。ツール実行の直前にチェックを走らせ、条件に合わなければ止める、という制御ができます。
まとめ
- ツール権限は最小権限の原則で設計する
- 読み取りと書き込みを別ツールに分けると、権限の粒度を細かくできる
- プロンプトの禁止事項だけに頼らず、ツール側の実装で制約する
- 元に戻せない操作の直前に、具体的な内容を示して承認を求める
関連リンク
クイズ