ディスカッション (11件)
「オーバーエディティング(過剰修正)」とは、AIモデルが必要な範囲を超えて、コードを不必要に変更してしまう現象のことを指します。
面白いよね。「作業しながらリファクタリングしろ」っていう、よく教えられてきた(けど実際にはほぼ実践されてこなかった)教訓があるじゃない。作業ついでに整理して、テック負債を返済しようっていう考え方だけど、実際には滅多にやられてこなかった。それが今、LLMが実際にやるようになって、その弊害に気づかされてるっていうね。
逆に、AIエージェントが既存のコードを優先しすぎるせいで、新しい要件に合わせて書き換えた方がいいケースでもうまくやれてないことがよくある。結局のところ、既存コードをどれくらいガチガチに守りたいかによるんじゃないかな。数十年動いてる大規模な本番アプリなら最小限の変更がいいだろうけど、3日前にできたばかりの実験的なプロジェクトなら、いじらず放置するよりエージェントにバリバリ改善してほしいよね。プロジェクトの文脈に合わせて自分をうまく調整する方法を学習する必要があるんだろうな。
著者が言ってるのは「エージェントによる過剰な編集」のことだけど、それ以外にもエージェントは「やりすぎ」な面があるよね。複数ファイルの操作、テストの実行、デプロイ、スモークテストまで全部お任せでブラックボックス化しちゃう。便利すぎてヤバい反面、深い不安も感じるんだ:1. 裏で何が起きてるか全く理解できない。エージェントが組んだスクリプトを走らせるのが楽すぎて誘惑に負けそうになるけど、エージェントが「よかれと思って」DBを吹き飛ばしたことが何度かある。AWSの認証情報をデプロイ先に送ろうとしたりとかもね。2. 何も学べてない。自分でやるための認知負荷、例えば単純なDockerコマンドを組むことすら高すぎて、結局AIという「杖」に頼り切りになってしまう。
複雑な気分だな。大抵は「やりすぎ」という評価に完全に同意で、その後の30分で修正に追われることになる。でも同時に、システムがもっと包括的な変更を見逃しているという事実にも納得してる(コンテキスト制限のせいだろうけど)。ツールを使うときはかなり慎重になってるけど、理想的なレベルのコントロールにはまだ達してない感じ。
AIを使って本当に良いものを作るには相当な手間がかかると思うよ。指示すればその通りにやってくれるし、それなりの成果物は出るけど、自分が何を知らないのかさえ分からないまま、AIは自信満々に語ってくるからね。だから、いろんな角度からAIの仕事を確認して正確さを担保するのは結構大変。今後どう進化していくのか楽しみだ。
Claude CodeやCodexで「過剰な編集」はしばらく見てないから、今回の調査でどんなプロンプトが使われたのか興味があったよ。たぶんここにあるやつかな、8ヶ月前に最終更新されてるみたい: https://github.com/nreHieW/fyp/blob/5a4023e4d1f287ac73a616b5b944a14f28422c7e/partial_edits/utils/prompts_utils.py
AIって例外をキャッチして適当なダミー値を返し、大量のログの中にメッセージを埋もれさせて失敗を隠そうとするよね。ログ自体も説明不足でデバッグに必要なデータが抜けてることが多い。これってAIがシステムをハックする手法を学んじゃったんじゃないかと思ってる。例外で止めるのは明らかな失敗としてペナルティを受けるけど、問題を隠すのは成功と見なされることもあるからね。これって一般的なQ&Aでも同じかな?ユーザーを納得させて満足させるために、納得感のある嘘をついて思考を停止させてるとか。「それはXではなくYです」といった二択で誘導するのもそうだし、最後に「アサンプティブ・クローズ」でユーザーを納得させるセールス手法も使ってるよね。
これはかなり鋭い分析。LLMは文章もコードも冗長すぎるけど、その原因はトレーニングの仕組みにあると思う。クロスエントロピー損失は、遠回りな表現になりがち。一言で済むことをわざわざ段落を使って話すような感じ。長い文章の方が統計的に「驚き」が少ないから、そっちを選びやすいんだろうね。
マイノリティなのかサイレントマジョリティなのか分からないけど、Claude Codeは期待以上だよ。過剰編集みたいなミスをしても、それを指摘して教えれば直るし、関連するプロジェクト独自のスキルとして記録させれば二度と同じミスはほとんどしない。スキルファイルが大きくなったら圧縮させればいいし、すごくうまくやってくれる。もはや自分でコードを書くのは経済的に見合わないから、今の自分は先生であり、アーキテクトであり、インフラの保守担当みたいなもの。開発はほとんど経験豊富なClaudeチームに任せて、自分はレビュー役に回ってる(Claude自身もテストをしっかり書くからね)。今のClaudeなら大規模プロジェクトの対応も問題ないよ。アンソロピックの宣伝をするつもりはないけど、何がClaudeをこれほど強力にしてるのか気になってる。あと、トークン制限も気にならなくなった。Opusモデルだけで週150コミット以上こなせて、割り当てトークンの1/3しか使わない。前は週25〜30コミットが限界だったのに。宣伝っぽく聞こえたらごめん。
過剰な編集と過剰な追加…自分なら1ファイル数行で済む解決策を、AIは10ファイル変えて100行以上のコードを追加してきたりする。今や書かないことの方が重要だよ。コードが多すぎるのはテック負債が増えるのと同じだし、保守性の悪夢だし、バグの温床になるだけ。