LLMのコード生成はなぜ同じミスを繰り返すのか — 失敗を「演算子」にして生成過程を書き換える
Zenn / 2026/3/29
💬 オピニオンIdeas & Deep Analysis
要点
- LLMがコード生成で同じミスを繰り返すのは、生成過程(試行と修正)が失敗のパターンを学習・反映できず、同種の誤りに再突入しやすい構造にあると論じる。
- 失敗を「演算子」として定義し、どの手続き・どの条件で誤りが生じたかを生成のルール側に組み込むことで、次の生成から誤りの再発を抑制する。
- 生成を“文章の続きを出す”だけでなく、“失敗に対する変換(書き換え)”として扱うことで、エラーパターンを明示的に迂回できる点が重要である。
- 結果として、プロンプト改善や単発の出力修正よりも、失敗の再利用可能な制御機構を持つ設計アプローチを提案している。
LLMは優秀なレビュアーなのに、なぜ実装が下手なのか
Cursor、Copilot、Claude Code。LLMにコードを書かせるのが当たり前になった。
で、使ってると気づく。こいつら、レビューはめちゃくちゃ上手いのに、書かせるとポロポロミスる。
しかも同じタイプのミスを、何度も。
3ファイルまたぐ変更で、呼び出し側の更新を忘れる
インターフェース変えたのに、既存の呼び出し側(callsite)が古いまま
正常系は完璧に書くのに、異常系がごっそり抜ける
小さい修正を頼んだのに、なぜか全体をリファクタし始める
チェックリストを渡す。プロンプトに「注意してね」と書く。何度も言い聞か...
この記事の続きは原文サイトでお読みいただけます。
原文を読む →



