ハーネスエンジニアリングのアンチパターン
AP3. 足場のラチェット(The Scaffolding Ratchet)
🎯 ポイント
失敗するたびにルールが足され、何ひとつ外されない。気づけばRube Goldberg装置のようなハーネスが、モデルと戦い始めています。「一度効いた」は「今も要る」を意味しません。
❗ 発生する課題
ルール・ステップ・ガードレールが際限なく蓄積し、ハーネスが複雑な迷宮になります。モデルの能力が向上しても過去の足場が性能の天井を作り、誰も全体を把握できないため改善も困難になります。
🔍 メカニズムと症状
このアンチパターンが蔓延するのは、各ルール追加が局所的には正当(「あの事故を一度は防いだ」)であり、削除はリスクに見えるからです。しかし、足場は一方向にしか回らないラチェットになり、Rube Goldberg装置に堕します。モデルが賢くなると、過去の足場はモデルの推論を不必要に制約する性能の天井になります。症状としては、誰も全ルールを把握していない、新しいルールが古いルールと矛盾する、モデルを更新しても性能が上がらない(足場が制約しているため)、ハーネスの修正が怖くて誰も触れない、といった現象が見られます。
📋 シナリオ
・あるバグで「必ずファイルAを先に読め」というルールを追加。別のバグで「ファイルBを先に読め」を追加。さらに別のバグで「計画を必ず3段階に分けろ」を追加。結果、エージェントは毎回不必要な手順を踏み、簡単なタスクでも遅くなる。
・モデルをGPT-4からClaude Opusに更新したが、GPT-4の弱点を補うために追加した足場がClaude Opusの強みを殺し、性能が変わらない。
・ハーネスのルールファイルが500行に膨れ上がり、新しいチームメンバーが理解不能。改善提案をしても「前に事故があったから」と却下される。
🛡 回避方法
・足場にもガベージコレクションを導入し、モデル更新ごとに全ルールを棚卸しして不要なものを削除します
・各ルールに「なぜ追加されたか」「いつ追加されたか」「どのモデルバージョンで追加されたか」を記録します
・定期的に足場を外した状態でベンチマークを実行し、本当に必要な足場だけを残します
・「ルール追加」だけでなく「ルール削除」も改善アクションとして意識的に実施してください
#
HarnessEngineering# #
AIAgent#