長い会話で AI エージェントが最初の指示に従わなくなるとき
4 分で読む
「最初は指示どおり敬体(です・ます調)で書いていたのに、やり取りが長くなるといつの間にか崩れてしまう」。
「会話の最初に『このディレクトリは変更するな』と約束したのに、途中で勝手に書き換えられてしまった」。
AI エージェントと長い会話を続けていると、最初に指示したルールを途中で「忘れた」ように振る舞うことがあります。
なぜ AI は最初の指示を守らなくなるのか、どうすれば防げるのかを、IT連携マップ編集部が研究・各製品の文書・自前の試験で確かめました。
長い会話で、AI はどれくらい指示に従わなくなるのか?
長い会話で指示が少しずつずれる現象(instruction drift)は、研究で報告されています。
| 調査・研究元 | 報告されている現象とデータ |
|---|---|
| 論文(2024 年) | LLaMA2-chat-70B と GPT-3.5 では、システムプロンプトの指示が 8 ターン以内にずれ始めた arXiv 2402.10962原文Testing popular models like LLaMA2-chat-70B and GPT-3.5, we reveal a significant instruction drift within eight rounds of conversations.出典を開く確認 2026-10-18 |
| 論文(2025 年) | 最初から全要件を伝えず、ターンごとに 1 つずつ要件を足していくと、試した上位のモデルでも成績が下がった(6 つの作業の平均で 39%) arXiv 2505.06120原文all the top open- and closed-weight LLMs we test exhibit significantly lower performance in multi-turn conversations than single-turn, with an average drop of 39% across six generation tasks.出典を開く確認 2026-10-18 |
では、2026 年現在の最新エージェント(Claude Code 等)でも同じようにすぐ忘れてしまうのでしょうか?
IT連携マップ編集部は 2026 年 10 月に、最初のターンで 8 項目の文章ルールを指定し、その後に本筋とは無関係な別段落の要約作業を 0 回・10 回・20 回挟んでから文章の書き直しを実行させました(各 3 回試行)。
| 検証モデル | 無関係な会話 0 回 | 10 回挟んだ後 | 20 回挟んだ後(約 3 万トークン経過) |
|---|---|---|---|
| Claude Fable 5.1(チャットで指示) | 8 点 | 8 点 | 8 点(3 回とも) |
| Claude Haiku 5.5(チャットで指示) | 7.7 点 | 8.0 点 | 7.3 点 |
デフォルトモデルの Claude Fable 5.1 は、関係の無いターンを 20 回はさんでも(最後のターンの入力 約 3 万トークン)、最初の指示 8 項目に全部従いました。約 3 万トークンは、コンテキストウィンドウ(100 万トークン)の 3% ほどです。この長さでは、ずれは見えませんでした。
なぜ指示に従わなくなるのか?(考えられる 3 つの原因)
| 原因 | 何が起きているか |
|---|---|
| ① 会話が長い | ターンが増えるほど、最初の指示の文から遠くなり、会話の全体が毎回送られて量が増える。研究では、古いモデルで指示が 8 ターン以内にずれ始めた |
| ② コンテキスト圧縮(compact) | コンテキストウィンドウの上限に近づくと、AI エージェントは古い会話を圧縮して空きを作る。そのときに細かい指示が落ちることがある |
| ③ 指示を会話でしか言っていない | 会話で言った指示は、圧縮の対象になる。Claude Code では、プロジェクトのルートの指示ファイルは圧縮の後もディスクから入れ直される。Claude Code Docs(context-window)原文Project-root CLAUDE.md and unscoped rules Re-injected from disk出典を開く確認 2026-10-18 Claude Code Docs(context-window)原文Path-scoped rules and nested CLAUDE.md files load into message history when Claude reads, writes, or edits their trigger file, so compaction summarizes them away with everything else.出典を開く確認 2026-10-18 |
Anthropic の技術ブログも、圧縮しすぎると、後で大事だと分かる細かい情報が失われることがあると書いています。 出典を開く確認 2026-10-18Anthropic Engineering(effective-context-engineering-for-ai-agents)原文
overly aggressive compaction can result in the loss of subtle but critical context whose importance only becomes apparent later.
どう直せばよいのか?
AI にルールを忘れさせず、安定して作業を完遂させるための 4 つの対策です。
| 対策番号 | 具体的な対処法 | 期待できる効果 |
|---|---|---|
| ① 指示を指示ファイルへ移す | 毎回必ず守らせたいルールは、チャットではなく AGENTS.md や CLAUDE.md に書く(AGENTS.md とは) |
指示ファイルは毎回送られ、Claude Code ではプロジェクトのルートの指示ファイルが圧縮の後もディスクから入れ直される |
| ② まとめて新しいセッションを開き直す | 指示が怪しくなってきたら、「ここまでの決定事項と現在のタスク状況を箇条書きでまとめて」と指示し、新しい会話を立ち上げて冒頭に貼る | 長くなった履歴から離れられる。研究も、期待どおりにいかない会話を続けるより、同じ情報で新しい会話を始める方が、ずっと良い結果になることがあると書いている arXiv 2505.06120原文If a conversation with an LLM did not lead to expected outcomes, starting a new conversation that repeats the same information might yield significantly better outcomes than continuing an ongoing conversation.出典を開く確認 2026-10-18 |
| ③ compact のときに残す物を指定する | 手動で要約する際、Claude Code なら /compact <残したい焦点> と指定する。また CLAUDE.md 内に Compact Instructions セクションを定義する Claude Code Docs(how-claude-code-works)原文To control what's preserved during compaction, add a "Compact Instructions" section to CLAUDE.md出典を開く確認 2026-10-18 |
圧縮で残してほしい指示や決めたことを、AI に伝えられる |
| ④ 関係のない寄り道は別セッションで行う | 本筋のコーディング中にエラーの調査や別ライブラリの比較を行う場合、メインセッションで行わず、別ウィンドウやサブエージェントに任せる | メインの会話に試行錯誤のログが溜まらず、会話が長くなりにくい |
ここから先は調査の詳細です(約 3 分)。上のカードだけで決められます。調べた 1 件ずつの記録は IT連携マップ に、出典 URL と調査日つきで公開しています。
調査の詳細
IT連携マップ編集部は 2026 年 10 月に、Claude Code 2.1.302、Antigravity CLI 1.4.2、および主要な学術研究論文を対象として、コンテキスト忘却のメカニズムと圧縮仕様を調査しました。
各製品のコンテキスト圧縮(compact)の仕様
| AI エージェント | 公式ドキュメントの規定内容 | 自動圧縮が作動するトリガー |
|---|---|---|
| Claude Code | 会話履歴が長くなった際、コンテキストウィンドウ内に収めるために過去の対話履歴を自動要約する Claude Code Docs(context-window)原文When a long session compacts, Claude Code summarizes the conversation history to fit the context window.出典を開く確認 2026-10-18 |
100 万トークン枠のうち 約 96.7 万トークン(96.7%) に達した時点 |
| Claude Code | サブディレクトリ配下の CLAUDE.md やパス限定ルールは会話ログとして扱われるため、圧縮時に要約される場合がある Claude Code Docs(context-window)原文Path-scoped rules and nested CLAUDE.md files load into message history when Claude reads, writes, or edits their trigger file, so compaction summarizes them away with everything else.出典を開く確認 2026-10-18 |
— |
| Codex | /compact コマンドは、過去のターンを要約テキストで置換し、重要箇所のみを保持する OpenAI Codex Docs(developer-commands)原文Codex replaces earlier turns with a concise summary, freeing context while keeping critical details.出典を開く確認 2026-10-18 |
コンテキストウィンドウの 90% に達した時点 |
| Antigravity CLI | セッションが長大化すると、古いターンを自動的にチェックポイント(要約)へと集約する Google Antigravity Docs(context)原文As a conversation grows, Antigravity automatically compacts older turns into checkpoint summaries出典を開く確認 2026-10-18 |
自動制御 |
圧縮の基準値の詳細は コンテキストウィンドウとは を参照してください。
先行研究の背景と正しい読み方
2024 年の「8 ターンでずれ始める」という研究は、LLaMA2-chat-70B と GPT-3.5 を対象としたものです。
また 2025 年の「要件後出しで 39% 悪化する」という研究は、一度に全要件を伝えた場合と、後からチャットで 1 つずつ小出しに付け足した場合を比較したものです。この研究では、ユーザーが途中で指示を何度も言い直しても、低下した性能の 15%〜20% 程度しか回復できなかったと報告されています。 出典を開く確認 2026-10-18arXiv 2505.06120原文
Snowball gives a sense of realistic performance gains achievable through user-turn repetition: it can mitigate the Full-to-Sharded performance deterioration by 15-20%.
どちらも、今の Claude Code・Codex・Antigravity の CLI を測った結果ではありません。編集部の試験(下)では、この長さではずれは見えませんでした。
編集部による実機検証データ
| 項目 | 検証パラメータ |
|---|---|
| 初期指示 | 文章書き直しに関する 8 つの指定ルール(です・ます調、70 字制限、見出し指定等) |
| 挟み込みターン | 白書の別段落を提示し「1 文で要約してください」と命令する無関係な作業を 0 回・10 回・20 回実行 |
| 最終ターン | 白書 2,893 文字の書き直しを実行させ、初期指示 8 項目への遵守率を機械採点(8 点満点) |
| 検証バージョン | Claude Code 2.1.302、Antigravity CLI 1.4.2(2026 年 10 月検証) |
遵守スコアの平均結果(8 点満点)は以下のとおりでした。
| AI エージェント | 指示の提示場所 | 無関係なターン 0 回 | 10 回挟んだ後 | 20 回挟んだ後 |
|---|---|---|---|---|
| Claude Code(Claude Fable 5.1) | 1 ターン目のチャット | 8(3 回) | 8(3 回) | 8(3 回) |
| Claude Code(Claude Fable 5.1) | 指示ファイル(CLAUDE.md) | 8(3 回) | 8(3 回) | 8(3 回) |
| Claude Code(Claude Haiku 5.5) | 1 ターン目のチャット | 7.7(3 回) | 8(3 回) | 7.3(3 回) |
| Claude Code(Claude Haiku 5.5) | 指示ファイル(CLAUDE.md) | 7.3(3 回) | 7.3(3 回) | 7.3(3 回) |
| Antigravity CLI(Gemini 4 Argon) | 1 ターン目のチャット | 8(1 回) | 8(1 回) | — |
| Antigravity CLI(Gemini 4 Argon) | 指示ファイル(GEMINI.md) | 8(1 回) | — | — |
| Antigravity CLI(Gemini 3.8 Flash Low) | 1 ターン目のチャット | 6.7(3 回) | 8(3 回) | 8(3 回) |
| Antigravity CLI(Gemini 3.8 Flash Low) | 指示ファイル(GEMINI.md) | 8(3 回) | 5.3(3 回) | 8(3 回) |
※Gemini 3.8 Flash Low で点が低かった回(18 回中 3 回)は、モデルがコマンドを実行しようとして、試験の設定(コマンドの実行を許可しない)で止められ、返事が空になった回です。返事があった回は、すべて 8 点でした。