この連載について
LLM(大規模言語モデル)を実務で使い倒すために知っておきたい「LLMのクセ」を全10回で解説する連載の第5回です。
- ポチョムキン理解(第1回)
- Lost in the Middle(第2回)
- Context Rot(第3回)
- Sycophancy(迎合)(第4回)
- Context Handoff ← 今回
- Prompt Distillation
- Project化の罠
- GPT化の罠
- Instruction Drift
- AI成果物の品質保証
第3回で「フェーズごとにチャットを切り、会話ではなく成果物だけを引き継ぐ」という運用を紹介しました。Context Rot対策としては正解です。しかしあのとき、「成果物に書かれていない暗黙の文脈は毎回失われる」という落とし穴を予告していました。今回はそこを掘ります。Context Handoff——引き継ぎという行為そのものが持つ、情報損失の問題です。
Context Rotとの違い:「腐る」のではなく「渡す瞬間にこぼれる」
- Context Rot(第3回):1つのコンテキストの中に情報が溜まり続けることで品質が劣化する
- Context Handoff(今回):送り側・受け側のコンテキストが両方とも健全でも、受け渡しの瞬間に情報が失われ、歪む
似て非なる問題です。腐った会話から作った要約が劣化するのは当然ですが(第3回で扱いました)、健全な会話を正しい手順で要約したつもりでも、受け渡しという行為自体の構造的な欠陥によって情報は失われます。
深刻さを示す実例があります。ある研究では、AIが自動生成した208件のカルテ要約を医師が確認したところ、約3分の1で重要な情報の欠落が見つかったと報告されています。医師が欠落に気づかずサインすれば、不完全な記録がそのまま後工程(保険の事前承認など)に流れ、原因不明のまま2週間後に却下が返ってくる——欠落は、発生地点から遠く離れた場所で、原因を辿れない形で発火します。
直感を作る:伝言ゲームと翻訳往復
この現象、「要はAIの伝言ゲームでしょ?」と思うかもしれません。半分正解ですが、人間の伝言ゲームとの違いを押さえると、問題の本当の怖さが見えてきます。
人間の伝言ゲームが崩れる原因は3つあります。①聞き間違い(入力ノイズ)、②記憶の劣化(保持ノイズ)、③言い直すときの言い換え(再構成ノイズ)。AIの引き継ぎには①と②がほぼ存在しません。テキストは一字一句正確に渡り、渡った瞬間の劣化もない。つまりAIの伝言ゲームは、③の再構成ノイズだけが純粋に残った伝言ゲームです。
そして人間版との決定的な違いが2つあります。
違い1:人間は「短くなる」方向に壊れるが、AIは「補完される」方向にも壊れる。 人間は忘れるので情報が減っていきます。AIも要約で情報を減らしますが、受け取った側が欠けた部分を「もっともらしく埋めて」しまうのです。人間の伝言ゲームの最終走者は「よく聞き取れませんでした」と言えますが、AIは欠けた根拠を推測で再構築し、自信満々に喋ります。欠損が「欠損の顔」をしていない——これがAI版の悪質さです。
違い2:人間は「相手が何を知らないか」をある程度推定できるが、AIの受け取り側は原理的にできない。 人間なら「あれ、この件の背景を聞いていないな」と気づけます。AIの受け取り側にとっては、渡されたものが全世界です。穴があっても、穴の周りの輪郭ごと存在しません。
もう1つ、有名な現象で例えると「翻訳の往復」です。英語→日本語→英語と何往復もすると、"I miss you"→「会いたい」→"I want to see you"のように、各ステップは全て"正しい翻訳"なのに、全体として元と違うものに変わっていきます。AIの引き継ぎ劣化はこれと同型で、各ステップの要約は単体では"正しい要約"なのに、引き継ぎを重ねるごとに元の意図からドリフトしていきます。しかも翻訳往復と同じく不可逆——「会いたい」からは、元が"I miss you"だったのか"I want to see you"だったのかを復元できません。
では、なぜ「毎回もっともらしい方向に丸められる」のか。ここからがLLMの仕組みの話です。
メカニズム:3つの機構が引き継ぎで合流する
機構①:分布の重心への回帰——珍しい情報から順に消える
LLMの生成は毎トークン、「次に来る確率が高い語」の分布からのサンプリングです。要約とは「長い情報を、短い語数で最も尤もらしく言い直す」タスクなので、モデルは圧縮の過程で必然的に、訓練データ全体で高頻度なパターン=分布の重心に引き寄せられます。
元の会話にあった情報が「訓練データでよく見る典型パターン」から外れているほど、要約時に典型的な表現に置き換えられる確率が上がります。
- 「暫定案(条件付き)」→「決定事項(無条件)」:断定文の方が訓練データで圧倒的に多い
- 「このプロジェクト固有の例外ルール」→「一般的なベストプラクティス」:固有情報より一般論の方が高頻度
- 「AとBを比較しBに決めたが、Cという懸念が残る」→「Bに決定」:複雑な条件構造より単純な結論の方が"自然"
つまり劣化はランダムな欠落ではなく、「珍しい情報ほど選択的に消え、典型的な情報ほど生き残る」という系統的なフィルタです。そして実務で本当に重要な情報は、大抵「そのプロジェクト固有の、典型から外れた事情」です。要約は、一番消えてほしくない情報から順に消していくという最悪の性質を持っています。翻訳往復のドリフトの機構的な正体もこれです——毎ステップ、分布の重心方向に少しずつ引っ張られている。
機構②:存在しないものへのattentionは計算できない——穴は内側から見えない
第2回で「LLMにはシンボルテーブルがなく、attentionという学習された関連度計算しかない」と説明しました。重要なのは、attentionは「コンテキストに存在するトークン同士」の間でしか計算されないことです。存在しないトークンへの注意は、数学的に定義できません。
人間が「この説明、足りなくない?」と気づけるのは、頭の中に「この種の引き継ぎには普通これが含まれるはず」というスキーマが独立して存在し、目の前の資料と突き合わせられるからです。LLMも訓練からスキーマ的な知識は持っていますが、問題は受け取った資料が"完結した文書の顔"をしていること。整った構造化文書は「これで全部です」という暗黙のシグナルとして働き、モデルの生成を「与えられた情報の範囲内で完結させる」方向に条件付けます。
さらにここに第4回の迎合が合流します。「この資料をもとに設計して」と言われたモデルにとって、「資料が不十分で設計できません」と返すのは、訓練で焼き付いた「協力的であれ」に逆らう応答です。**欠落を指摘するより、あるもので何とかする方が"高報酬パターン"**として学習されている。だから穴があっても、埋めて進んでしまうのです。
機構③:確率分布は常に定義される——欠けた根拠は「もっともらしく」再生される
欠けた根拠を推測で埋める現象(実務者の間で「幻覚のロジック(hallucinated logic)」と呼ばれます)の機構は、ハルシネーションと同根です。LLMは「知らない」と「知っている」を区別する内部フラグを持たず、どんな入力に対しても次トークンの確率分布は必ず定義され、必ず何かを出力できてしまいます。「根拠が渡されていない」状態でも、「この結論ならこういう根拠がありがち」という分布は訓練データから作れてしまうため、もっともらしい根拠の再構築が、通常の生成と全く同じ顔をして出てくるのです。
まとめると:
機構①(要約時):分布の重心への回帰。珍しい情報から選択的に消える
機構②(受領時):存在しないものにattentionは向けられず、完結した文書の顔+迎合が「穴を埋めて進む」を後押しする
機構③(利用時):欠けた部分がもっともらしく補完され、欠損の顔をしなくなる
意外な実験結果:「賢い要約」は「機械的なマスキング」に負けることがある
この機構理解を裏付ける実験があります。JetBrainsの研究チームが2025年、250ターンにわたるコーディングエージェントの行動履歴を対象に、2つの圧縮戦略を比較しました。
- 観測マスキング:古い環境観測(ファイル内容、コマンド出力)をプレースホルダーに置き換えるだけ。推論と行動は無加工で残す
- LLM要約:別のモデルで過去のやり取りをナラティブな要約文に圧縮する
どちらもコストを50%以上削減しましたが、観測マスキングの方がLLM要約と同等以上の成績を出しました。あるモデルでは、マスキングの方が2.6%高い解決率を52%安いコストで達成しています。さらにLLM要約は、「もうこのタスクは終わった」という自然な終了シグナルを覆い隠すことで、エージェントの行動を13〜15%長引かせていました。
「賢そうな要約より、機械的な間引きの方が信頼できる」——直感に反しますが、機構①を思い出せば当然です。要約は生成タスクであり、生成を経由するたびに分布の重心への回帰が起きる。マスキングは生成を経由しないので、劣化のしようがない。この「生成を経由させない」という原則が、対処法の背骨になります。
対処法の前に:ありがちな対策がなぜ効かないか
機構レベルの理解ができると、一見良さそうな対策の穴が見えます。ここを飛ばすと「対策したつもり」で終わるので、先に潰しておきます。
「根拠と確信度を書かせればいい」→ 半分効かない。 根拠欄・確信度欄に書かれる文章自体が、今まさに批判している要約プロセスと同じモデルの生成物です。「もっともらしい根拠」「もっともらしい確信度」が生成されるだけで、機構①をすり抜けられません。第2回のチェックポイントのゲーム化、第4回のメタ迎合と同じ構造で、「自己申告させる」系の対策は、申告内容自体が生成物である限り同じ病を継承します。
「受け取り側に欠落を探させればいい」→ 原理的に限界がある。 機構②の通り、受け取り側単独では「形式的な欠落」(空欄がある)しか拾えません。「一見完結して見える資料に、本質的な制約が最初から書かれていない」という内容レベルの欠落は、原文を知らない側からは検知不可能です。
効く対策の共通原則はこうなります:劣化の経路を「生成」から「機械的操作(引用・分解・差分・停止命令)」にできるだけ寄せる。
対処法:原文ママ戦略——「要素分解×原文引用×差分監査」
なぜ「細かく分解する」こと自体が対策になるのか
機構①の引力の強さは圧縮率に比例します。1万トークンの会話を200トークンの1段落に押し込む(圧縮率50倍)のと、50個の要素に分解して1個あたりの情報を薄く保持するのとでは、要素1個あたりの圧縮率がまるで違います。粗い要約は「全体を1つの分布の重心に押し込む」作業ですが、細かい要素分解は「小さい単位ごとに薄く圧縮する」作業であり、圧縮率が低いほど典型パターンへの回帰は弱まります。第1回のPhase A(概念のチェックリスト分解)と同じで、粒度を細かくすること自体が劣化を減らす直接的な手段です。
ただし1つだけ、分解でも埋まらない穴があります。「何を要素として切り出すか」という選定行為自体は生成タスクです。一度しか言及されない例外条件は、モデルが「要素にする価値がある」と認識しなければリストに載らないまま消えます。分解は「要素になったものの劣化」を防ぎますが、「要素になるかどうかの選定時の見落とし」までは防げない。だからStep2の差分監査とセットで初めて完成します。
Step 1:要素分解プロンプト(原文ママ+希少情報優先)
フェーズ終了時、引き継ぎ元のチャットで実行します。
これから、この会話を次フェーズに引き継ぐための「要素分解」を行います。
要約(パラフレーズ)ではなく、機械的な抽出作業として実施してください。
# 手順
1. この会話の中から、次フェーズの判断に影響しうる「独立した事実・決定・制約」を
できるだけ細かい単位で洗い出してください。1つの要素に複数の論点を
混在させないでください(分解の粒度が粗いほど、あとで内容が歪みます)。
2. 各要素は次の形式で出力してください。
- ID: EL-001のような連番
- 内容: 何が決まった/分かったかを一言で
- 根拠(原文引用): 会話中の該当箇所を、言い換えずそのまま抜き出してください。
一言一句そのままにできない場合は「[要約不可・該当箇所:おおよそ〇〇の発言]」
と明記し、パラフレーズより原文の抜粋を優先してください
- 確信度: 高(明言・複数箇所で一致)/中(1箇所のみ明言)/低(推測・示唆のみ)
- 言及頻度: この会話で何回話題に上ったか。1回しか言及されていない
例外条件・制約・数値は、頻出する一般的な結論より優先して要素化して
ください(見落とされやすいため)
3. 全要素を出し終えたら、この会話をもう一度最初から読み直し、要素化されて
いない発言・条件・数値が残っていないか確認してください。特に条件節
(〜の場合は除く、〜以外は等)と数値は見落としやすいので重点的に確認し、
見つかった場合は追加の要素として出力してください。
設計意図を明記しておきます。「根拠は原文引用、パラフレーズ禁止」は、生成(=劣化の経路)をコピペという機械的操作に置き換えて機構①を回避するため。「言及頻度」フィールドは、機構①が「典型的な情報ほど生き残る」フィルタである以上、その裏返しとして"1回しか出てこない情報"を明示的に優先させ、選択的消失にピンポイントで対抗するためです。
Step 2:差分監査プロンプト(原文が生きているうちに、1回だけ)
Step 1の出力直後、同じチャット内で続けて実行します。ここが最重要ポイントです。原文と要素リストの両方が同時に視野に入っている場所でしか、欠落は「差分」として可視化できません。新フェーズに移ってからでは、比較対象の原文が失われていて手遅れです。
Step1で作った要素リストと、この会話全体を突き合わせてください。
「会話の中にあったのに、リストのどの要素にも含まれていない情報」を
全て洗い出してください。特に、要素として切り出す価値がないと
判断されて見落とされた可能性のある、一度だけ触れられた条件・
発言者が念のため付け加えた注記を重点的に探してください。
見つかった場合は、EL-XXXの続き番号で追加してください。
機構②は「存在しないものにattentionを向けられない」問題でしたが、原文がまだコンテキストにあるこの時点なら、「原文にあってリストにない」という存在するもの同士の差分という、attentionが計算可能な形式に問題を変換できます。第1回のPhase A(1回だけの人間検証)と同じ設計思想で、このタイミングを逃すと二度とできない検証です。
Step 3:受け取り側プロンプト(UNKNOWN補完の禁止)
新フェーズのチャットの冒頭、要素リストを貼り付ける際にセットで縛ります。
以下は前フェーズからの引き継ぎ要素リストです。
# 引き継ぎルール
- このリストに書かれていることだけを前提としてください
- 確信度「低」の項目、および「未確認」「不明」とされた項目について、
それらしい内容を推測で補って作業を進めることを禁止します。
その項目が必要になった時点で作業を止め、私に確認してください
- 「一般的にはこうだろう」という推測での代替は、明確な誤りとして扱います
- リストにない背景・経緯が必要になった場合は、憶測で埋めず
「EL-XXXの決定経緯が必要」と質問してください
{Step1+Step2の要素リストを貼り付け}
まず、このリストを読んで、作業開始前に確認が必要な不明点があれば挙げてください。
機構③(もっともらしい補完)への対処です。「埋めずに止まる」は訓練上のデフォルト(協力的であれ)に逆らう振る舞いなので、強く・明示的に縛る必要があります。
運用フローまとめ
| ステップ | 実行場所 | 対応する機構 | 操作の性質 |
|---|---|---|---|
| Step1 要素分解 | 引き継ぎ元チャット | 機構①(重心への回帰) | 引用=コピペ(生成を回避) |
| Step2 差分監査 | 同じチャット、直後 | 機構②(穴が見えない) | 差分=存在するもの同士の比較 |
| Step3 補完禁止 | 引き継ぎ先チャット冒頭 | 機構③(勝手な補完) | 停止命令 |
正直な限界
3段構えでも、リスクはゼロになりません。引用する発言を「選ぶ」段階の選択バイアス、差分監査自体の見落とし、「止まれ」という指示への追従がどこまで持続するか(これは第9回のInstruction Driftに直結します)——生成モデルを経由する限り、構造的なリスクは完全には消せません。
だからこそ最後の砦として、要素リストには原文の引用とIDを残しています。受け取り側が「この結論、本当か?」と疑ったとき、要約を信じるか捨てるかの二択ではなく、原典に当たるという第三の道が残っている状態——それがこの設計の本当の狙いです。完全に防ぐのではなく、劣化の経路を生成から機械的操作に寄せ、残ったリスクには検証の導線を残す。これが現時点で辿り着ける、最も誠実な着地点だと思います。
まとめ
- Context Handoffは、送り側・受け側が両方健全でも受け渡しの瞬間に情報が失われる、Context Rotとは別種の問題
- AIの引き継ぎは「聞き間違いと物忘れのない伝言ゲーム」。残るのは再構成ノイズだけだが、欠損がもっともらしく補完されて欠損の顔をしなくなる点と、受け取り側が穴を原理的に検知できない点で人間版より悪質
- 劣化の方向はランダムではなく、翻訳往復と同じ**「分布の重心への系統的ドリフト」**。珍しい情報=実務で一番重要なプロジェクト固有の事情から順に消えていく
- 機構は3つ:重心への回帰(要約時)・穴へのattention不能+迎合(受領時)・もっともらしい補完(利用時)
- 「根拠を書かせる」「受け取り側に探させる」だけでは、申告内容自体が生成物なので同じ病を継承する
- 効く対策の原則は**「生成」を「機械的操作」に置き換える**こと:要素分解(圧縮率を下げる)×原文引用(コピペ化)×差分監査(原文が生きているうちに1回だけ)×補完禁止命令
- それでも残るリスクのために、原典への導線(引用+ID)を最後の砦として残す
次回は、長い会話やドキュメントを1つの再利用可能なプロンプトに凝縮するPrompt Distillationを扱います。今回の要素分解の「攻め」の使い方——引き継ぎのためでなく、資産化のための蒸留です👀
参考文献
- JetBrains Research (2025). 観測マスキングとLLM要約の比較研究(SWE-bench Verified、250ターン軌跡)
- XTrace (2026). AI Agent Handoff: Why Context Breaks & How to Fix It.
- CogniSwitch (2026). The Handover Problem — Why AI agents lose context in transit.
- npj Health Systems (2025). AI生成カルテ要約208件の医師評価研究