Claude Code 学习站

溯源与多源综合

考点 5.6 · Provenance & synthesis · 所属域权重 15% · 上下文管理与可靠性

本页目录5

这个考点是什么

多源综合(multi-agent synthesis)场景下,多个子 agent 各自检索、分析不同来源后,由一个 synthesis agent 把这些发现汇总成最终报告。

这个考点考的不是"怎么写 prompt 让汇总更通顺",而是汇总过程中最容易丢失、也最难事后补救的一类信息:溯源(provenance)——每个结论到底来自哪个来源、这个来源本身质量如何、是否与其他来源冲突、冲突是真矛盾还是时间差异。

典型失败模式是:子 agent 各自输出一段自然语言摘要,synthesis agent 再把这些摘要"揉"成一段更精炼的 prose。这个揉合过程本质上是有损压缩——claim 和它的出处、方法论、置信区间、发布时间等 metadata 会在总结中被悄悄丢掉,报告读起来通顺但"结论对不上来源",审阅者无法验证任何一条数字。

更进一步,当不同来源给出不同数值时(比如 web search 给出无方法论说明的估计值,文档分析给出带置信区间的估计值),或者不同来源的数据其实分属不同时间点(增长趋势被误判为矛盾),synthesis agent 如果只处理无结构的文本,就只能靠随意挑一个、取平均或含糊其辞来"绕过"这个问题——这些都是错误处理方式。

这个考点要求识别:溯源与冲突处理必须做成 pipeline 里的结构化数据设计,而不是靠自然语言指令临时补救。

为什么考

这类题目通常给出一个具体的汇总失败场景——最终报告里的某个数字/结论查不到出处,或者两个来源的数值被错误地判为矛盾(或被错误地合并为一个数)——然后问"什么结构性改动能从根上防止这个问题"。

干扰项的设计套路很固定:一种是治标不治本的补偿性措施(比如额外记一份原始输出日志,或事后再跑一遍验证),另一种是用简单启发式处理冲突(选更新的、选同行评审的、直接取平均),还有一种是把要求写成自然语言软指令("记得注明来源")而不是结构化字段。

出题角度反复强调同一个原则:归因和置信度信息必须作为结构化数据(claim-source mapping、citation_id、publication_date、confidence/methodology 字段、conflict_detected 标志)贯穿整条 pipeline,而不是依赖某个 agent 在总结时"记得"保留。

另外还会单独考 hallucination 的定义和缓解手段,考察是否会把溯源缺失和模型胡编两个相关但不同的概念混为一谈。

核心辨析

  1. 1

    溯源丢失的根因是"内容与元数据混在一起走 prose 通道"

    只要 claim 和它的来源是同一段自然语言文字的一部分,总结/压缩这一步就必然会有损丢失 metadata。正确做法是让子 agent 从一开始就输出结构化的 claim-source 映射(claim 文本、来源 URL、文档名、原文摘录),synthesis agent 合并这些映射而不是重新概括成一段话。

  2. 2

    记录原始输出日志 ≠ 结构性预防

    把每个子 agent 的原始输出存进日志,只是让人事后能"翻查"来对照,报告本身依然是无归因的,需要人工逐条核对。这是补偿性/取证手段(compensating control),不是从根上阻止归因丢失,题目里经常用它当高干扰项。

  3. 3

    冲突数值不能靠简单启发式解决

    "选更新的"混淆了时效性和准确性;"取平均"可能捏造出一个双方都不支持的数字;"偏好同行评审"这类规则往往和题目场景无关。正确做法是保留两个值,连同各自的 methodology/置信区间等 metadata 一起呈现,并用 conflict_detected 标志让报告显式呈现差异而不是替读者做决定。

  4. 4

    日期差异不等于矛盾

    不同来源的数字如果发布时间不同,很可能反映的是时间趋势(temporal progression)而非真实冲突。结构化输出里需要有 publication_date 字段,conflict_detected 应该只在同一时间段内数值不一致时触发,否则会把真实的增长趋势误判为数据打架并错误丢弃有效数据。

  5. 5

    citation_id 要在最早发现来源的地方分配,并单独维护一份结构化索引

    让 synthesis agent 产出 inline 标注引用编号的叙述文本,同时把完整的来源 metadata 放在一份独立的、原样传递的 citation index 里,而不是要报告生成 agent 在看到 prose 后自己去猜或补充引用——后者容易产生编造的引用。

  6. 6

    溯源缺失是 hallucination 的放大器,但两者不是一回事

    hallucination 指模型生成"看似合理但事实错误"的内容,是自回归生成的固有特性,不是 bug,也和 context overflow、temperature、system prompt 违规是不同概念。

    缓解 hallucination 的核心手段是 grounding(把文档放进 context、要求先引用原文段落再作答),而不是调高 temperature 或依赖模型凭记忆作答后再验证。

反模式对照

常见做法

synthesis agent 把所有子 agent 的输出直接总结成一段连贯的 prose 摘要再交给下一环节

正确做法

要求每个子 agent 输出结构化的 claim-source 映射,synthesis agent 合并这些映射而不是重新概括成自然语言

归因信息一旦混进自由文本,后续每一次总结/压缩都会造成不可逆的有损丢失,这是溯源丢失最常见的触发点。

常见做法

来源数值冲突时选"更近的"、"更权威的"或直接取平均给出一个折中数字

正确做法

保留双方数值及各自的 methodology/置信区间等 metadata,并用 conflict_detected 标志把差异原样呈现给最终读者

时效性和权威性都不能替代准确性判断,取平均更是可能捏造出一个没有任何来源实际支持的数字。

常见做法

发现两个来源数字不同就一律标记为矛盾,或直接丢弃较旧的数据

正确做法

要求结构化输出携带 publication_date,按时间段区分"同期真冲突"和"跨期趋势差异"

缺少时间维度的比较会把正常的增长趋势误判为数据打架,并因此丢弃本该保留的有效历史数据。

常见做法

用自然语言指令提醒 agent "总结时记得注明来源"

正确做法

在最早发现来源的 agent 处就分配 citation_id,并用独立的结构化 citation index 把 id 到来源的映射原样贯穿传递

软性的文字指令在 token 压力大、需要压缩上下文的环节最容易被模型悄悄忽略;citation_id 是可以被程序机械校验的结构化数据,不依赖模型"记得"执行。

练这个考点