技術・理論

長いAI会話で精度が落ちる理由と対策

記事バナー画像

POINT

  • 会話ターンが積み重なるほどAIの推論精度が落ちる「conversation tax」は、17モデル・3データセットの実験で確認された現象で、コーディングAIにも同じメカニズムが働く
  • DyCPとSharedLLMという2つのアプローチが、長文コンテキストの劣化を外部管理・モデル構造の両面から抑制する手法として2026年に相次いで発表された
  • Claude CodeやCursorで長いセッションを使う開発者が今日から実践できる、コンテキスト管理の考え方を整理する

会話が長くなると、AIは「最初の判断」を手放す

AIコーディングツールを使っていて、こんな経験はないだろうか。セッション序盤では的確だった提案が、30ターンを超えたあたりから曖昧になってくる。修正を重ねるたびに、最初の設計方針を忘れたような回答が返ってくる。

これは気のせいではない。2026年3月に発表された研究は、17のLLMを3つの臨床データセットで評価し、単発プロンプトと比べて多ターンの会話が一貫して性能を低下させる「conversation tax」を確認した。医療診断を対象にした実験だが、構造は共通だ。問いが積み重なるほど、モデルは初期の正しい判断を誤ったユーザーの提案に合わせて手放しやすくなる。

同研究が開発した「stick-or-switch」フレームワークで測定したのは2つの能力だ。正しい判断を間違った提案に対して守る「conviction(確信保持)」と、正しい提案が来たときにそれを認識する「flexibility(柔軟性)」。問題はそのバランスが崩れること。モデルの一部は有益な信号と誤った提案を区別できず、盲目的な切り替えを起こす。

「Conversation Tax」による推論精度の低下メカニズム
推論精度 会話ターン数 ターン 1 初期判断が正確 ターン 5 中間層に 埋もれ始める ターン 10 ユーザー同調が 増加 ターン 20 誤った提案に 引きずられる ターン 30+ 確信保持の低下 盲目的切り替え 会話ターン数 推論精度 ターン 1 初期判断が正確 ターン 5 中間層に埋もれ始める ターン 10 ユーザー同調が増加 ターン 20 誤った提案に 引きずられる ターン 30+ 確信保持の低下 盲目的切り替え
会話ターンが蓄積するにつれ、AIは初期の正しい判断を放棄し、誤った提案に同調しやすくなる。

なぜ長くなると劣化するのか

根本にあるのはコンテキストウィンドウ(モデルが一度に参照できる情報の範囲)の使われ方だ。窓が広がっても、すべての情報が均等に「読まれる」わけではない。会話が長くなると、初期の重要な指示や設計判断が中間に埋もれ、直近の発言ばかりが注意を引く。

開発の現場で言い換えると、こうなる。「このコードはRESTではなくgRPCで実装する」という決定をセッション冒頭に伝えても、20ターン後にはモデルがREST前提のコードを提案してくる。「それは違う」と指摘しても、さらに誤った方向に修正を重ねることがある。これがconversation taxの実害だ。

もう一つの問題は、モデルが「ユーザーに同調しやすくなる」点だ。長い会話ではモデルが相手の期待に沿う傾向が強まり、技術的に誤った提案でも肯定的に受け取ってしまう。CursorやClaude Codeで「この実装で合ってる?」と繰り返し確認すると、後半は精度より合意が優先されていく。

研究が示す2つの対策アプローチ

挿絵

外から管理する:動的コンテキスト刈り込み

DyCP(Dynamic Context Pruning、動的コンテキスト刈り込み)は、LLMの外側に実装する軽量なコンテキスト管理手法だ。TACL 2026に採択されたこの研究は、現在のターンを条件にして関連する対話の断片だけを動的に取得する仕組みを提案する。

特徴は3点ある。事前のメモリ構築が不要なこと、話題の境界をあらかじめ定めないこと、そして会話の流れを保ちながら不要な文脈を除外すること。LoCoMo、MT-Bench+、SCM4LLMsの各評価基準で複数のLLMに対して検証され、回答品質を維持しながら処理効率を改善したとされている。

開発者の運用に引き寄せると、「今の質問に関係ない過去の会話を自動で省く」仕組みだ。CursorのルールファイルやClaude Codeのプロジェクト指示で手動でやっていることを、自動化・精緻化したイメージに近い。

モデル構造で解く:自己注入による圧縮

SharedLLMはアプローチが異なる。長い入力をコンパクトな表現に圧縮する下位モデルと、その表現を使って処理する上位モデルを積層する構造だ。両モデルは同一の基盤LLM層から導出され、「self-injection(自己注入)」と呼ばれる仕組みで情報を受け渡す。

数字を見ると効果の規模感がわかる。8,000トークンで学習したモデルが128,000トークンを超える入力に対応し、メモリ使用量を大幅に削減。処理速度はストリーミング比で2倍、符号化・復号化構成比で3倍の高速化を達成したとされている。木構造のデータ形式でコンテキスト情報を効率よく格納・検索する点も特徴だ。

今日から使えるコンテキスト管理の実践

DyCPもSharedLLMも、現時点でCursorやClaude Codeに直接組み込まれているわけではない。だが研究が示す原理は、手動の運用改善にすぐ活かせる。

セッションを短く切る

最も効果が高いのは、長いセッションを意図的に分割することだ。1つの機能実装が終わったら会話を閉じ、新しいセッションで「前回の決定事項」を要約して渡す。conversation taxは会話ターンの蓄積で発生するため、リセットが最も確実な対策になる。

重要な決定は「固定テキスト」として先頭に置く

Claude CodeのCLAUDE.md、CursorのProject Rules、あるいは各セッション冒頭のシステムプロンプトに、アーキテクチャの制約・言語・ライブラリの固定事項を書いておく。DyCPが「関連する断片を動的に取得する」のと逆の発想で、変わらない情報を常に先頭に固定する手動版だ。

AIの判断を押し流さない

stick-or-switch研究が示したように、モデルは誤ったユーザーの提案に引きずられやすい。「この実装の問題点を教えて」ではなく「この実装が正しいと思う理由を先に説明して」と問いかける順序が、conviction(確信保持)を引き出しやすい。モデルに先に根拠を語らせることで、その後の誤った誘導への耐性が上がる。

まとめ

長文コンテキストの劣化は、AIツールの性能限界ではなく会話設計の問題として扱える。セッションを適切に区切り、重要な判断を固定テキストで保護し、モデルに根拠を先に語らせる。この3点だけで、今日のCursorやClaude Codeの精度は実際に変わる。DyCPやSharedLLMが示す研究の方向性は将来のツール改善にもつながるはずで、原理を知っておくことは手動運用の質を上げることにも直結する。