意図は伝わっているはずなのにAIが何度もコードの修正に失敗するのはなぜか。
修正指示を重ねるうちにコードはどんどん複雑化し、トークンやクレジットを使い果たしてしまいます。

そこで今回は、AIへの適切な修正指示の出し方と「2回リセット」の鉄則についてお話しします。

なぜAIは同じミスを繰り返すのか?

AIが修正に失敗し続ける大きな原因の1つとして、コンテキスト(記憶)の汚染と呼ばれる現象があります。

○○というコードを作って

AI:動作しない(バグがある)コードを出力

エラーを直して

AI:修正版として動作しない(バグがある)コードv2を出力

直ってない!

以降ループ🔁

AIはやり取りをすべて「コンテキスト(記憶)」に書き残しながら回答を考えています。
会話が長引くに連れて「失敗例」や「修正指示」が蓄積されて、以降の新たな回答も過去の間違いに引きずられる状態になります。

修正のループを防ぐには

「2回ミスしたらストップ」のルールを作る!

AI:修正版と言いながら動作しない(バグがある)コードv2を出力←この時点でストップ!

「原因が分かりました!」と自信ありげに答えておきながら、指摘したエラー内容が修正されていなかった場合は、追加の指示は出さずに会話をストップするのが正解です。

手元のコードを「巻き戻す」

AIが書いた「動かないコード」を残したまま新しいチャットで質問するのではなく、必ず「AIに修正を頼む前の、まだマシだった状態(または空の状態)」までコードを戻すことがポイントです。

間違ったコードをベースに修正させようとすると、また同じ間違いをする可能性があります。

会話を「完全リセット」する

コマンド(/clearなど)を使って履歴を消去して、不具合が生まれた箇所をピンポイントに再設計します。
プロジェクト全体を読み込ませている場合は、関係のないファイルを読み込み対象から一度外します。

エラーの具体的な内容を渡す

AIへの指示は「エラーを直して」だけではなく、コードや不具合の発生箇所、求めている形をなるべく具体的に伝えることが大切です。

【プロンプトの例】

「以下の機能を実装しようとしていますが、うまくいきません。ゼロからコードを作成してください。

1. やりたいこと:

(例:クリックしたら青くなるボタンを作りたい)

2. 現状のコード:

(エラー発生前のコード or なし)

3. 発生している問題・エラー内容:

(エラーメッセージや、どう動かないかを具体的に)」

まとめ

AIコーディングにおいて、「うまくいかないな」と感じたら、AIの性能や指示の問題ではなく、単に「記憶がいっぱいで混乱している」だけかもしれません。

なかなか不具合が修正されないな、と感じたらぜひ試してみてください。