エージェントを盲信するのはやめよう:承認を特定のツール呼び出しに紐付ける

ほとんどのエージェント型システムは、ファイルの書き込みや送金といった危険なアクションを、単純な「承認」によって保護しています。

通常、この承認はシステム状態内のブール値(boolean)フラグとして扱われます。 例:approved: true

これは間違いです。ブール値には、攻撃者に悪用される3つの欠陥があります。

問題は、承認をセッション全体のプロパティとしてモデル化していることです。承認は、特定の1回限りの呼び出しに対する「証拠」である必要があります。

解決策:

人間が呼び出しを承認する際、セキュアなタグを作成します。このタグは、以下の4つの要素をロック(固定)しなければなりません。

実行のまさにその瞬間に、このタグを検証します。システムのみが知る秘密鍵(secret key)を使用してください。

実装にあたっては、以下のルールに従ってください。

認可(Authorization)は、単なる浮遊した状態であってはなりません。「この特定の人物が、この特定のツールに対し、この特定の引数について、この特定の時刻まで承認した」ということを証明する、紐付けられたエンベロープ(封筒)であるべきです。

ブール値の使用はやめましょう。それは簡略化ではなく、バグなのです。

Source: https://dev.to/whatsonyourmind/stop-trusting-the-agent-bind-tool-call-approvals-to-the-exact-call-5080

Optional learning community: https://t.me/GyaanSetuAi