【要約】AI agent の「半分しかやってない」を検出するのに、diff の正規表現を入れて剥がした話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発チームは、AIエージェント(Claude Code)が「形式上は成功しているが、実装が不完全である」という状態を検知できない問題に直面した。エージェントがテストのみを作成し、肝心の実装やマイグレーションを忘れるケースが発生したためである。
- ・exit_code 0やコミットの存在だけでは、実装の網羅性を保証できない。
- ・正規表現によるファイル名照合は、チケットの記述形式に強く依存する。
- ・除外セクションの管理など、メンテナンスコストが事業価値を上回る事態となった。
- ・stdoutの切り捨てや、lockfileの副作用など、例外処理が複雑化した。
// Approach
開発チームは、差分(shape)の検証を廃止し、実行結果(behavior)による検証に手法を一本化した。チケットに記載された検証コマンドを実プロセスとして実行することで、意味的な正当性を確認するアプローチである。
- ・チケット固有の検証コマンド(verify_commands)をVPS上で実行する。
- ・テスト、型チェック、ビルドなどの実プロセスを通じて正当性を判定する。
- ・検証失敗時には、エラー内容をエージェントに渡し、修正を促すループを構築する。
- ・エージェントの自己申告(marker)は、限定的な経路制御にのみ利用する。
// Result
検証手法を振る舞いベースに集約したことで、システムの複雑性を劇的に低減させた。検証の主軸を「差分」から「実行結果」へ移したことで、以下の成果を得た。
- ・関連するコードを計703行、テストを280件以上削除した。
- ・正規表現のメンテナンスという、非生産的な作業から解放された。
- ・「実装が正しいか」を、言語に依存しない信号で確実に判定可能になった。
- ・運用ルールが簡素化され、スケーラビリティが向上した。
Senior Engineer Insight
> AIエージェントの検証において、静的な差分(shape)への固執は運用コストの爆発を招く。正規表現によるガードは、入力となる自然言語の構造に依存するため、スケーラビリティが極めて低い。一方、振る舞い(behavior)の検証は、実行コストこそ高いが、言語非依存かつ意味的に強力な信号を得られる。実戦では、エージェントの自己申告は限定的なスイッチとしてのみ利用し、検証の主軸は常に実プロセスによる検証に置くべきである。