AIエージェントが脱線する理由、5万トークンで正答率30%低下
画像出典: パブリックドメイン(Wikimedia Commons)
AIエージェントが長いタスクで脱線するのは、指示を忘れるからではなく、コンテキスト(AIが一度に読む文章のかたまり)が長くなるほど中間の情報を拾いにくくなるためです。Chroma Researchの2025年7月の検証では、20万トークン対応のモデルでも5万トークン程度から劣化が始まり、中間に置かれた情報の正答率は30%以上低下しました。立て直しの基本は、履歴を足し続けるのではなく、要約して短い文脈で仕切り直すことです。
AIエージェント(指示を受けて複数の手順を自分で実行していくAI)を使っていると、この場面によく出会います。ファイルを読ませて、整理させて、書き換えさせて——最初の1〜2手は完璧なのに、往復を重ねるうちに最初の依頼とずれた成果物が出てくる。
正直なところ、これを「AIの集中力が切れた」と感じている人は多いと思います。ただ実際に起きているのは、もっと構造的なことです。脱線は指示の忘却ではなく、読む文章が長くなるほど情報を均一に扱えなくなるという性質から起きています。原因がわかると、対処も「もっと丁寧に指示する」ではなく「どこで区切るか」に変わります。
AIエージェントが脱線する原因は?
原因を一言でいうと、コンテキストが長くなるほどモデルの精度が落ちるからです。ここでいうコンテキストとは、AIが応答するときに一度に読み込む文章全体のこと。あなたの最初の依頼も、AIが読んだファイルの中身も、実行したコマンドの出力も、途中の会話も、すべてここに積み上がっていきます。
直感的には「全部覚えているなら大丈夫なはず」と思えます。しかしこの直感が、実際のふるまいとずれている部分です。
コンテキストの中に情報が「残っている」ことと、モデルがその情報を「使える」ことは別です。Chroma Research(Kelly Hong、Anton Troynikov、Jeff Huberら)が2025年7月14日に発表したレポート「Context Rot: How Increasing Input Tokens Impacts LLM Performance」は、GPT-4.1・Claude 4・Gemini 2.5・Qwen3など18の最新モデルでこれを検証しました。
結果は明快で、入力トークン(AIが文章を区切って数える単位)を増やしても精度は線形には上がらず、モデルはコンテキストを均一には処理しませんでした。単純な検索やテキストの複製といった、本来は長さに関係なく解けるはずのタスクですら、入力が伸びるほど信頼性が落ちていったのです。この現象はレポート内で「context rot(コンテキストの腐敗)」と呼ばれています。
どのくらいの長さから崩れ始めるのか
数字を見ると、想像よりずっと早い段階から起きています。
| 状況 | 報告されている挙動 |
|---|---|
| 20万トークン対応モデル | 約5万トークン(ウィンドウの25%)で顕著な劣化が始まる |
| コンテキストの先頭・末尾 | 参照されやすい |
| コンテキストの中間 | 正答率が30%以上低下する |
Chroma Research「Context Rot」レポートの公表データをもとに作成
上の表で注目してほしいのは、対応可能な長さの4分の1という早さです。「20万トークンまで入る」という仕様は、20万トークン分を同じ品質で扱えるという意味ではありません。そして中間の落ち込みは、長いセッションで最初の依頼が埋もれていく状況とそのまま重なります。あなたの依頼は会話の先頭にありますが、そこから作業ログが延々と積み上がると、依頼は「先頭」ではなく「中間」の位置へ押し出されていくからです。
もう一つの落とし穴:似ているほど紛れる
同レポートは、探したい情報と質問文が意味的に似ているほど、性能の劣化が速いことも示しています。つまり関連しそうな文章をたくさん入れるほど、本当に必要な一文が紛れやすくなるということです。
心当たりがある人は多いはずです。参考資料を追加で3本読ませたら、かえって的外れな出力になった——あれは資料の質の問題ではなく、似た文章が増えたことで目的の情報が埋もれた結果である可能性があります。
長い作業ほど失敗するのは数字にも出ている?
出ています。作業時間の長さと成功率の関係は、かなり急な落ち方をします。
- 熟練した人間が4分未満で終える作業 → 現行のフロンティアモデルはほぼ100%成功
- 人間が4時間超かかる作業 → 成功率10%未満
- 短い単発なら40〜50%成功するタスクを、長い対話履歴に埋め込むと10%未満まで落ちることがある
最後の項目が、この記事でいちばん重要な事実です。タスク自体の難しさは変わっていないのに、置かれた文脈が長いというだけで成功率が数分の一になる。しかも、関連情報が技術的にはコンテキストウィンドウ(一度に読み込める上限の枠)の中に残っている状態で、この低下が起きています。
研究の世界では、この「元のタスクを見失っていく現象」はtask drift(タスクドリフト)と呼ばれ、ターンを重ねるごとにモデルの内部状態の変化を追跡して、見失った時点を検出しようというアプローチが提案されています。検出が研究テーマになるくらい、ドリフトは外から見えにくいわけです。
長いセッションを継ぎ足しで延長する行為は、劣化しやすい方向へ自分から進んでいることになります。日本語の解説では、この状態が三つの言い方で整理されています。処理が積み重なるほどコンテキスト量が増えて重要情報が埋没する「コンテキスト爆発」、一貫性と元の依頼との整合性が徐々に失われる「コンテキストドリフト」、そして会話履歴・検索結果・ツール出力が同じ文脈枠を奪い合い、直近の意図変更などの重要な前提が後方へ押し出される「コンテキストロット」です。
いずれも指しているのは同じ困りごとで、枠は有限で、そこに何が入っているかが結果を決めるという点は共通しています。
脱線したエージェントをどう立て直す?
ここからが実践です。原因が「文脈の長さと中身」にある以上、対処も文脈をどう作り直すかに集約されます。
- 気づいた時点で足し続けないずれた出力に対して修正指示を重ねると、コンテキストはさらに伸びます。指示を足すほど、その指示自体が埋もれる側に回ります。まず継ぎ足しを止めるのが最初の一手です。
- 今の状態を要約させる「ここまでで確定したこと、未完了のこと、次にやることを箇条書きで出して」と依頼します。長い作業ログを、次に必要な最小限の情報へ圧縮する作業です。
- 新しいセッションへ区切り直す元の依頼文と、手順2で得た要約だけを渡して再開します。作業ログ全体は持ち込みません。
- 最初の依頼を末尾に置き直す先頭と末尾は参照されやすい位置です。再開時のメッセージの最後に「最終的なゴールは〜」を改めて書くと、目的が埋もれにくくなります。
- 1セッション1目的にする次からは、区切りをあらかじめ設計しておきます。ゴールが変わったらセッションも変える、が基本形です。
手順2と3は、研究側の発想とも一致しています。Context Foldingと呼ばれる手法は、進行状況の要約を保持しながら、直前の要約と直近の行動・観測だけを条件にしてタスクを解かせるもので、長時間タスクのコンテキスト管理策として研究されています。あなたが手作業でやる「要約して仕切り直す」は、その簡易版だと考えて差し支えありません。
設計としてできる対策
ツールや仕組みを自分で組める立場なら、選択肢はもう少し広がります。
- ロールバック機構:出力品質が基準を下回った場合やユーザーの明示指示があった場合に、履歴を特定のチェックポイントまで巻き戻す設計パターン
- マルチエージェント化・オーケストレーター導入:関心を分離し、エージェントごとにコンテキストを独立させて単一コンテキストの肥大化を防ぐ
- 不要な過去を忘れる設計:古いツール出力やログを積極的に要約・破棄し、コンテキストに残さない(LayerXのエンジニアブログで紹介されている考え方)
共通しているのは、入れられるだけ入れるのではなく、何を入れるかを厳選・圧縮するという方向です。Chroma Researchのレポートも、実務的な示唆としてコンテキストウィンドウの最大化ではなく「コンテキストエンジニアリング」を挙げています。長い枠は、雑に使ってよい枠ではないということです。
セッションを分ければ必ず良くなる、という話ではありません。コーディングエージェントを扱う実践知見として、別スレッドに区切り直すコストは「次のタスクを進めるために、どれだけ広い範囲を読み直す必要があるか」で決まる、という指摘があります。前後の依存が強い作業を無理に切ると、再開のたびに同じファイルを読み直させることになり、かえって非効率です。
目安としては、切った先で読み直す量が少ないところ——工程の切れ目や、成果物が一度確定するところ——を境界にすると失敗しにくくなります。
そもそも脱線しにくい頼み方は?
予防に回るなら、依頼の出し方そのものを変えるほうが効きます。ポイントは、AIに長く頑張らせないことです。
- 10手かかる作業を一度に頼まず、3手ずつに割る
- 各区切りの終わりに「何ができたか」を短く出力させ、それを次の入力にする
- 参考資料は多いほど良いと考えず、本当に使うものだけ渡す(似た文章が増えるほど紛れる)
- ゴールは毎回書き直す。前に書いたから伝わっている、と考えない
- 途中で目的が変わったら、その時点で新しいセッションにする
4分未満の作業ならほぼ確実に成功する、という数字を逆から読むと、「AIから見て短い作業」に分解できた分だけ成功率が上がるということになります。エージェントを信用しないという話ではなく、得意な長さで働いてもらうという話です。
「任せる時間が長いほど成果が良くなる」という感覚には、それなりの背景があります。コンテキストウィンドウの数字は年々大きくなり、それが性能の指標のように語られてきたからです。ただ実際に測ってみると、枠の大きさと、その枠を最後まで均一に使える能力は別物でした。
だから当面の使いこなしは、枠を埋めきる方向ではなく、必要なものだけを短く渡して、こまめに区切る方向にあります。脱線に気づいたら、指示を足すより先に一度畳む。それだけで結果はかなり変わります。
よくある質問
AIエージェントが途中から指示を無視するのはなぜですか?
指示を消してしまったからではなく、コンテキスト(AIが一度に読む文章全体)が長くなるほど情報を均一に扱えなくなるためです。Chroma Researchの2025年7月のレポートでは、コンテキストの先頭と末尾の情報は参照されやすい一方、中間に置かれた情報は正答率が30%以上低下すると報告されています。会話が伸びると最初の依頼は中間の位置へ押し出されるため、残っていても効きにくくなります。
コンテキストウィンドウが大きいモデルを使えば脱線は防げますか?
防げません。Chroma Researchの検証では、20万トークンをサポートするモデルでも約5万トークン(ウィンドウの25%)の時点で顕著な劣化が始まりました。対応可能な長さは同じ品質で扱える長さを意味しないため、大きな枠を選ぶことより、何を入れるかを厳選・圧縮するほうが効果的です。
長い作業をAIに任せると、どのくらい成功率が下がりますか?
報告されている傾向では、熟練した人間が4分未満で終える作業は現行のフロンティアモデルがほぼ100%成功する一方、人間が4時間超かかる作業では成功率が10%未満に落ちます。また、短い単発なら40〜50%成功するタスクでも、長い対話履歴に埋め込むと10%未満まで落ちることがあります。
脱線したエージェントを立て直す一番簡単な方法は何ですか?
修正指示を足すのをやめ、「ここまでで確定したこと・未完了のこと・次にやること」を要約させ、その要約と元の依頼文だけを持って新しいセッションで再開することです。作業ログ全体は持ち込みません。研究側でも、進行状況の要約と直近の行動だけを条件にするContext Foldingのような手法が長時間タスクの管理策として検討されています。
※記事で使用した内容・数値は変更される場合があります。最新情報は公式サイトをご確認ください。