作者实测发现删除对话中的错误转折点后,多个模型仍基于错误中间结果作答,提出ThoughtDAG Context Repair Benchmark评估此类问题。
我以为删除一个错误的轮次就能修复 LLM 对话。
在一个刻意简化的案例中,对话以验证值"每个箱子 24 个零件"开始。后续某个轮次错误地将其改回了 30。多个下游答案基于这个错误进行了计算,并记录了 131 作为总数。

我删除了那个虚假轮次,再次提出了同样的最终问题。
九个大模型端点中有三个仍然回答了 131。
错误的源头已经消失。但它的后果仍然残留在上下文中。
这个结果促使我构建了 ThoughtDAG Context Repair Benchmark,一个公开数据集,包含 27 个图结构案例和 1485 个捕获的模型状态。
一个错误的轮次,五种上下文图
旗舰案例使用算术,使得每个答案都可以被精确评分,无需 LLM 裁判。
固定输入为:
24 个验证过的每箱零件数
正确答案应为:
4 × 24 + 11 = 107
受污染的分支指示模型忽略已验证的重新计数并回到 30。其后代随后计算出 120,加上散落的零件,并保留 131 作为当前工作总数。
我在五种图结构条件下提出了相同的最终问题:
仅删除虚假源头
删除被污染的子图
删除源头并重新计算其后代

所有九个端点在干净上下文下都返回了 107,在受污染上下文下都返回了 131。在仅删除源头之后,六个恢复到 107,而三个仍然返回 131。移除被污染的子图或重新计算其后代,使所有九个端点在此案例上都恢复到 107。
存活的错误并非隐藏记忆。后续对话轮次中仍包含源自已删除源头的值。一旦生成的文本成为下一次请求的一部分,它就可以独立于创建它的轮次携带错误。
移除证据与修复后果是两种不同的操作
线性记录让错误看起来是局部的。一条消息错了,我们就编辑或删除那条消息。
长对话包含依赖关系。一个答案可能基于一个错误声明进行计算。另一个可能对该计算进行了总结。第三个可能将总结视为既定状态。
此时,上下修复包含两个部分:
移除不良证据。
修复或移除由其派生的下游文本。
图结构使这些后代变得可见。它也为我们提供了可比较的显式干预手段。
公开试点包含九个独立任务族,传播深度为一、二、三。每个案例在相同的五种图结构条件下进行评估。九个大模型端点产生了 1215 个主要结果。受控推理比较额外增加了 270 个。
标题修复率仅包括在干净上下文下正确、在污染后变错的模型-案例。这在每个端点发生了 18 次, panel 产生了 162 个配对的模型-案例结果。

仅删除源头在大多数情况下有效,但仍有十个结果携带了错误。其中九个失败涉及虚假 supersession,即一个曾经正确的值被错误地回滚了。当回滚本身消失后,其回音看起来就像普通的对话历史。
子图剪枝是此次试点中最可靠的操作,因为它移除了虚假源头及其每个冻结陈述的后代。重新计算保留了更多的推理路径,但每个重新生成的步骤都引入了另一次出错的机会。有一个重新计算正因为这个原因失败了。
这暗示了一条实践规则:
当后续轮次不依赖于该错误时,使用源头剪枝。
当路径有价值且重新生成的输出可被检查时,重新计算后代。
当最需要可靠切除时,移除受影响的子图。
推理有助于修复上下文,而非抵抗污染
我还在一个纯文本端点上运行了一次受控比较,推理在每个请求中被显式启用和禁用。
在该端点上,模型在两种设置下都因污染而在相同的 18 个案例中脱轨。差异出现在仅删除源头之后:
启用推理:16 / 18 修复
禁用推理:2 / 18 修复
在两种设置下,重新计算都修复了 18 / 18。

这是一个端点和一个提供商控制。它不能确立关于推理模型的一般性结论。它确实表明了为什么上下文敏感性和上下文修复应该被分别测量。在此运行中,推理并未阻止模型接受冲突的上下文。它帮助模型协调了部分修复后剩余的内容。

数据集已公开
我在 Hugging Face 上发布了案例和结果作为数据集:
浏览数据集和结果
阅读交互式报告
检查基准测试管道
数据集查看器暴露了三种配置:
cases:图结构、干预手段、标准答案和评分器
endpoint_results:九端点 panel 的 1215 行
reasoning_ablation:受控比较的 270 行
可执行管道和不可变追踪保留在 GitHub 仓库中。Hugging Face 数据集是研究分发层,因此证据可以无需克隆应用程序即可浏览和加载。
这些是试点和参考结果。任务是合成、符号化、仅英文的,并通过精确数值匹配评分。一个族内的深度变体是重复测量。端点 panel 是一个便利样本,几个免费端点可能会随时间漂移。
该基准测试不解释模型生成某个 token 的原因。它测试的是一个更窄的问题:当我们改变上下文图时,答案是否按预期方向改变了?
这就是 ThoughtDAG 在此的角色。它的连线决定了哪些上游节点进入下一次请求。图编辑成为了一种实验性干预,而非视觉隐喻。
本系列的前两篇文章专注于使上下文可见和可编辑。这个基准测试是第三步:使上下文变更可测试。
如果你从事长期运行的 LLM 对话,我特别重视你对案例设计的批评和对下一个控制条件的建议。
Repository: github.com/chenxiachan/thoughtdag