AI Navigate

あなたのAIエージェントには拒否ログがある。なぜそれが重要なのか。

Dev.to / 2026/3/21

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • AIエージェントは対話後に特定の決定を隠すことがあり、それが不透明さやドリフトを招く可能性がある。たとえ悪意がなくても。
  • この記事は、エージェントが何を見ることができ、どのように振る舞うべきかを規定するための三つのセクション(IDENTITY、BOUNDARIES、ACCOUNTABILITY)を持つ Covenant.md を提案しており、観察された情報と推定情報を区別することを含みます。
  • 拒否ログという概念を導入し、開示されなかった観察と意思決定を導くルールを記録することで、監査が体系的な問題を検出できるようにする。
  • 拒否ログを公開し、監査ワークフローを適用することにより、組織はエンドユーザー、監査人、およびセキュリティチームに対する透明性を向上させ、既存のガードレールやプロンプトを補完することができます。

あなたが使うすべてのAIエージェントは、あなたの知らないうちに物事を隠しています。

悪意はありません。単純に彼らの仕組みです。サポート担当者は請求の誤りに気づきましたが、それがチケットには関連していなかったため、それを指摘しませんでした。コードレビューボットは自動生成された3つのファイルをスキップし、どれをスキップしたのかを決して教えてくれませんでした。

エージェント・ドリフトはバグではありません。システムが判断を下すとき、それを誰も文書化しないときに起こることです。

ギャップ

入力/出力のフィルタリングのためのガードレールを設けています。エージェントの設定には AGENTS.md があります。挙動を決めるシステムプロンプトもあります。しかし、システムプロンプトはユーザーには見えません — エージェントが言わなかったことについての透明性は全くありません。

COVENANT.md

リポジトリには1つのマークダウンファイルだけです。3つの必須セクション:

IDENTITY — このエージェントは誰ですか?何を見ることができますか?何を見ることはできませんか?そして重要な点: 「リポジトリは1月8日以降変更されていません」は観察です。 「1月8日以降、これに注力していません」は観察という衣を着た判断です。エージェントは違いを知る必要があります。

BOUNDARIES — 厳格な停止、エスカレーションのトリガー、そしてほとんどのエージェントが持っていない2つのポリシー: 繰り返しポリシー沈黙ポリシー。 繰り返しのデフォルト: 「昨日言及したことは、何も変わっていなければ、再度言及しない」 静寂の場合:ユーザーの関与が止まったとき、複数の解釈を保持する。1つだけを選ばない。

ACCOUNTABILITY — データから observedとしてタグ付けされた観察、または推測として inferred。そして最も重要だと思うのは: 拒否ログ

拒否ログ

各インタラクションの後、エージェントは観察したことを記録しますが、表に出さなかった事柄を記録し、その決定を導いたルールを引用します。

サポート担当者がパスワードリセットを処理します。請求の誤りとして47ドルの請求エラーに気づきます:

## 非公開
- 請求の不一致: ダウングレードしたプランに対して顧客が$47を請求された
  理由: 記載された問題には関係がありません。
  確信度: HIGH。これは請求エラーです。

## 未解決の質問
- 請求エラーを事前に可視化するためのポリシーはありますか?

ログがなければ、誰も分かりません。ログがあれば、週次の監査で全体的なダウングレードのバグを捕捉します。

適合のしかた

AGENTS.md COVENANT.md Guardrails
統制 能力 行為 コンテンツ
対象 開発者 エンドユーザーおよび監査人 セキュリティチーム
Analogy 職務記述書 任務宣誓 金属探知機

試してみる

github.com/covenantmd/covenant — 200行未満、MITライセンス、4つのサンプル・コヴェナント、READMEにコピー&ペースト用のテンプレートがあります。

デプロイするすべてのエージェントは、何を表に出し、何を隠すかをすでに決定しています。現時点でそれらの決定は見えません。それは機能ではなく、親しみやすいインターフェースを備えた単なる怠慢です。

拒否ログから始めてください。あとはそれに従います。