LLMはビビりなので、ちゃんと You own everything を伝えよう
「LLM(大規模言語モデル)はビビりがち」
よく耳にするこのAIの特徴は、最近のコードレビュー議論で話題になっています。
この“ビビり癖”をどう扱うか考えてみました。
こちらのスライドを参考にさせていただきました。ありがとうございます。
https://www.mechanica-inc.com/slides/20250806-code-review-for-agentic-coding/#/33
LLMは、関数名やシグネチャを変えるような「大きな変更」を過剰に避けたり、「最小編集バイアス」と呼ばれる癖で、元のコードの骨組みを頑なに守ろうとします。(この変更による影響範囲を想定できない、AIの典型的な弱点のせいでもありますが)
これは、LLMが賢すぎるあまり「壊したらいけない」「責任を持てない」といった考え方をしてしまっているからです。
だからこそ、人間の側で明確に「You own everything(全部あなたの責任!)」と伝えることが大切になってきています。
本来のレビューの目的は「正しいソフトウェア設計に近づくこと」。
部分的なバグ修正や防御的プログラミングだけでなく、「もし全部書き直すならどうする?」という視点で、既存コードや新しい提案の全体像を設計し直す勇気が必要です。
LLMや人間がコードを書くときも、「自分が全責任を持つ」という意識で、怖がらずに大胆な設計見直しや変名・削除もできる状態が理想ですよね。
大きな変更になってもOK、「You own everything」で進めて良いんです。
防御的に条件分岐しまくるコードは、時にバグの温床になりやすい。
ロジック途中にif文を挟むより、発生源で正しくvalidate(検証)、ロジックにはassert(保障)を使い、
「おかしいデータなら潔くクラッシュ」させる!!! そんなFail Fast(早くブッ壊す)マインドが推奨される。
LLMに対しても、「怖がるな、assertしよう」と応援してあげる必要があるということです。
LLMは“ビビり”がちなので、人間側で「全部あなたが責任を持つんだよ」と勇気づけることが大切。
コードも設計も「もし一から書き直したら?」という視点を忘れない。
防御的になりすぎず、検証と保証は発生源・出口で明確に。
壊す勇気と責任感が、健全な設計に繋がる。
AIが言うなら正しいんだろう、AIが言うなら間違いない、自分のコードが間違っているから…でポチポチするのはもうやめて、
「AIをもっと利用してやる!」といった感じで接してあげるのがいいのかもしれませんね。AIを先輩ではなく部下にしましょう、そういったお話でした。