上下文污染诊所
多轮对话为什么越聊越笨。核心反直觉链:污染来自模型自己的早期输出(一次误读锚定后续所有轮); 删光 assistant 消息本是 oracle,遇到指代型交互就崩(「就用你刚才定的那版」的先行词只在 assistant 侧); 污染会传染(归纳器看着 assistant 推理反而更差,指示「忽略」也补不上,唯一解是结构性排除); AC3 用「归并规约 → 审计 → 重构上下文」关掉 full 与 AO 差距的 55–84%。 四个 Tab 不调用任何模型——对话全部脚本预置,存活率 / 引用计数 / 字段 diff 为浏览器真算,策略战绩为文献值严格分栏。
🦠同一段对话,两种上下文视角
⚠ 对话为人工脚本预置订机票场景 10 轮(20 条消息)。第 3 轮 assistant 把「下周三」当成「这周三」出票; 之后错误草稿留在上下文里,第 5、9 轮生成时被回抄——这就是「污染来自模型自己的早期输出」。
user#0 · 轮 1
帮我订下周三去西安的机票,早一点的,经济舱。
assistant#1 · 轮 1
好的,下周三(11 月 18 日)北京—西安早班:CA1831 08:20 经济舱 ¥620、HU7707 09:30 ¥650。
user#2 · 轮 2
8 点那班,能选靠窗吗?
assistant#3 · 轮 2
可以,CA1831 靠窗余 12A。先为您锁定:下周三 11 月 18 日 CA1831 08:20 靠窗 12A,¥620。
user#4 · 轮 3
行,出票吧。顺便看下行李额度。
assistant#5 · 轮 3⚠ 误读发生点
已出票:这周三(11 月 11 日)CA1831 08:20 靠窗 12A,¥580,免费行李 20kg。
user#6 · 轮 4用户纠正
等等——我要的是下周三,不是这周三,麻烦改回来。
assistant#7 · 轮 4
抱歉看错日期!已改回:下周三 11 月 18 日 CA1831 08:20 靠窗 12A,¥620,行李 20kg。
user#8 · 轮 5
对。把最终行程发我邮箱。
assistant#9 · 轮 5错误复发
已发送至您的邮箱:这周三 11 月 11 日 CA1831 08:20 靠窗 12A ¥580——(汇总时从上下文里的旧草稿回抄,错误复发)。
user#10 · 轮 6
??我刚才明明确认的是下周三!
assistant#11 · 轮 6
非常抱歉,以您最新确认为准:下周三 11 月 18 日 CA1831 08:20 靠窗 12A ¥620,已重新发送。
user#12 · 轮 7指代
就用你刚才定的那版行程,别再动了。
assistant#13 · 轮 7
好的,行程锁定不再变更:CA1831 11 月 18 日 08:20 靠窗 12A。
user#14 · 轮 8
帮我加一个 20kg 的额外行李。
assistant#15 · 轮 8
已加购额外 20kg 行李 ¥120,合计 ¥740。
user#16 · 轮 9
到机场的大巴时间也帮我查下。
assistant#17 · 轮 9错误复发
建议这周三 06:10 从东直门乘坐机场大巴——(日期再次沿用上下文里的错误草稿)。
user#18 · 轮 10
最后再把整个行程汇总发我一次。
assistant#19 · 轮 10
行程汇总:下周三 11 月 18 日 CA1831 08:20 靠窗 12A,行李 40kg,合计 ¥740;大巴班次请以最新确认为准。
早期错误存活率 🧮 真算
携带错误的 assistant 消息
3 条
grep 特征 token:这周三 / 11 月 11 日 / ¥580
用户显式纠正次数
1 次
纠正后错误仍复发 2 次
AO 视角错误存活
0 条
assistant 侧整 体删除
full:错误存活率(真算)AO:恒 0(真算)用户纠正轮
📖 上下文污染来自模型自己的早期输出——早期一次误读会锚定后续所有轮;用户明明纠正了,错误回答还在上下文里持续带偏。
⚠ 曲线是脚本对话上的真算(存活率 = 携带错误前提的 assistant 消息 / 上下文中 assistant 消息总数), 演示的是「错误草稿留在上下文 → 后续生成回抄」这一失效机理,不是论文实测曲线。 注意存活率在第 6 轮后下降,是因为正确回复变多了、错误草稿仍躺在历史里——占比下降不等于污染消失。
⚠ 曲线是脚本对话上的真算(存活率 = 携带错误前提的 assistant 消息 / 上下文中 assistant 消息总数), 演示的是「错误草稿留在上下文 → 后续生成回抄」这一失效机理,不是论文实测曲线。 注意存活率在第 6 轮后下降,是因为正确回复变多了、错误草稿仍躺在历史里——占比下降不等于污染消失。
这个工具里哪些数字是真的
📖 文献值(arXiv:2611.00518,非本工具实算)
- · 污染来源:模型自己的早期输出;用户纠正后错误回答仍在上下文里持续带偏
- · AO 双面性:Lost in Conversation 上是 oracle;tau2-bench 有状态工具使用上全模型崩到 0%
- · 污染传染:看得到 assistant 推理的归纳器比不干预更差;指示「忽略」补不上;唯一解是结构性排除
- · AC3 战绩:Lost in Conversation 上关闭 full 与 AO 差距的 55–84%(四任务之三,第四个超过 AO);tau2-bench 上不崩但略逊 full context
- · WildChat 上 GPT-5-mini judge 全配置偏好 AC3(依 judge 而定);CollabLLM 结果混合
- · 忠实摘要加算力也复现不了增益(重写规约 ≠ 压缩历史)
🧮 浏览器内真算
- · 错误存活率曲线:逐消息统计「上下文中携带错误前提的 assistant 消息占比」(full 与 AO 两种视角)
- · 错误引用计数:grep 特征 token(这周三 / 11 月 11 日 / ¥580)
- · 四策略的错误断言数 / 指代断链数 / 任务要点保留数 / 近似 token 体量
- · AC3 三步规约与三模式归纳产物的字段级 diff(正确 / 污染 / 丢失判定)
- · 摘要质量曲线的采样噪声(mulberry32)
⚠ 脚本预置 / 教学模型
- · 全部对话、AC3 三步规约、三模式归纳产出为人工脚本预置,明写不调用任何模型
- · carriesError / referent 等标记为脚本人工标注;真算的是统计与 diff,不是生成
- · 摘要质量曲线的形状参数与 AC3 质量标尺 0.9 为教学设定,数值非实测
- · token 体量用浏览器近似分词(中文按字),非真实 BPE
⚠ 本工具不调用任何模型或后端服务。论文一手源:Agentic Context Management for Multi-Turn Human-AI Conversations(Matthew Ho / Chenglong Wang / Baolin Peng / Nebojsa Jojic / Philippe Laban / Michel Galley / Jianfeng Gao / Lianhui Qin(8 作者),v1 2026-10-31,快照日 2026-11-06 abs 回源)。 本工具的「错误存活率 / 引用计数 / 字段 diff」是脚本对话上的演示性真算,与论文的 benchmark 口径不同,已严格分栏。