コンテンツにスキップ
LinkedInX

実行権限と承認

対象読者: AIにツールの実行権限をどこまで与えるか決めたい方、承認フローを設計したい方
前提知識: ツール利用とは の基礎

ツールに与える実行権限は、AIエージェントの安全性を決める中心的な設計です。指示で禁止するのではなく、そもそもできないようにするのが基本になります。

最小権限の原則

その作業に必要な最小限の権限だけを与えます。「あとで使うかもしれない」という理由で広い権限を渡すと、誤った判断が起きたときの影響も広がります。

判断内容
対象範囲触れてよいディレクトリ・テーブル・エンドポイントを限定する
操作の種類読み取りのみか、書き込みまで許すか
実行条件いつでも実行してよいか、承認が必要か
この表は横方向にスクロールできます。キーボードでは、表にフォーカスして左右の矢印キーを使用してください。

読み取りと書き込みを分ける

1つのツールに読み取りと書き込みを両方持たせると、権限の単位が粗くなります。分けておけば、読み取りは自動実行、書き込みは承認必須、という設計ができます。

# 分離されていない例
manage_file(path, mode, content)   # 読み取りも削除も1つで行う

# 分離された例
read_file(path)                    # 自動実行してよい
write_file(path, content)          # 差分を提示して実行
delete_file(path)                  # 承認必須

指示ではなく仕組みで縛る

「本番環境は変更しないでください」とプロンプトに書くことは有効ですが、それだけでは足りません。指示は解釈の対象であり、長い作業の途中で薄まることもあります。

ツール側に制約を実装するほうが確実です。

  • 書き込みツールの対象ディレクトリを設定で限定する
  • 本番環境への接続情報を、そもそもエージェントに渡さない
  • 削除ツールには対象の条件を必須パラメータとして持たせる

承認の置き方

承認は、自律レベルの設計と同じ基準で決めます。元に戻せない操作の直前に、実行内容を具体的に示して確認します。

自動的にこの確認を差し込む仕組みがフックです。ツール実行の直前にチェックを走らせ、条件に合わなければ止める、という制御ができます。

まとめ

  • ツール権限は最小権限の原則で設計する
  • 読み取りと書き込みを別ツールに分けると、権限の粒度を細かくできる
  • プロンプトの禁止事項だけに頼らず、ツール側の実装で制約する
  • 元に戻せない操作の直前に、具体的な内容を示して承認を求める

関連リンク

クイズ