# 数据校验协议 > 防止错误数据污染 wiki。可验证的数据必须验证,不可验证的必须标注。 ## 核心原则 **Wiki 是知识资产,不是垃圾桶。** 错误数据进入 wiki 后会被后续 query 引用、被其他 ingest 当作"已有结论"比较,错误会 compound。必须在入口把关。 ## 校验时机 在 ingest 流程中,**读取源文件之后、写入 wiki 之前**插入校验步骤: ``` 读源文件 → 提取关键声明 ↓ 分类:可验证 vs 不可验证 ↓ 可验证 → 用工具交叉验证 → 通过/不通过/无法验证 ↓ 写入 wiki(带校验标注) ``` ## 可验证数据的识别 以下类型的声明应该尝试验证。**具体用什么工具取决于用户环境中可用的 MCP/工具**——下表是常见映射,不是硬性要求: | 数据类型 | 示例 | 常见验证工具(视环境而定) | |---------|------|--------------------------| | 上市公司财务数据 | 营收、净利、ROE | 金融数据 MCP(如 tushare、ifind、wind) | | 基金/年金规模 | 管理规模、份额 | 金融数据 MCP | | 宏观经济指标 | GDP、CPI、PMI | 金融数据 MCP | | 监管文件编号 | 人社部发〔2026〕XX 号 | WebSearch | | 公司基本信息 | 成立时间、注册资本、法人 | 金融数据 MCP / WebSearch | | 行业统计数据 | 市场规模、增速、份额 | WebSearch / 行业数据 MCP | | 日期和事件 | "2026年3月发布" | WebSearch | **工具发现**:Agent 在首次 ingest 时通过环境检查(见 `source-validation.md`)确认可用工具。没有对应工具时,该类数据标注 `verified: false`,不阻塞 ingest。 **不可验证的声明**:观点、分析、预测、推断、主观评价。这些跳过校验,按 source-validation.md 的来源分级标注。 ## 校验流程 ### Step 1: 提取可验证声明 从源文件中识别包含具体数字、日期、文号的事实性声明: ``` 源文件原文: "截至2024年底,中国企业年金基金累计规模达到3.2万亿元,覆盖企业12.8万家" 提取出 2 个可验证声明: - 声明 A:企业年金累计规模 3.2 万亿(截至 2024 年底) - 声明 B:覆盖企业 12.8 万家(截至 2024 年底) ``` ### Step 2: 尝试验证 按优先级使用可用工具: ``` 1. 专业数据 MCP(如金融、医疗、法律等领域数据接口):有接口 → 直接查 2. WebSearch:搜索官方发布的同期数据 3. Wiki 内交叉:看 wiki 中其他页面是否有相关数据 4. 无可用工具:跳过,标注 unverified ``` ### Step 3: 判定结果 | 结果 | 处理 | frontmatter 标注 | |------|------|-----------------| | **verified** — 工具返回数据一致(误差 < 5%) | 正常 ingest | `verified: true` | | **disputed** — 工具返回数据不一致 | **暂停**,展示差异,让用户决定 | 用户确认后标注 `verified: user-confirmed` | | **unverifiable** — 没有工具或数据源不覆盖 | 正常 ingest | `verified: false` | | **partial** — 部分声明验证通过,部分未验证 | 逐条标注 | 混合标注 | ### disputed 时的用户交互 以下示例以金融领域为例,实际执行时替换为用户的目标领域和工具: ``` ⚠️ 数据校验发现差异: 声明:"XX 基金累计规模达到 3.2 万亿元(2024 年底)" 数据工具查询结果:3.58 万亿元(2024 年底) 差异:-10.6% 可能原因: - 源文件数据有误 - 统计口径不同 - 数据工具更新延迟 请选择: 1. 使用工具验证数据(3.58 万亿)→ 替换源文件数据后 ingest 2. 使用源文件数据(3.2 万亿)→ 标注 user-confirmed 后 ingest 3. 两者都记录 → 以 contested 方式 ingest 4. 放弃本条 → 跳过此声明 ``` ## 页面中的校验标注 在实体/概念页面中标注验证状态: ```markdown ## 基金规模 截至 2024 年底,XX 基金累计规模达 3.58 万亿元。 ✅ verified(数据工具 2025-01-15 查询) (来源:[[2026-04-06-source-doc]],原文数据 3.2 万亿经工具校正) ## 历史 - ~~累计规模 3.2 万亿元~~(来源:[[2026-04-06-source-doc]] 原文,经工具校正为 3.58 万亿) ``` ## 工具可用性 | 场景 | 有工具时 | 无工具时 | |------|---------|---------| | 专业领域数据 | 对应 MCP 自动验证 | 标注 unverified,建议用户手动确认 | | 公开信息 | WebSearch 交叉验证 | 标注 unverified | | 内部数据(口述/会议) | 无法验证 | 标注 source_type: 口述,confidence: medium | **Skill 在被动模式(无搜索工具)下**:所有数据标注为 `verified: false`,依赖 source-validation.md 的来源分级作为可信度参考。不会阻断 ingest,但会在每个数字旁标注"未验证"。 ## 与 ingest-protocol 的关系 校验插入在 ingest-protocol.md 的 Step 1 和 Step 2 之间: ``` Step 1: 读取源文件,提取关键信息 Step 1.5: 【数据校验】提取可验证声明 → 工具交叉验证 → 判定结果 Step 2: 搜索已有 wiki Step 3: 逐页比较新旧 ... ``` 如果 Step 1.5 发现 disputed 数据并暂停,用户确认后才继续 Step 2。