prepare阶段来源池生成
本参考只服务 make prepare:把可追溯来源整理进 .workflow/source_pool.md。它不是独立爬虫说明,也不是正文写作入口;正文写作必须等来源池和 meta.json 通过准备阶段检查后再开始。
在 paper-write-zh 中,本参考服务 prepare 阶段。核验后的来源必须写入 .workflow/source_pool.md(每条含题录与可访问 URL),不得只在对话中口头声明“已检索”。
什么时候进入本参考
只要任务会产生或依赖学术引用,就先使用本技能,尤其是:
- 用户要求写论文、开题报告、引言、研究背景、国内外研究现状、相关工作、文献综述。
- 用户要求“找几篇中文文献”“查知网”“补参考文献”“生成 GB/T 7714 引用”。
- 用户给出论文题目、摘要、关键词,希望继续写正文。
- 用户已有正文但缺少中文参考文献或引用格式不规范。
如果没有browser-task返回的真实引用,且用户也没有手动回填真实引用,不得开始撰写带引用的正文。页面可见题名、作者、来源、年份及链接只能完成候选身份核验,状态仍记为待核验,不能计入prepare最低来源数或进入正式参考文献。只有知网导出引用原文,或用户提供可追溯的完整引用及页面证据,才可标记已核验。不能把“已打开知网”“正在检索”“检索完成”当作引用证据。
本参考只解决中文文献真实性和 GB/T 7714 引用获取,不替代英文证据合成。技术类论文进入 Draft Mode 时,CNKI 中文引用池应与英文引用池配合使用;若英文基础文献不足,回到 ../literature-review/SKILL.md 补 DOI、出版社页面、Google Scholar 引用入口、arXiv 或用户 PDF 来源。Semantic Scholar、OpenAlex 只能作为候选发现工具,不能用作正式引用来源,也不能用中文文献填满“国内外研究现状”。中文候选文献默认优先选择近几年、主题高度相关、来源可核验的条目;经典基础理论、政策文本和代表性研究可放宽年份。
核心原则
- 真实来源优先:所有中文文献引用必须来自知网页面或知网导出的引用文本。
- browser-task 强制触发:默认必须显式调用豆包 browser-task(浏览器任务)完成多步骤网页操作;只有 browser-task 不可用、登录/验证码阻塞或用户明确要求手动时,才改为用户手动浏览器操作。不在主对话里手工执行 DOM 选择器级爬取,也不得在未尝试 browser-task 前先用
scholar_search、general_search、普通搜索工具、搜索面板或其他后台检索工具建立候选文献池。 - 用户登录介入,但不误判机构登录:知网未登录、机构认证、扫码、手机号验证、滑块验证码都必须交给用户在浏览器中手动完成。若页面显示学校/机构名称、机构已登录、IP 登录、CARSI/统一认证成功、可访问检索结果或可打开导出/引用功能,即视为具备继续检索和导出条件;页面上同时出现“个人登录/登录”按钮不等于未登录,不得因此停止或偷懒。
- 先引用后写作:引言、相关工作、文献综述等引用密集内容,必须先形成引用池和 evidence map。
- 不绕过限制:不尝试绕过验证码、付费墙、机构权限或反爬机制;只获取用户有权访问的检索结果和引用信息。
- 失败要明说:如果无法拿到页面可见元数据、来源链接/检索词、导出引用或用户回填,必须输出“中文文献真实性核验未完成”,不能补写、猜写或润色成看似真实的中文参考文献。
- 后台检索不算核验:
scholar_search、general_search、普通搜索工具、CrossRef、Semantic Scholar、OpenAlex 或其他 API 返回的元数据不得冒充知网页面可见结果,也不得整理成“知网引用”;这些工具也不得在未尝试 browser-task 前先行建立中文候选文献池。
browser-task 使用模型
将 browser-task 当作高层执行流程:用自然语言描述目标,让豆包浏览器任务完成导航、输入、点击、等待、提取和导出。不要把某个命令名当成必然存在的 API;但必须在任务文本中明确写出“启动 browser-task/浏览器任务”。在未尝试启动 browser-task 前,不得直接切换为手动流程(manual fallback),也不得先调用 scholar_search、general_search、普通搜索工具、搜索面板或其他后台检索工具建立候选文献池;如果当前豆包环境明确没有 browser-task 入口,就停止自动获取,给用户明确的手动操作步骤和需要回填的结果格式。
不要这样做
- 不要默认在主对话里逐个调用
navigate、click、evaluate。 - 不要把知网选择器当作主流程。
- 不要直接伪造
GetExport返回结果。 - 不要在用户未登录时继续声称“已导出引用”。
- 不要只说“已打开知网/已检索到相关文献”后填充中文参考文献。
- 不要把模型记忆里的中文题名、作者、期刊、年份整理成“知网引用”。
- 不要因为担心 browser-task 不可用,就先用 direct search、
scholar_search、general_search、普通搜索工具或搜索面板建立候选池,再把 browser-task 当补验证步骤。 - 不要使用
scholar_search、general_search、普通搜索工具、CrossRef、Semantic Scholar、OpenAlex 或其他 API 返回的元数据冒充 browser-task 页面可见结果。
应该这样做
把浏览器目标写成一次高层任务:打开 CNKI,判断是否具备检索和导出条件,检索指定关键词,返回候选文献的题名、作者、来源、年份、类型、链接和相关性说明。若页面显示机构登录、IP登录、CARSI认证成功,或可看到检索结果与导出入口,即继续执行;只有无法检索、无法打开导出入口,或页面明确要求扫码、账号、验证码、机构认证时,才停下让用户处理。
复杂任务拆成更窄的浏览器目标;返回结果不完整时继续要求补页面可见字段,不切换为自写爬虫或后台搜索兜底。
prepare 工作流
本参考只跑到来源池,不直接进入正文:
- 从题目、摘要或章节目标提取检索词。
- 启动 browser-task 检索 CNKI,必要时等待用户处理登录、机构认证或验证码。
- 验证返回内容是页面可见字段或导出原文,而不是后台检索/API 元数据。
- 让用户确认引用范围;若用户授权“你来选”,按相关性、来源可靠性、年份互补性和主题覆盖度选择。
- 导出 GB/T 7714 引用,或在失败时标记为待核验。
- 写入
.workflow/source_pool.md,再运行make prepare。
1. 提取检索词
根据用户的题目、摘要、研究问题或章节目标提取 2-5 个核心概念。
输出给用户确认:
我会先检索中文文献,拟用以下检索式:
- 主题词:...
- 同义词:...
- 检索字段:主题 / 篇名 / 关键词 / 摘要
- 初始筛选:优先近几年;优先核心期刊、主题高度相关和可核验来源;在时间范围相近时可适度参考高被引,但不强求最新一年;如结果太少则放宽年份
用户已经给出明确关键词时,可以直接检索,不必反复确认。
2. 检查知网登录
先启动 browser-task 打开知网并判断是否能检索和导出;只有 browser-task 不可用时才让用户手动打开。
判断规则:
- 页面显示学校/机构名称、机构已登录、IP 登录、CARSI/统一认证成功,或已能检索并看到“导出/引用/参考文献”入口:继续,不要因“个人登录/登录”按钮存在而停止。
- 页面只能看见公共检索但导出/引用入口不可用,或点击导出时要求扫码、个人账号、机构认证、短信或验证码:停止并让用户处理。
- 只有无法检索、无法进入导出/引用流程,或页面明确要求登录/认证时,才判定为阻塞。
如果确实未登录或认证阻塞,停止自动流程,把浏览器停留在登录/认证页面,并提醒用户接管浏览器完成操作。对用户说:
知网导出引用需要登录或机构认证。我已停止自动操作,并把浏览器停在需要处理的页面。请你在当前浏览器里完成扫码登录、手机号登录、机构/CARSI认证或验证码;我不会索要或代填账号、密码、短信码。完成后告诉我“已登录”,我再继续检索和导出引用。
不要索要、保存或代填用户账号密码。
3. 检索候选文献
通过 browser-task 检索,并要求返回结构化候选列表;browser-task 不可用时才要求用户手动回填:
| # | 题名 | 作者 | 来源 | 年份 | 被引 | 类型 | 链接 | 相关性说明 |
|---|---|---|---|---|---|---|---|---|
筛选原则:
- 主题高度匹配优先于单纯高被引。
- 近几年文献优先,但不强求最新一年;在时间范围相近时可适度优先高被引文献。基础理论、经典方法、政策法规和代表性研究可放宽年份。
- 期刊论文、学位论文、会议论文要标明类型,不混用。
- 文献综述任务应覆盖不同研究主题,而不是只取同一作者或同一期刊的结果。
4. 用户确认引用范围
把候选文献展示给用户,让用户选择需要导出的编号。若用户说“你来选”,按以下规则选择:
- 与主题直接相关;
- 来源可靠;
- 年份、方法、研究对象具有互补性;
- 避免重复主题堆叠。
5. 导出真实引用
再次通过 browser-task 导出引用;browser-task 不可用或导出失败时,才要求用户手动复制页面可见引用。导出是目标,不是可选动作;知网结果页支持勾选多篇文献后使用页面工具栏的“导出/引用/参考文献/批量导出”等入口一键导出引用,应优先使用这个批量导出方式,不要逐条抄元数据。只拿到题名、作者、来源、年份时,不能把它整理成正式 GB/T 7714 引用,只能标为待核验:
启动 browser-task/浏览器任务:在当前知网检索结果中,先勾选已选文献编号 [1,3,5],再使用页面工具栏中可见的“导出/引用/参考文献/批量导出”等入口一键导出 GB/T 7714 格式引用;不要逐条抄题名、作者和来源来拼引用。若页面是学校版/机构版但仍显示个人登录按钮,只要导出入口可用就继续导出,不要停止。返回每条引用原文,并附上对应题名、作者、年份和来源,便于核对。不要自行改写引用内容;如批量导出失败,进入单篇详情页尝试“引用/导出/参考文献”。若仍失败,说明失败原因和当前页面状态。
如果 browser-task 返回的是 API 元数据、检索摘要或结构化 JSON,而不是页面可见字段或导出原文,视为中文文献核验未完成;必须重新要求 browser-task 从页面提取可见内容,或转为用户手动回填。如果用户回填的是页面可见元数据而不是最终引用,应先要求补充知网页面导出的 GB/T 7714 文本,或整理为“待核验引用”。不要用临时本地脚本把不可追溯元数据加工成正式引用;最终引用必须能追溯到知网页面或知网导出结果。如果无法追溯,不得输出正式参考文献条目,只能列出“未完成核验的检索任务”和需要用户回填的字段。
6. 建立引用池和 evidence map
将结果整理为两份内容。
引用池:
## CNKI 引用池
[CNKI-01] 作者. 题名[J/D/C]. 来源, 年, 卷(期):页码.
- 来源链接:...
- 检索词:...
- 获取方式:知网导出 / 用户回填 / 浏览器任务回填
- 页面证据:题名、作者、来源、年份等页面可见字段 / 导出引用原文 / 用户回填截图或链接
- 核验状态:只有导出引用原文或等价可追溯完整引用可标记已核验;仅有页面元数据时标记待核验(不得计入prepare最低来源数或进入正文)
证据映射:
| Source ID | Citation | Source type | Abstract-level finding | Usable fact | Supported claim | Citation slot | Risk |
|---|---|---|---|---|---|---|---|
Supported claim 必须是可写进正文的一句话;不能写“这篇文献很相关”。若只拿到题名和引用,Abstract-level finding 标注为“未读取摘要”,不得编写该文献的具体研究结论。
7. 进入写作
只有在引用池和 evidence map 完成后,才开始写引言、研究现状或文献综述正文。正文中的每个文献性判断都应能回到 Source ID。
场景落点
所有场景都只产出来源池材料,不直接产出正文:
- 引言或研究背景:检索中文核心相关文献,写入能支撑“问题压力、现有路径、不足、本文问题”的来源条目。
- 文献综述或研究现状:检索候选文献并按主题分组;无法读取摘要或全文的条目只写元数据层事实。
- 参考文献列表:只导出 GB/T 7714 引用并标注获取日期、检索词和核验状态,不写正文段落。
- 技术类论文:同步检查英文文献池是否满足
../literature-review/SKILL.md的 Draft Mode 阈值;不足时列英文来源缺口,不用中文文献冒充国际相关工作。
失败处理
| 情况 | 处理 |
|---|---|
| browser-task 不可用 | 告知用户当前环境缺少 browser-task/浏览器任务能力;给出检索词、筛选条件和回填表格,让用户手动检索,不改走 direct search、scholar_search、general_search 或普通搜索兜底。 |
| 页面有个人登录按钮,但学校/机构版可检索或可导出 | 继续检索和导出;不要把个人登录按钮当作未登录证据。 |
| 未登录或认证阻塞 | 只有无法检索、无法打开导出/引用入口,或页面明确要求扫码/账号/机构认证时才停止;把浏览器停在当前页面,提醒用户接管浏览器完成登录或认证,用户确认后再继续。 |
| 验证码 | 停止并停留在验证码页面,提醒用户手动完成验证;用户确认后再继续 browser-task。 |
| 检索结果太少 | 放宽年份、换同义词、从篇名改为主题字段。 |
| 检索结果太多 | 增加限定词,优先近几年、主题高度相关、核心期刊和可核验来源;在时间范围相近时再适度参考高被引。 |
| 批量/一键导出入口可见 | 勾选目标文献,优先使用页面工具栏一键导出 GB/T 7714 引用。 |
| 导出失败 | 先重试批量/一键导出;再进入单篇详情页尝试“引用/导出/参考文献”;仍失败则返回元数据和失败原因,不编造引用。 |
| 选择器/API 失效 | 不在主流程修爬虫;改用页面可见文本和用户手动回填完成操作。 |
参考文件
references/citation-formats.md:引用格式规范。references/cnki-faq.md:登录、验证码、导出失败和浏览器任务处理。references/cnki-selectors.md:低层页面线索,仅在浏览器任务失败且需要诊断页面变化时阅读;不要作为主流程。