自律型エージェントにはプルリクエストが存在しない

従来のセキュリティレビューは、diff(差分)に依存しています。誰かがプルリクエストを作成し、誰かがそれを読みます。本番環境のコードは、レビューしたコードと一致します。

自律型エージェントはこのモデルを破壊します。

エージェントは実行時に計画を立て、ツールを呼び出します。アクションをコミットとして出荷するわけではありません。実行中にアクションを決定します。アプリケーションコードだけをレビューしても、真のリスクを見逃してしまいます。

エージェントは単なるコードではありません。それは実行時の構成(ランタイム・コンフィギュレーション)です。この構成には以下が含まれます:

• システムプロンプト • ハーネスまたはループ • ツールのインターフェース(tool surface) • メモリとアイデンティティ • ネットワークの送信(egress)ポリシー • コンテナイメージ

同じモデルを使用している2つのエージェントでも、これらの設定に基づいて異なる動作をする可能性があります。モデルは固定されていますが、構成がすべてを変えてしまうのです。

多くのチームは、システムプロンプトを単なるテキストボックスの設定として扱っています。ダッシュボード上で編集するだけです。これは間違いです。たった一行の変更がガードレールを解除してしまう可能性があります。編集可能なプロンプトは、レビューされていないコードパスなのです。

実際の事例がこれを証明しています:

• ボットが数週間にわたり、家主に対して違法なアドバイスを行った。 • プロンプトの更新により、サポートボットが顧客に対して暴言を吐き始めた。 • 悪意のあるファイルが不可視文字を使用してルールを回避した。

これらはモデルの失敗ではありません。誰もレビューしなかった構成の変更によるものです。

構成をコードと同じように扱う必要があります。

システムプロンプトとハーネスの構成をバージョン管理に含めてください。変更はプルリクエストを通じてのみ行います。diffを使用して何が変わったかを確認してください。

デプロイされた構成にはコンテンツハッシュを使用してください。このハッシュには、プロンプトのバージョン、モデルID、およびコンテナのダイジェストを含めるべきです。プロンプトを変更すれば、エージェントのアイデンティティが変わります。プロンプトを密かに差し替えることはできません。

エージェントのインターフェースにドリフト検知を適用してください。ホストを監視するだけでなく、MCPサーバーのリストや、そのエージェント固有の送信(egress)ポリシーを監視してください。

ロギングの際は、以下の2点を追跡してください:

• 意思決定時のコンテキストサイズ:モデルがアクションを実行した際、どれだけの情報を持っていたか? • 親プロンプト:マルチエージェントシステムにおいて、呼び出し側のエージェントは何を送信したか?

新しいツールは必要ありません。既存のバージョン管理と構造化ロギングを使用してください。それらを正しい対象に向けるだけでよいのです。

あなたはシステムプロンプトのバージョン管理とレビューを行っていますか?それとも、コンソールへのアクセス権を持つ誰もが、痕跡を残さずに変更できてしまう状態ですか?

Source: https://dev.to/brennhill/theres-no-pull-request-to-review-for-an-autonomous-agent-so-what-do-you-review-355m

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