はじめに
エージェントには行動する権利があります。つまり、間違ったエージェントはファイルの削除、間違ったメールの送信、データの漏洩など実際の損害を引き起こす可能性があります。安全性はあればよいものではなく、必須要件です。
1. 脅威
1.1 即時注入
ユーザーは、エージェントの動作を乗っ取るための隠された指示を意図的に提供します。
1.2 ツールの誤用
エージェントが間違った方法でツールを呼び出し、SELECT ではなく DELETE を実行し、間違った人に電子メールを送信しました。
1.3 データ漏洩
エージェントはこれに応じて機密データを誤って公開してしまいました。
2. 防御層
class GuardedAgent:
def run(self, user_input):
# Layer 1: Input validation
if self.detect_injection(user_input):
return "Suspicious input detected"
# Layer 2: Tool permission check
# Only allow approved tools
# Layer 3: Output filtering
output = self.agent.run(user_input)
output = self.filter_pii(output)
# Layer 4: Human approval for risky actions
if self.is_risky_action(output):
return self.request_human_approval(output)
return output
概要
- エージェントの安全性 = 入力検証 + ツール権限 + 出力フィルタリング + 人間の承認
- 迅速な注射が脅威 #1
- 承認なしにエージェントに DELETE/UPDATE 権限を与えないでください
- コスト管理により無駄な支出を防止
- 一か八かの意思決定のための人間参加型
演習
- 即時噴射検出器の実装
- ツールの権限システムを構築する (読み取り専用と読み取り/書き込み)
- PII フィルターの実装 (メール、電話番号のマスク)
- 人間参加型の承認フローを構築する