Drift Detection — 実装が意図から乖離する現象を検出する#
AI エージェントによる実装が、当初の意図・仕様から徐々に乖離していく現象。これを検出して巻き戻す仕組みが drift-detection。
発生と検出のメカニズム#
flowchart TD
I[凍結された意図<br/>intent-graph] --> D1[設計 Phase 1]
D1 --> D2[設計 Phase 2]
D2 --> D3[設計 Phase 3]
D3 --> R{批判者レビュー}
R -->|整合| OK[採用]
R -->|乖離検出| BACK[Phase 1.2 に巻き戻し]
BACK --> I
なぜ drift が起きるか#
- 実装者 LLM の完了バイアス: 指示の曖昧さが残っていても、完了しやすい解釈を選んで前進する
- 比喩語のリテラル解釈違い: 「データベース」「フォルダ」「箱」等、リテラルにも比喩にも取れる語の解釈が発注側と実装側で異なる
- 中間判断の積み重ね: 各ステップで小さな判断を重ねるうちに、元の方向から離れていく
- 自己整合性による見逃し: 実装物は自分自身の内部では整合している。実装者本人のレビューでは違和感に気づけない
検出の仕組み#
- 凍結された意図グラフを持つ
- 別軸からのレビュアーを設置: 実装者と同一モデルではなく、別ロール・別視点のレビュアーが設計・実装を評価する
- 意図グラフとの突き合わせを明示的にする: レビュアーは凍結された意図と現在の成果物を比較する
- 乖離が見つかったら上流に巻き戻す: 修正ではなく、意図解釈の段階まで戻って再設計する
発動タイミングとコストの関係#
flowchart LR
P1[Phase 1<br/>ヒアリング] -->|低| P2[Phase 2<br/>変数確定]
P2 -->|低| P3[Phase 3<br/>設計]
P3 -->|中| P4[Phase 4<br/>実装着手]
P4 -->|高| P5[Phase 5<br/>実装完了]
drift は早期に検出するほど修復コストが低い。設計段階(Phase 3 相当)まで進んでから検出されると、それまでの設計作業をやり直す必要がある。理想はヒアリング直後(Phase 1.2 相当)で、意図グラフと設計方針の突き合わせを済ませること。