专利查新检索(patent-novelty-search)
> 本 Skill 的核心机制:
> 1. 执行任务前先 check_environment.py,告知"已配/未配/可自动尝试"的全量通道详情(4 维度)
> 2. 询问用户是否需要增/删/改/重配某一个或几个通道;用户确认后才执行
> 3. 默认"查全模式"——除了用户配置的通道,自动尝试其他免 Key 免费通道(每个通道独立,失败不互相影响)
> 4. 仅在用户明确说"只基于已配通道"时切"严格模式"
> 5. 通道独立配置:每个通道一个独立 JSON 文件,无相互依赖
一、术语与约定
| 术语 | 含义 |
|---|---|
| 通道 | 一个独立的数据源(如智慧芽、佰腾、OpenAlex、PatSeek)。每个通道单独配置、单独检测、单独调用,单个失败不影响其他 |
| 查全模式(默认) | 已配通道 + AI 自动尝试免 Key 免费通道,最大召回 |
| 严格模式 | 仅使用用户已配置的通道;用户明确说"只基于已配通道"时启用 |
| 离线模式 | 网速不佳版(依赖全打包)或完全无网;只能做"读用户提供的文件 + 检索式建议(AI 生成,标注非真实检索结果)" |
| 关键日(prior art date) | 本申请的申请日或最早优先权日(用户未提供时,退而以检索日作为关键日,不要求发明人/代理人补充"申请日"——查新员不越界催申请日)。检索式用 PD<关键日 或 AD>=关键日 限定现有技术 |
| 三要素 | 技术问题 / 技术手段 / 技术效果;从交底书或用户输入中提取 |
| 技术特征 F1 | 第一项必须是技术主体("一种 XX 装置/方法/系统");后续按出现顺序拆分,独立、完整、可比对 |
| X 文献 | 一篇对比文件公开了本申请全部必要技术特征 → 破坏新颖性 |
| Y 文献 | 多篇组合才能覆盖本申请全部必要技术特征 → 破坏创造性 |
| 检索式 | 由关键词 + 字段 + 运算符(AND/OR/NOT/+/etc.)+ IPC + 日期限定 + 申请人等构造的查询表达式 |
二、Skill 资源结构
patent-novelty-search/
├── SKILL.md # 本文件:规则
├── _meta.json # display_name
├── skill-dependencies.json # 依赖声明(Python wheel + 各通道)
├── config/
│ ├── user.json # ★ 用户手动维护:已配置的通道(可编辑)
│ ├── auto.json # ★ Skill 自动维护:检测状态、缓存、调用统计
│ ├── channels/ # ★ 每个通道一个独立 JSON(无相互依赖)
│ │ ├── patsnap.json # 智慧芽
│ │ ├── baiten.json # 佰腾
│ │ ├── openalex.json # OpenAlex
│ │ ├── patseek.json # PatSeek
│ │ ├── google_patents.json # Google Patents(浏览器)
│ │ └── cnki.json # 知网(浏览器)
│ └── .env # ★ 用户级环境变量(key 真实值,不进包、不进 git)
├── scripts/
│ ├── check_environment.py # 环境检查 → 输出 4 维度清单
│ ├── channel_dispatch.py # 通道调度(按通道独立调用,单通道失败不互相影响)
│ ├── read_docx.py # 读 docx(含 OMML 公式 + 表格 + 图片)
│ ├── read_pdf.py # 读 pdf
│ └── clients/ # ★ 每个通道一个独立客户端(无相互依赖)
│ ├── patsnap_client.py
│ ├── baiten_client.py
│ ├── openalex_client.py
│ ├── patseek_client.py
│ ├── google_patents_client.py
│ └── cnki_client.py
├── references/
│ ├── setup-guide.md # 安装 + 通道配置 + .env 持久化
│ ├── search-methodology.md # 检索方法论(Bool 三块 + 关键词扩展 + 结论纪律)
│ ├── query-syntax.md # 各通道检索式语法差异
│ ├── output-modes.md # 5 种输出形态 + 触发词映射
│ ├── two-keyword-mapping.md # 中英文关键词同义词映射(LLM 自行扩充)
│ └── channels-catalog.md # 通道全量目录(能力 + 接入 + 限速策略)
└── install_offline.py # 网速不佳版打包/安装脚本
> 配置分层原则(重要):
> - config/user.json:用户手动维护,记录"哪些通道启用、用了哪些字段"。用户自由编辑。
> - config/auto.json:Skill 自动维护,记录"上次检测时间、缓存命中数、调用统计、限速状态"。Skill 独占写,用户不要碰。
> - config/channels/*.json:每个通道独立配置(API Key 引用环境变量、字段映射、限速策略、错误退避)。用户初次配置后基本不动。
> - .env:真实 API Key 放在操作系统用户级环境变量(不放在 Skill 目录下,不进 git、不进包)。Skill 通过 os.environ.get(...) 读取。
三、执行流程(必读,权威)
阶段 0:前置读取
读取输入:
- 交底书(docx/doc/pdf):路径或上传附件
- 用户提供的相似文件(docx/doc/pdf):路径列表或上传附件
- 用户对输出形态的要求(默认 = 完整查新报告)
阶段 1:环境检查 + 通道告知清单(强制)
先读后做。 调用 scripts/check_environment.py:
python <skill-dir>/scripts/check_environment.py
脚本输出格式(按用户要求 4 维度 + 通道名 + 关键状态):
执行前检测结果(YYYY-MM-DD HH:MM:SS):
通道名 类型 Key 状态 备注
─────────────────────────────────────────────────────────
✅ 智慧芽 PatSnap 专利+论文 需API 已配置 免费1万credits
✅ 佰腾 baiten 专利 需API 已配置 商业付费
✅ OpenAlex 论文+专利 免Key 可用 免配置,CC0
⬜ PatSeek 专利 需API 未配置 需 PATSEEK_API_KEY
⬜ 知网 CNKI 论文 免Key 未登录 需浏览器+登录
✅ Google Patents 专利 免Key 可用 浏览器
是否需要:新增/删除/更改/重新配置某一个或几个通道?
可配置命令示例:
- "新增 PatSeek" → 引导配置 PATSEEK_API_KEY
- "删除知网" → 该通道从本任务移除
- "重配佰腾" → 引导更新 Appkey/密钥
- "不动"或"按现状" → 继续当前任务
(按通道独立决策:每个通道可单独增删改重配,无相互依赖)
> 沙盒注意:若运行 check_environment.py 受沙盒限制不能启动子进程,本 Skill 退化执行内联检查(直接 import/os.environ 检测),不阻塞流程。
阶段 2:用户确认通道配置
根据用户回复:
- "不动"/"按现状"/"OK" → 用已配通道进入阶段 3
- "新增 X" / "重配 Y" / "删除 Z" → 引导配置或修改 config/channels/*.json,再重跑 check_environment.py 确认
- "全部去掉 API" → 切离线模式
阶段 3:读取输入文件
调用对应读取脚本:
- docx/doc → scripts/read_docx.py(自包含 Python 脚本,处理段落+表格+OMML公式+图片标注)
- pdf → scripts/read_pdf.py(pymupdf)
多工具交叉验证(沿用本系列 Skill 规范):
- docx 主读 python-docx + 辅助验证:解析 document.xml 检查 m:oMath 公式、补 word/media 图片
- pdf 主读 pymupdf + 辅助验证:检查扫描版(无文本层时提示需 OCR)
阶段 3.5:发明人信息提取与确认(强制,不可跳过)
无论是否读取到发明人信息,都必须执行本阶段。
-
正确读取发明人信息:读取交底书首页表格时,必须同时关注「申请人」「发明人」「设计人」字段,不能只看正文的发明名称/技术领域。严格区分:
- 「申请人」= 专利权人(通常是单位,如"东北林业大学")
- 「发明人」/「设计人」= 实际发明人姓名(可能是多人,如学生+导师"史恩泽、李洋")
- 「技术联系人」「抄送联系人」≠ 发明人,仅作参考线索,绝不能直接当成发明人 -
提取到发明人 → 必须展示给用户确认:把提取到的发明人姓名列表展示给用户(AskUserQuestion 或直接列出),请用户确认:
- "我从交底书首页提取到的发明人为:XXX、YYY。请确认是否正确、有无遗漏?"
- 用户确认正确 → 用于发明人在先公开检索
- 用户更正/补充 → 按用户最终确定的名单重新执行发明人在先公开检索 -
未提取到发明人信息 → 必须主动询问:
- "未从交底书中读取到发明人信息,请提供发明人姓名(用于发明人在先公开检索)。"
- 用户提供 → 展示确认后执行检索
- 用户明确表示"不提供发明人信息" → 报告不写发明人在先公开检索内容(跳过 2.2/3.2 节,检索关键词里也不列发明人/申请人) -
发明人在先公开检索的精确性:用
inventors=姓名 AND assignees=单位(专利)或authors=姓名 AND org_names=单位(论文)复合精确过滤,避免同名干扰。多名发明人逐一分别查询,不可合并、不可漏查任何一人。
阶段 4:输出形态路由(5 种可选)
根据用户输入识别输出形态(默认完整查新报告):
| 输出形态 | 触发示例 | 产出 |
|---|---|---|
| 检索关键词 | "出检索关键词""提取关键词" | 中英文关键词分组列表(双语映射) |
| 检索式 | "生成检索式""给检索式" | 各数据库适用的检索式 + 字段策略说明 |
| 发明人检索情况 | "查发明人在先公开""查发明人有没有发过" | 发明人检索式 + 检索结论(标注是否发现、审慎措辞) |
| 相似专利对比分析 | "做相似专利对比""对比分析" | 三要素提取 + 特征拆分 + 特征对比表 + X/Y 文献评述 |
| 完整查新报告(默认) | "出查新报告""生成查新检索分析报告" | 完整 7 章节报告(含以上全部 + 风险评估 + 补充建议 + 新发明点) |
详细模板见 references/output-modes.md。
阶段 5:检索方法论(核心:不要瞎编)
无论哪种输出形态,检索方法论必须遵守:
5.1 三要素提取
从交底书/输入提取:
- 技术问题(要解决什么问题)
- 技术手段(怎么做;用什么结构/方法/算法)
- 技术效果(带来什么好处)
模糊/缺失处基于公知常识做必要补充,但必须标注"补充"。
5.2 技术特征拆分
按出现顺序拆分为独立、完整、可比对的特征项。F1 必须是技术主体("一种 XX 装置/方法/系统"),后续为部件/步骤/参数/连接关系等。
5.3 关键词扩展(4 层,沿用 global-biblio 方法论 + 中英文映射)
按 references/two-keyword-mapping.md 内的双语同义词组扩展:
1. 缩写/别名(如 LLM ↔ 大语言模型 ↔ large language model)
2. 中英互译(中文关键词 ↔ 英文对应词)
3. 上下位词(按需,结果过少时上位,结果过多时下位)
4. 同义词/近义词(联网查学术语境下的等价表述)
LLM 在阶段 5.3 自行推理补充映射表外术语的标准缩写与英文对应。
5.4 检索式构造(三块结构,沿用 patseek 方法论)
Bool 检索式必须包含三个相互独立的 AND 块:
1. 技术对象:产品/部件/材料/方法场景
2. 核心机制/技术问题:方案如何工作或解决什么问题
3. 关键区别特征:结构关系/步骤关系/控制逻辑/特定部件/参数范围/特殊效果(至少一项)
信息不足以构造三块时,用两个高置信概念块 + 已验证的准确 IPC,不要用"系统、装置、方法、设备"等通用词凑数。
5.5 通道调度(独立调用,失败隔离)
scripts/channel_dispatch.py 按通道独立调用:
- 每个通道单独 try/except,单通道失败不影响其他通道
- 失败记录到 config/auto.json 的 channel_errors 字段,下次告知清单显示 ⚠️
- 默认按优先级:已配付费通道 > 免 Key 免费通道 > 浏览器兜底
- 用户可在阶段 2 临时调整顺序或禁用某些通道
5.6 缓存策略
config/auto.json 维护缓存:
- 缓存键:hash(查询关键词完全相同) + 通道名 + IP(仅当关键词完全相同且 IP 相同时才缓存)
- 有效期:
- 专利检索:24h(专利数据变化慢)
- 论文检索:12h
- 缓存命中不重新扣费
- 用户可在阶段 2 说"忽略缓存"临时禁用
5.7 结论纪律(强制)
禁止输出"具备新颖性""不存在侵权风险""全球无人申请"等保证性结论。使用:
> 截至[日期],在[数据库、国家、语言和文献类型]及所列检索式范围内,未发现一篇在关键日期前公开并披露全部必要技术特征的文献。本结果不排除未公开申请、数据库缺口、非专利公开或术语差异造成的漏检。
阶段 6:报告撰写与诚实标注(强制)
最终报告必须含:
- 数据来源声明:列出本次实际使用的所有通道(哪些已配、哪些自动尝试的免费通道、哪些未用)
- 检索局限声明:未覆盖的库/未连接的通道
- 审慎措辞:发明人自身在先公开检索用"未发现"而非"不存在";风险评估用"可能"而非"必然"
建议边界(强制,最高优先级):
报告(尤其"五、为使交底书描述清楚的补充或修改建议""六、有利于提高授权率的补充建议")给发明人的建议,只允许与技术方案或实验数据相关,例如:
- 某公式/等式的推导过程不清楚、需补充(技术方案)
- 某阈值的确定依据未说明(技术方案)
- 某组件分类的逐一对应关系未展开(技术方案)
- 与最接近现有技术(D 类文献)的区别点未写清(技术方案)
- 缺乏对照实验数据、定量效果数据(实验数据)
绝对禁止任何与技术方案/实验数据无关的建议,例如:
- 发明人排序、贡献分工(发明人/代理人决定,查新员无权干预)
- 申请日/优先权日补充(交底书初稿阶段本就没有,查新员不越界催)
- 文档格式、单位名称写法、交底书模板、术语规范化等非技术内容
- 任何"教发明人如何写交底书/如何申请"的流程性、形式性建议
判断标准:这条建议是否帮助"让技术方案更清楚完整、让实验数据更充分"?是 → 可写;否 → 一律删除。
报告交付格式(强制):
- 查新检索分析报告、相似专利对比分析等给发明人的正式交付物,必须输出为 .docx(WPS 文档格式),禁止用 Markdown/纯文本交付
- 生成方式:优先使用 tencent-docx(本地 DOCX 创建走 full_pipeline)生成专业排版(封面 + 标题层级 + 表格);如需精确控制章节/表格结构,可用 python-docx(依赖已打包到 dependencies/python)
- 报告标题居中加粗,一级/二级/三级标题层级清晰,文献列表用表格
- 检索信息反馈文件(给代理师的内部参考)可用 .md,但给发明人的查新报告必须 .docx
四、5 种输出形态的细节差异
4.1 检索关键词
输出格式(按 references/two-keyword-mapping.md 双语分组):
一、检索关键词
1. 技术对象
- 中文:XXX、XXX
- 英文:XXX、XXX、XXX
2. 核心机制/技术问题
- 中文:XXX
- 英文:XXX
3. 关键区别特征
- 中文:XXX
- 英文:XXX
4. 申请人/发明人(可选,用于发明人检索)
4.2 检索式
输出各通道适用的检索式 + 字段策略:
二、检索式
【智慧芽 PatSnap】
(技术对象 A OR A_alias1 OR A_alias2) AND (核心机制 B OR B_alias) AND (关键特征 C) AND PD<关键日
【佰腾 baiten】
(佰腾格式...)
【OpenAlex】
(OpenAlex 格式...)
每个检索式后标注:
- 期望命中范围(基于概念宽度估算)
- 限定条件说明(关键日、IPC、申请人)
4.3 发明人自身在先公开检索
- 用发明人姓名 + 所属单位作为检索条件(发明人名单必须已经过用户确认,见阶段 3.5)
- 检索式 + 检索结果
- 审慎措辞:"本次检索未发现发明人自身在先公开的论文/专利文献",禁止"不存在发明人自我公开的可能"
- 用户明确不提供发明人信息时,本形态不输出,改为提示用户"未提供发明人信息,无法执行发明人在先公开检索"
4.4 相似专利对比分析
按 references/search-methodology.md:
- 三要素表
- 技术特征列表
- 特征对比表(Disclosed / Common General Knowledge / Not Disclosed 三档)
- X/Y 文献评述
- 风险等级(高/中/低,附理由)
4.5 完整查新报告
7 章节:
1. 检索关键词
2. 论文期刊文献检索(含发明人在先公开 + 数据库声明 + 检索式 + 命中文献)
3. 专利文献检索(含发明人在先公开 + 数据库声明 + 检索式 + 命中文献)
4. 检索结果分析(最接近现有技术 + 驳回风险组合 + 审查员质疑角度)
5. 整体驳回风险评估
6. 为使交底书描述清楚完整的补充或修改建议
7. 有利于提高授权率的补充建议
8. 挖掘新发明点的建议
五、关键边界与停止条件(强制遵守)
5.1 必须停止的情况
- 任一通道 API 返回 401/402/403(Key 失效/额度不足/禁用)→ 停止 → 告知用户该通道失败、其他通道是否继续
- 用户输入不完整(缺交底书/相似文件/关键日)→ 停止 → 询问缺失项
- 离线模式下用户要求"真实检索"但未提供相似文件 → 停止 → 告知"离线模式无法真实检索,请提供相似文件或联网"
5.2 必须诚实标注的情况
- AI 凭训练记忆生成的检索式/关键词 → 标注"AI 建议,非真实检索结果"
- 通道调用失败 → 在告知清单 + 报告数据来源声明中标注
- 缓存命中 → 标注"来自缓存(YYYY-MM-DD HH:MM)"
- 浏览器通道遇验证码/登录态失效 → 标注"需用户手动完成"并暂停
5.3 离线模式的诚实标注
离线模式下报告头部必须有:
【离线模式声明】
本次为离线/网速不佳版分析,未连接任何数据库;以下检索关键词、检索式、对比分析建议
均基于 AI 对交底书的领域知识生成,并非真实检索结果。如需真实检索,请在联网环境
下启用已配置的数据源(智慧芽 / 佰腾 / OpenAlex / PatSeek 等)后重新执行。
5.4 检索式禁止
- 禁止绝对表述("不存在""完全排除""绝对""必然")
- 禁止编造专利号/论文 DOI
- 禁止将 AI 生成内容伪装为真实检索结果
- 禁止静默转向用户未授权的通道
5.5 查新报告无 AI 痕迹硬规则 + 元信息单独反馈(强制)
核心原则:查新报告是给发明人看的。任何让发明人觉得"你们在用 AI 检索"的痕迹都不能写入报告。检索系统的技术元信息(通道、命中率、API Key、SDK、实测状态等)一律不进报告,单独反馈给代理师。
5.5.1 报告禁止出现的所有 AI/系统/技术元痕迹
- 禁止 AI 痕迹词:
实测、实测通过、命中、AI 生成、非 AI 生成、LLM、生成式 - 禁止系统术语:
MCP、API Key、Key、SDK、HTTP、HTTP API、免 Key、鉴权、SDK 签名 - 禁止系统状态描述:
未启用、本次未连接、本次未用、可补充、待校准、签名待 SDK、暂挂起、状态: - 禁止通道名带括号注解:
OpenAlex(免 Key)、智慧芽 PatSnap(MCP)、佰腾 baiten(HTTP API)——通道名只保留中性名称 - 禁止本次/当前状态语义:
本次为真实检索、本次未连接、本次未启用、本次未启用(签名待 SDK) - 禁止底层实现表述:
为真实 API 调用、HTTP 调用、调用的 API、通过 SDK
5.5.2 报告中允许的中性措辞
- 数据库中性名:
智慧芽 PatSnap 中国发明专利数据库、智慧芽 PatSnap 中国期刊全文数据库、OpenAlex 学术开放数据平台、佰腾 baiten 中国专利检索平台、PatSeek 国际专利检索平台、USPTO 公开数据库 - 标准查新表述:
本次检索、数据来源、检索范围、未覆盖、本次检索未发现、检索到、获取、检索式、关键词 - 标准免责声明措辞:
基于本公司认为可靠的专业数据库、由我方专业人员进行检索、不能保证...准确性和完整性、仅供申请人参考
5.5.3 元信息反馈通道(强制)
所有检索的技术元信息(通道配置、实测状态、命中率、未覆盖项、缓存、限速等)绝对不写入查新报告,应通过以下任一方式反馈给专利代理师:
- 对话中直接告知(自然语言)
- 创建专门的"检索信息反馈.md"文件给代理师(如
检索信息反馈-{发明名称}.md)
反馈文件应包含但不限于:
- 各通道的接入方式、配置状态、实测情况
- 各检索式的命中条数、检索范围
- 未覆盖的数据库/通道
- 缓存命中、限速、错误等运行信息
- 后续可补强的方向
反例(错误,不能出现在查新报告或反馈文件给发明人的部分):
> 数据来源:智慧芽 PatSnap 专利库(MCP,实测通过);OpenAlex(免 Key,可补充);佰腾未启用(签名待 SDK)。
正例(查新报告写法):
> 数据来源:智慧芽 PatSnap 中国发明专利数据库;OpenAlex 学术开放数据平台。
正例(反馈给代理师的写法):
> 本次使用了智慧芽 PatSnap(MCP connector,已配)+ OpenAlex(免 Key HTTP API);佰腾 baiten 因 SDK 1.0 签名算法与当前接口不匹配,本次未启用,待用户提供后补齐。
5.5.4 报告生成时自动行为
- 默认情况下,Agent LLM 在生成查新报告时应主动剥离所有 5.5.1 列出的痕迹
- Agent LLM 不应自动在报告末尾添加"检索说明/通道配置/实测情况"等元数据小节
- 如代理师需要元信息,应在对话中询问,Agent LLM 通过对话或独立反馈文件给出
六、与参考 Skill 的关系
本 Skill 融合 4 个参考 Skill 的方法论精华(已通读其 SKILL.md 与脚本):
| 来源 | 借鉴 | 规避 |
|---|---|---|
| patseek-patent-search | Bool 三块结构、条件可观察性闸门、结论纪律、API Key 失效停询协议、检索模式选择(快速摸底/完整深度)、PD<关键日 限定 |
不强制 API Key |
| global-biblio-base | 4 层关键词扩展、K=/T=/U= 字段策略、NL 转检索式 |
不硬编码 secret、不强制注册邮箱、不嵌入商业套餐、删除版本历史章节 |
| cnki-advanced-search | 知网 +/*/- 语法、"查新(引文格式)"导出 |
不强制特定浏览器 profile |
| patent-novelty-search | 三要素提取、特征拆分(F1=技术主体)、对比三档标签(Disclosed/公知常识/Not Disclosed)、X/Y 文献评述 | 不强制 browser_use、非现实数量要求 |
七、用户配置与 Skill 维护的配置(强制分离)
| 文件 | 谁写 | 谁读 |
|---|---|---|
config/user.json |
用户(手动编辑) | Skill |
config/channels/*.json |
用户(初次配置后基本不动) | Skill |
config/.env(或系统环境变量) |
用户(首次填真实 Key) | Skill |
config/auto.json |
Skill 独占写(检测状态、缓存、统计) | Skill + 用户(只读查阅) |
冲突时优先级:系统环境变量 > .env > user.json/channels/*.json
八、与其他 Skill 的协作
patent-disclosure-standardize-raw-extract:交底书原文提取(前置步骤,本 Skill 假设已读过原文)patent-formula-converter:OMML → KSEE3 OLE 转换(说明书公式场景,与本 Skill 独立)tencent-docx:五书文档生成(独立于本 Skill)
本 Skill 仅做"检索 + 对比分析 + 报告生成",不写五书。
九、版本
- v1.0.0(2026-08-24):初始版本
- 借鉴 patseek / global-biblio / cnki / patent-novelty-search 四家方法论
- 设计原则:通道独立 + 配置分层 + 查全默认 + 离线诚实 + 双语映射