zcbot/skills/paper/references/citation_verify.md

3.8 KiB

引文三角核验协议 (language 无关)

论文最致命的失分是编造引文(hallucinated citation)与引而不实(cite 的文献不支撑该论断)。 本协议把每条引文从"看起来对"逼到"经得起查"。移植自 ARS 的 triangulation + claim-faithfulness 思路, 后端换成 zcbot 自己的 documents / research(它们本就带 DOI + md_content,做 anchor 比对反而更顺)。

这是协议不是脚本 —— 你(模型)拿 host-side tool 逐条执行。quality_check.py 只做机械的 orphan/uncited/编号核对,真伪与支撑度靠本协议。

何时跑

  • 阶段四逐章起草后、阶段六渲染前,对所有引文跑一遍
  • 用户自带的引文清单也要跑(用户也可能记错卷期/页码)

三层核验(逐条引文执行)

第 1 层 — 存在性 (exists)

每条引文先确认"这篇文献真实存在":

  1. documents 库语义检索(材料类优先,中英 query 都行)/ researchsearch() / get_paper(doi)
  2. 命中 → 记下真实 DOI / 作者 / 年份 / 期刊 / 卷期页;以库里返回为准,不沿用记忆里的字段
  3. 两个库都查不到 → 标 [未核实],不得编造条目;告诉用户"这条找不到来源,请提供 PDF/DOI 或删去该论断"

第 2 层 — 三角印证 (triangulate)

关键论断(创新点对比、机理依据、定量结论)的支撑引文,至少两个独立信息源一致才算稳:

  • documents 命中 + research/DOI 一致 → 通过
  • 仅单一来源 → 标"单源,谨慎",提示用户复核
  • 不同来源字段冲突(年份/卷期不一致)→ 以可验证的 DOI 元数据为准,修正条目

第 3 层 — 支撑度 (claim-faithfulness)

最容易翻车的一层:文献存在,但并不支撑你写的那句话。逐条做:

  1. 抓回该文献的 md_content(documents 直接给整篇 Markdown)/ fetch_xml / fetch_pdf(research)
  2. 在原文里定位与论断相关的锚点证据:一句 ≤25 词的原文引语 + 出现的段落/小节位置
  3. 判定支撑度三档:
    • support:原文明确支撑该论断 → 通过
    • partial / 需限定:原文只支撑部分,或有前提条件 → 改写论断使之与证据相符(别让引文背锅)
    • not-support / 反向:原文不支撑甚至相反 → 删除该引用或换文献;绝不硬挂
  4. 抓不到全文(无 PDF/XML)→ 至少用 abstract 做弱核验,标"仅摘要核验",提示用户终审时复查

产出:核验台账 CITATIONS.md

<task_dir>/CITATIONS.md 记一份可复盘的台账(append,一条引文一行):

# 引文核验台账
> 每条引文的存在性/三角/支撑度核验结果。渲染前所有条目应为 verified 或经用户确认。

- [1] Provis & Bernal 2014, Annu. Rev. Mater. Res. 44:299 | exists:✓(documents+DOI) | triangulate:✓ | claim:support "geopolymers form via dissolution-polymerisation"(§2.1) | status: verified
- [2] <author> <year> ... | exists:✓ | claim:partial → 已把"显著提高"改为"在 28d 提高约 12%" | status: verified-revised
- [3] <author> ... | exists:✗ 两库未命中 | status: 待用户提供来源

与编号流程的衔接

  1. 起草时占位 [CITE-<keyword>](见 cite_*.md)
  2. 本协议逐条把占位映射到已核验的真实文献
  3. 仅 status=verified / verified-revised / 用户确认 的才进入编号
  4. 按文中首次出现顺序编 [1][2]...,写 06_references.md
  5. quality_check.py 兜底查 orphan/uncited/编号连续

铁律

  • 任何 status 非 verified 的引文不得带进最终稿(要么核实、要么删论断、要么用户拍板)
  • 不得为凑引文数编造"看起来合理"的文献
  • 支撑度不足时改论断迁就证据,不是改证据迁就论断
  • 两库都查不到时如实告诉用户,给出"提供来源 / 删除论断"两个选项