Skip to content

[Deep Research] Add claim–evidence verification and bidirectional citation traceability #13

Description

@helsome

Background

Deep Research 的报告产出需要做到 claim-level 可审计:报告中的事实、归纳结论以及根因/因果结论,都应能逐条回到实际来源证据,并能从原始证据反查哪些摘要/结论引用了它。

这里的“一对一校验”指 每个 atomic claim 都必须独立完成证据校验,而不是把数据模型强制设计成数据库层面的 1:1。实际关系需要支持 many-to-many:一个结论可能需要多个 evidence span 才能支撑,同一段事实也可能支撑多个结论。

Requirements

  • 在研究报告 synthesis 阶段,为每个可验证的事实性、因果性、根因性结论生成稳定的 claim_id
  • Evidence 必须定位到原始 source 的具体 passage/span,而不是只保存 URL 或文档级引用;至少保留足以恢复原文位置的 source/document identity、excerpt 和 location metadata。
  • 对每个 claim 单独执行 evidence verification,至少输出:
    • supported
    • contradicted
    • insufficient_evidence
  • 持久化双向关系:
    • claim -> evidence_refs
    • evidence_ref -> claim_ids
  • 上述映射需要跨越 streaming、report assembly、持久化、重新加载以及导出过程,不能只存在于单次 Agent runtime 内存中。
  • 报告 UI / 输出支持:
    • 点击摘要、结论或 citation,可跳转到对应原始引用 passage,并高亮对应证据;
    • 在原始 evidence passage 处可以反查引用它的摘要/结论。
  • unsupported / contradicted 的 claim 不允许无提示地作为“已证实结论”进入最终报告;需要明确实现标记、降级或阻断策略。
  • verification 结果需要提供 machine-readable 结构,供后续 Gold Case / Langfuse evaluation 使用。

Acceptance Criteria

  • 测试报告中的每个事实性/因果性 claim 都有 evidence link,或明确标记为 unsupported / contradicted
  • claim -> evidence 的跳转在报告重新加载后仍然有效,并定位到具体原始 passage,而非只打开来源首页。
  • evidence -> claim 的反向绑定可用。
  • 支持 multi-source claim,以及一个 evidence 被多个 claims 引用的场景。
  • 构造一个“看似合理但来源并不支持”的根因结论,系统能够识别为 insufficient_evidencecontradicted,不能自动放行。
  • 覆盖必要的 unit / integration tests。
  • 至少完成 1 次真实 Deep Research E2E 测试,走真实模型 + 实际 retrieval/search 路径;只跑 mock / fixture 不算完成。
  • PR 中附上真实测试 query、最终 report、claim-evidence mapping、verifier 输出,以及前端双向跳转的截图或录屏。

Notes / Non-goals

  • 不要求强制 1:1 relational schema;重点是“每个 claim 必须被独立校验”。
  • Verifier 自己生成的解释不能替代 source evidence。
  • 不要只做 citation UI;后端必须存在稳定、可持久化、可供评测消费的 claim/evidence 数据关系。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

claimedClaimed by a contributor and currently in progress

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions