---
name: llm-answer-reference-compare
description: 用 Playwright 从深知晓、深知晓（深度溯源）、豆包、腾讯元宝、DeepSeek 和通义千问网页端无损采集完整回答、原始引用、引用标记和现场存证。用于 Fact-Check-X 的原始答案采集阶段，或任何需要比较多个 AI 网页回答与参考来源的任务。
license: Apache-2.0
---

# 多平台回答与引用无损采集

本技能只负责采集，不拆知识点、不判断真假，也不调用任何模型 API。可信搜索仅用于按平台已经给出的来源标题与原始 URL 补全该来源全文，不用于另找证据、替换原始来源或提前判断真假；语义工作由当前承载技能的智能体完成。

## 输出原则

- 完整保存平台原答案，不摘要、不改写、不截断。
- 按平台原顺序保存引用标题、原始 URL、标记、摘要与已捕获正文。
- 正文有引用标记时保留标记与引用顺序；没有标记时明确记录为无显式标记。
- 原始 URL 是存证主键。`normalizedUrl` 只用于去重，禁止用搜索结果替换原始 URL 或正文。
- 页面只显示来源名称但不暴露 URL 时，先尝试展开来源控件获取真实链接；仍无链接则写入 `sourceMentions`，明确标记为“无 URL 来源标签”，不得伪造成参考文献。
- 平台同时提供逐句脚标和“参考 N 篇资料”等全局来源列表时，两类都必须采集并用 `citationScope` 区分；同一 URL 合并时保留更完整的标题与摘录。深知晓还必须点击“知识专库”，逐项采集其中的回答级来源；与脚标重复的 URL 标为 `inline_and_global`，仅在专库出现的标为 `global`。
- 页面声明全局来源数量时，必须展开并达到该数量。未抓全视为采集失败，进入自动重采和 Computer Use 接管，禁止以残缺引用继续知识点对比。
- 深知来源正文不足时，若安全环境已配置 `TRUSTED_SEARCH_KEY`，调用可信搜索并使用 `return_full_content=true`、`simplified=false` 补全与当前来源标题或 URL 匹配的同一材料全文；返回全文或段落直接用于判断，不再访问源网址二次抓取正文。可信搜索的 `源网址` 作为官方来源主链接，深知收录页作为辅助链接；不得把其他材料伪造成平台引用。
- 可信搜索未配置或未命中时，才直接读取来源页或提取 PDF；已绑定 PDF 仍拿不到可核验正文时必须失败关闭并进入正文提取、OCR 或 Computer Use 接管，不能把采集器的缺口判成平台幻觉。
- 登录、验证码、超时、页面结构变化和抽取失败必须成为显式状态，不能伪装成成功空回答。

## 准备运行时

```bash
cd assets/tool
npm ci --omit=dev
npx playwright install chromium
cd ../..
```

查看支持的平台：

```bash
node assets/tool/dist/cli.js platforms
```

首次使用某个平台时，先明确告诉用户“将打开浏览器，请完成登录，登录后再获取信息”。随后运行登录准备；程序检测到可提问界面后自动保存会话：

```bash
node assets/tool/dist/cli.js login --platform doubao
```

不得代替用户输入账号、密码、短信验证码或处理人机验证。登录会话保存在 `~/.fact-check-x/browser-profiles`，不得进入技能包或核验报告；已有持久化登录会话后可直接采集。

豆包等未登录页面即使显示输入框，也不得视为登录完成。必须等待页面登录入口消失并确认可提问界面后才能提交问题；登录入口仍可见时只等待用户登录，不得预先填入问题。

采集一个或更多平台。提交前的页面关闭等确定性故障可自动重试；问题已经尝试提交、确认提交或页面已经出现回答后，禁止重新提问，也禁止通过换新目录重新运行整条采集命令；只能在原会话继续等待或恢复提取：

```bash
node assets/tool/dist/cli.js run \
  --question "<用户原始问题>" \
  --platform dknowc-chat \
  --platform doubao \
  --out <run目录> \
  --headed \
  --interactive \
  --timeout 180000 \
  --retries 2
```

平台参数可以重复任意 N 次（N≥1）。内置 `deepseek`；深知晓地址可用
`dknowc-chat=https://目标地址/` 覆盖，其他平台同理。例如：

```bash
node assets/tool/dist/cli.js run \
  --question "<用户原始问题>" \
  --platform dknowc-chat=https://测试5地址/ \
  --platform deepseek \
  --platform doubao \
  --out <run目录> \
  --headed --interactive
```

内置平台 `dknowc-chat` 与 `dknowc-deep-research` 均从
`https://yun.dknowc.cn/wlcb/szx/#/` 进入。后者不是普通单段采集：两个平台同时
选择时，采集器只提交一次原问题，等待普通回答完整生成并先保存，再点击回答下方
“深度溯源”入口；同页弹出结果时在当前页续采，打开同源结果页时接管新页面，
等待结果完整生成后独立提取答案、来源、截图和页面存证。两个结果互不覆盖，且
只有各自材料满足要求时才能独立形成可信锚点。

所有选定平台必须成功，报告按实际平台数动态生成。

产物包括 `results.json`、“各方答案汇总”、每个平台截图和页面存证。后续阶段只读取 `results.json`，不得回写原答案和原始来源。

同一运行目录只允许执行一次 `run`。目录中已有 `results.json` 时程序会拒绝再次提交，防止单平台恢复覆盖多平台结果；恢复必须在原会话继续等待、定位或提取。运行中的同一用户任务不得把“换新目录”视为恢复方式；只有当前任务已终止且用户明确发起新的独立测试时，才使用新运行目录。

采集命令最终返回非零状态，或任一平台不是 `success` 时，必须停止，不得进入知识点对比。失败后先读取 `capture-recovery.json`：优先调用运行载体自带的浏览器或 Computer Use 接管同一会话，`agent-browser` 仅作为可选诊断候选。恢复工具只能给出选择器候选，程序必须验证唯一性、可见性、输入框可编辑性、答案长度与非进度状态后才能使用。`captureLifecycle.submissionAttempted`、`submissionConfirmed` 或 `answerObserved` 任一为真时，禁止重输、重提或重跑原问题；只能继续等待、定位和提取当前回答。只有 `resubmissionAllowed=true` 时才允许提交一次。账号、密码、验证码和人机验证必须交给用户本人处理。

## 手工导入

网页自动化受阻时，可按 [数据契约](references/contracts.md) 手工整理 `results.json`，然后运行：

```bash
python3 scripts/validate_results.py --input <run目录>/results.json
node assets/tool/dist/cli.js report --input <run目录>/results.json --out <run目录>
```

## 交付门禁

```bash
python3 tests/smoke_test.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
```

完整验收口径见 [验收标准](references/acceptance-criteria.md)。
