138 lines
5.1 KiB
Markdown
138 lines
5.1 KiB
Markdown
# 数据校验协议
|
||
|
||
> 防止错误数据污染 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。
|