AIエージェントが「何を読んでいるか」は、誰も見ていなかった

プロンプト:AIエージェントが継承するリポジトリ指示を可視化するCLIツール「CtxGov」(記事内画像)

AIエージェントを走らせる前に、そのエージェントがリポジトリから何を引き継ぐか——確認しているチームは少ない。AGENTS.md、CLAUDE.md、MCPコンフィグ、READMEに埋め込まれた指示、保存されたトレース、ハンドオフファイル。これらはエージェントが実行時に参照する「コンテキスト面」だ。意図せず古い指示や矛盾した設定が混入していても、実行前に気づく手段がなかった。

CtxGovはその空白を埋めるために作られた。開発者自身がRedditに投稿した説明によれば、「AIエージェントが実行前に継承する可能性のあるリポジトリ指示を検査するローカルのオープンソースCLI」と定義されている(Source)。

v0.9.0が示した数字:8リポジトリ、264のコンテキスト面

v0.9.0では、ピン留めされたコミット時点の公開AIエージェントリポジトリ8件をスキャンした。発見されたエージェント向けコンテキスト面は264。1リポジトリあたり平均33面という計算になる。これは「エージェントが実行前に読み込む可能性のある情報源がいかに多いか」を示す数値だ。

検査対象のサーフェスは以下の通り。

  • `AGENTS.md`
  • `CLAUDE.md`
  • MCPコンフィグ
  • READMEに含まれる指示
  • スキル定義ファイル
  • 保存済みトレース
  • ハンドオフファイル

重要な点がある。このツールはベンチマークでもセキュリティ監査でもない、と開発者は明示している。公開チェックの実行中にモデルへのAPI呼び出しは一切発生しない。完全にローカルで完結する静的検査ツールだ。

試し方は単純だ。

bash
git clone https://github.com/ctxgov/ctxgov
cd ctxgov
python3 scripts/run_public_package_checks.py

詳細なスキャンレポートはGitHubのリリースページ(`v0.9.0/release/state-of-agent-context/REPORT.md`)で公開されている。

プロンプトエンジニアの視点:コンテキスト汚染は静かに起きる

プロンプトを精緻に設計しても、エージェントがリポジトリから古い指示を引き継いでいれば、その設計は崩れる。これはプロンプトの問題ではなく、コンテキスト管理の問題だ。

筆者がこのツールに注目する理由はそこにある。エージェントの出力品質が不安定なとき、原因の候補として「どのファイルを読んでいるか」は盲点になりやすい。AGENTS.mdとCLAUDE.mdが矛盾した指示を持っていれば、モデルはどちらかを優先するか、あるいは折衷した挙動を取る可能性がある。その折衷がどこで起きているかは、実行ログだけでは追えない。

CtxGovが提供するのは「実行前の静的な地図」だ。エージェントが何を読み得るかを列挙し、人間が事前に確認できる状態にする。セキュリティ監査ではないが、コンテキスト設計の品質管理ツールとして機能する可能性がある。

現時点ではv0.9.0であり、開発者は「次にどのリポジトリ指示面を検査対象にすべきか」フィードバックを求めている。ツールの対象サーフェスは今後拡張される見込みだ。

エージェントを本番環境で動かす前に、一度このツールでリポジトリをスキャンしてみることを勧める。264という数字が示すように、見えていないコンテキスト面は思った以上に多い。