使用多Agent分批并行架构对中文专利申请文档(.docx / .doc)进行AI辅助审查。14条审查规则分配到13个审查Agent + N个图片审查子Agent分7批并行执行(每个Agent仅加载1条审查规则),文档提取、审查合并、图片context修复、批注添加和合规检查均委托给子Agent执行。主Agent仅负责编排、调度和关键决策。
> ⚠️ .doc 格式支持:本 skill 支持输入 .doc 格式文件。处理时会自动使用 pywin32(COM 自动化)调用 Microsoft Word 将 .doc 转换为 .docx。要求:Windows 系统 + 已安装 WPS 或 Microsoft Word + 已安装 pywin32 库。
| 输入 | 类型 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
input_doc | 字符串 | 待审查的 .docx 或 .doc 文件的绝对路径 |
| 输出 | 类型 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
reviewed_docx | 字符串 | 带修订追踪和批注的审查后 .docx 文件绝对路径 |
work_dir | 字符串 | 包含所有中间文件的工作目录绝对路径 |
| 变量 | 说明 | 示例 |
|---|---|---|
| :--- | :--- | :--- |
| Skill 名称,同时用作批注作者 | checking-cn-patent-format |
| Skill 根目录 | D:/path/to/.trae/skills/checking-cn-patent-format |
| 输入文件绝对路径 | D:/docs/专利申请文件.docx |
| 输入文件所在目录 | D:/docs |
| 输入文件名(不含扩展名) | 专利申请文件 |
| 第5.2步获取的真实时间戳 | 20260511_143025 |
| 工作目录 | D:/docs/checking-cn-patent-format_20260511_143025 |
> 所有路径必须使用绝对路径,使用 / 作为路径分隔符以确保跨平台兼容性。
检查输入文件扩展名是否为 .docx 或 .doc(不区分大小写)。如果不是,告知用户仅支持 .docx 和 .doc 格式后终止。
执行命令获取真实本地时间戳:
python -c "from datetime import datetime; print(datetime.now().astimezone().strftime('%Y%m%d_%H%M%S'))"
将输出记录为 ,定义 = ,创建工作目录:mkdir "。
> ⛔ 此步骤必须委托子Agent执行。主Agent禁止直接使用 RunCommand 调用 patent_extractor.py。
委托 references/agent-extract.md 中定义的文档提取Agent执行(subagent_type: "subagent0",response_language: "zh-CN")。
验证输出:确认 中存在以下文件且内容非空:
extracted_text_.txt section_abstract_text_.json (paragraphs 非空)section_claims_.json (paragraphs 非空)section_description_.json (paragraphs 非空)section_description_fig_.json section_abstract_fig_.json header_sections_.json image_analysis_.json 验证通过后立即进入第5.4步,不总结不暂停。
13个审查Agent + N个图片审查子Agent分7批并行启动。每个Agent仅加载1条审查规则,仅读取分配的章节拆分文件(物理隔断)。
子Agent提示词模板(标准化简短模板,Agent自行从对应文件读取配置):
你是一个专业且严格的中国专利审查员,熟知《专利法》、《专利法实施细则》和《专利审查指南》。
⛔⛔⛔ 禁止向用户提问、禁止要求用户提供任何信息、禁止因任何原因暂停审查流程。
请执行以下审查任务:
1. 读取通用规范:读取 "<skill_root>/references/common-specs.md" 的完整内容,严格遵守其中所有规范
2. 读取审查任务配置:读取 "<skill_root>/references/agent-NN.md" 的完整内容,获取你的专属任务配置和执行步骤
3. 按照通用规范和任务配置的指令执行审查
4. 路径变量:skill_root=<skill_root>, work_dir=<work_dir>, timestamp=<timestamp>
将 NN 替换为Agent编号(01-13)。
| 批次 | Agent | 任务 | 规则文件 | 章节文件 |
|---|---|---|---|---|
| ------ | ------- | ------ | ---------- | ---------- |
| 第1批 | Agent 1-2 | 摘要审查 | 11/12 | section_abstract_text |
| 第2批 | Agent 3-6 | 权利要求书简单审查 | 31系列×4 | section_claims |
| 第3批 | Agent 7-8 | 权利要求书复杂审查 | 32系列×2 | section_claims |
| 第4批 | Agent 9-10 | 说明书审查 | 41/42 | section_description |
| 第5批 | Agent 11-12 | 全文跨章节审查 | 61/62 | header_sections |
| 第6批 | Agent 13 | 附图元数据级审查 | 51 | section_description + section_description_fig + section_abstract_fig + image_analysis |
| 第7批 | 图片子Agent×N | 图片级审查 | 52 | 图片文件(主Agent动态创建) |
每批完成后立即验证(推荐):
python "<skill_root>/scripts/output_validator.py" --work-dir "<work_dir>" --timestamp "<timestamp>" --agents <N,M,...> --extracted-text "<work_dir>/extracted_text_<timestamp>.txt"
全量验证(所有审查Agent完成后):
python "<skill_root>/scripts/output_validator.py" --work-dir "<work_dir>" --timestamp "<timestamp>" --extracted-text "<work_dir>/extracted_text_<timestamp>.txt"
委托 references/agent-merge.md 中定义的合并去重Agent执行一体化合并去重。
验证输出确认 存在且为有效JSON数组后:
references/agent-image-fix.md 子Agent):修复说明书附图类审查意见中非verbatim copy的context锚点references/agent-annotate.md 子Agent):执行 review_adder.py 添加批注和修订追踪。注意:摘要附图section的批注不再寻找锚定文字,而是自动在摘要附图章节结尾插入"摘要附图批注"文字作为批注的锚定文字references/agent-skip-save.md 子Agent另存为 /skipped_reviews_.json 以备用户检查委托 references/agent-annotate.md 中定义的批注添加Agent执行(如5.5中已顺序启动,此步骤作为验证/重试环节)。
验证批注输出确认 存在。如跳过数量>0,修复后重试(最多2次)。
> ⛔ 必须使用 review_adder.py。禁止编写自定义批注脚本——会导致严重内容丢失。
运行验证脚本:
python "<skill_root>/scripts/verify.py" "<input_doc>" "<input_dir>/<input_stem>_ReviewOut_<timestamp>.docx" "<work_dir>"
验证脚本会自动将验证日志保存为 ,供后续合规检查和BUG审查使用。
结果判定:
> ⛔ 未通过硬性验证的文档禁止交付给用户。
> 本步骤在5.7内容完整性验证通过后执行,将批注添加过程中被跳过的条目重新定位到对应section章节结尾处。
委托 references/agent-skip-relocate.md 中定义的跳过批注重定位Agent执行(subagent_type: "subagent0",response_language: "zh-CN")。
核心逻辑:
skipped_reviews_.json 读取)运行重定位脚本:
python "<skill_root>/scripts/skip_relocator.py" --input-doc "<input_doc>" --reviewed-docx "<input_dir>/<input_stem>_ReviewOut_<timestamp>.docx" --work-dir "<work_dir>" --timestamp "<timestamp>" --author "checking-cn-patent-format"
验证输出:
/relocation_log_.json 存在且为有效JSON/deduplicated_comments_.json 存在且为有效JSON输出文件说明:
relocation_log_.json :重定位操作日志,记录每条跳过批注的原位置、新位置、重定位时间戳deduplicated_comments_.json :去重后批注数据文件,完整保留所有经过去重处理后的有效批注内容,包含原始位置信息、内容、创建时间戳等关键元数据> 注意:如果 skipped_reviews_ 不存在或为空,脚本将直接生成空的重定位日志和去重批注数据文件,不视为错误。
运行格式化脚本确保所有审查Agent输出的JSON文件为标准缩进格式(indent=2):
python "<skill_root>/scripts/format_json.py" --work-dir "<work_dir>"
验证:确认所有 reviews_agent_.json 文件已格式化为多行缩进格式(非单行)。
> 本步骤在skill所有预设任务(含合规检查和合规修复)执行完成后,作为收尾步骤执行。
委托 references/agent-bug-review-orchestrator.md 中定义的BUG审查编排Agent执行(subagent_type: "subagent0",response_language: "zh-CN")。
编排Agent将根据 中的文件数量和大小自动选择执行模式:
references/agent-bug-review.md 执行完整审查子Agent提示词模板:
你是一个专业的技术审查与故障分析编排器,精通中国专利申请文件的审查流程和多Agent协作系统。
请执行以下BUG审查与归档任务:
1. 读取编排配置:读取 "<skill_root>/references/agent-bug-review-orchestrator.md" 的完整内容,获取你的专属任务配置和执行步骤
2. 按照编排配置的指令,扫描工作目录、判断执行模式、调度Worker Agent(并行模式)或直接审查(单Agent模式)
3. 收集并整合所有审查结果,对BUG去重合并,生成最终结构化BUG日志JSON文件并归档
4. 路径变量:skill_root=<skill_root>, work_dir=<work_dir>, timestamp=<timestamp>, skill_name=checking-cn-patent-format, input_doc=<input_doc>
5. ⛔⛔⛔ 禁止向用户提问、禁止要求用户提供任何信息、禁止因任何原因暂停审查流程
验证输出:确认 存在且为有效JSON,且 meta.review_mode 字段为 "parallel" 或 "single"。
> 注意:即使本次执行未发现任何BUG,仍需生成完整的日志JSON文件(bugs数组为空),以建立执行记录档案。
> ⛔ 临时文件保留:BUG审查过程中生成的临时文件 bug_log_temp_ 在 save_bug_log.py 执行完成后必须保留在 中,禁止删除,禁止询问用户是否删除,禁止因临时文件的存在而暂停流程。
> 替换为当前会话所使用的大模型名称。
📋 专利申请文件审查完成(多Agent分批并行协作模式)
审查文件:xxx.docx
发现问题:N 处
审查模式:13 个审查 Agent + N 个图片子Agent 分 7 批并行审查 + 7 个辅助 Agent
使用模型:<model_name>
【审查摘要】
- 摘要-简单审查:X1 处(Agent 1)
- 摘要-复杂审查:X2 处(Agent 2)
- 权利要求书-格式检查1:Y1 处(Agent 3)
- 权利要求书-格式检查2:Y2 处(Agent 4)
- 权利要求书-所述的引用基础:Y3 处(Agent 5)
- 权利要求书-引用与主题:Y4 处(Agent 6)
- 权利要求书-复杂审查1:Y5 处(Agent 7)
- 权利要求书-单一性审查:Y6 处(Agent 8)
- 说明书-简单审查:W1 处(Agent 9)
- 说明书-公开充分审查:W2 处(Agent 10)
- 全文-简单审查:V1 处(Agent 11)
- 全文-复杂审查:V2 处(Agent 12)
- 附图审查:Z 处(Agent 13 + N_fig 个图片子Agent)
已生成审查版文档:xxx_ReviewOut_<timestamp>.docx
审查意见汇总JSON:<work_dir>/reviews_<timestamp>.json
跳过条目(如有):<work_dir>/skipped_reviews_<timestamp>.json
重定位日志(如有跳过):<work_dir>/relocation_log_<timestamp>.json
去重批注数据:<work_dir>/deduplicated_comments_<timestamp>.json
中间文件保存在:<work_dir>
【审查质量指标】
- 批注添加成功率:Z%
- 跳过批注重定位:成功 X 条 / 失败 Y 条(详见 <work_dir>/relocation_log_<timestamp>.json)
- 合规检查结果:通过X项/警告Y项/错误Z项(详见 <work_dir>/compliance_check_<timestamp>.json)
【BUG审查结果】
- 审查模式:<parallel|single>(<N>个Worker并行 / 单Agent模式)
- 本次执行共发现 BUG:N 处(critical: X / major: Y / minor: Z)
- BUG日志已归档至:<work_dir>/checking-cn-patent-format_BUG_<timestamp>.json
> 合规检查:最终输出前,启动 references/agent-compliance-check.md 子Agent检查整个执行过程的约束遵守情况,生成 。然后启动 references/agent-compliance-fix.md 子Agent加载检查日志,对可修复问题当场整改并记录。
>
> BUG审查与归档:合规检查及修复完成后,启动 references/agent-bug-review-orchestrator.md 编排Agent。编排Agent根据文件数量自动选择模式:文件较多时并行调度 references/agent-bug-review-worker.md Worker Agent分2~4组审查,文件较少时回退到 references/agent-bug-review.md 单Agent模式。最终生成结构化分析日志并归档至 。
> ⛔ 以下为最关键约束。更多详细规则见 references/prohibitions-and-rules.md。
| 故障 | 处理方式 |
|---|---|
| ------ | ---------- |
| 终端DLL初始化失败(退出码 -1073741510) | 立即停止重试(最多3次),记录当前状态,向用户报告并提供手动恢复命令 |
| 脚本执行超时/无响应 | 检查输入文件完整性,尝试在新终端重新执行该步骤 |
| JSON解析失败(Agent输出格式错误) | 读取被跳过的JSON文件,修复语法错误(中文引号、未转义双引号、括号匹配等),重新运行 |
| 批注添加大量跳过(成功率<80%) | 分析跳过原因(context verbatim/修订冲突/occurrence失效),按优先级修复后重试(最多2次) |
| 验证失败 | 排查原因(检查replace操作日志),修复对应审查意见后重新执行5.6和5.7(最多重试5次) |
| 跳过批注重定位失败 | 检查skipped_reviews文件格式和章节识别结果,重试5.8步骤(最多2次);若仍失败,保留原跳过条目供用户手动检查 |
> 更多故障处理详情见 references/fault-handling.md。
| 文件 | 用途 | 加载时机 |
|---|---|---|
| ------ | ------ | ---------- |
references/common-specs.md | 所有审查Agent共用的通用规范(JSON格式、context约束、自检清单等) | 审查Agent启动时 |
references/agent-01.md ~ agent-13.md | 13个审查Agent的独立任务配置(物理隔断) | 对应Agent启动时 |
references/agent-fig-review.md | 图片审查子Agent任务配置 | 第7批图片子Agent启动时 |
references/agent-extract.md | 文档提取Agent任务配置 | 第5.3步 |
references/agent-merge.md | 合并去重Agent任务配置 | 第5.5步 |
references/agent-image-fix.md | 图片类context修复Agent任务配置 | 第5.5步(合并后) |
references/agent-annotate.md | 批注添加Agent任务配置 | 第5.5步(图片修复后)/第5.6步 |
references/agent-skip-save.md | 跳过条目保存Agent任务配置 | 第5.5步(批注完成后) |
references/agent-skip-relocate.md | 跳过批注重定位Agent任务配置 | 第5.8步 |
references/agent-compliance-check.md | 合规检查Agent任务配置 | 最终输出前 |
references/agent-compliance-fix.md | 合规修复Agent任务配置 | 合规检查后 |
references/agent-bug-review.md | BUG审查与归档Agent任务配置(单Agent模式/Fallback) | 第5.9步(收尾,文件少时) |
references/agent-bug-review-orchestrator.md | BUG审查编排Agent任务配置(并行模式调度器) | 第5.9步(收尾,文件多时) |
references/agent-bug-review-worker.md | BUG审查工作Agent任务配置(并行Worker) | 第5.9步(由编排器调度) |
references/prohibitions-and-rules.md | 详细禁止事项和规则 | 执行过程中按需加载 |
references/fault-handling.md | 详细故障处理方式 | 遇到未预期的故障时加载 |
references/context_anchoring_guide.md | Context锚定最佳实践指南 | 审查Agent遇到锚定困难时参考 |
references/output_template_v2.json | 标准化输出格式模板 | 审查Agent输出前参考 |
references/deduplicated_comments.json | 去重后批注数据存储模板 | 第5.8步生成去重批注数据时参考 |
references/technical.md | OOXML批注注入技术参考 | 开发调试时参考 |
checking-cn-patent-format/
├── SKILL.md # 主控制文件(本文档)
├── requirements.txt # Python依赖
├── references/
│ ├── common-specs.md # 通用规范(所有审查Agent共用)
│ ├── agent-01.md ~ agent-13.md # 13个审查Agent独立配置(物理隔断)
│ ├── agent-fig-review.md # 图片审查子Agent配置
│ ├── agent-extract.md # 文档提取Agent配置
│ ├── agent-merge.md # 合并去重Agent配置
│ ├── agent-image-fix.md # 图片context修复Agent配置(新增)
│ ├── agent-annotate.md # 批注添加Agent配置
│ ├── agent-skip-save.md # 跳过条目保存Agent配置(新增)
│ ├── agent-skip-relocate.md # 跳过批注重定位Agent配置(新增)
│ ├── agent-compliance-check.md # 合规检查Agent配置(新增)
│ ├── agent-compliance-fix.md # 合规修复Agent配置(新增)
│ ├── agent-bug-review.md # BUG审查与归档Agent配置(单Agent模式/Fallback)
│ ├── agent-bug-review-orchestrator.md # BUG审查编排Agent配置(并行模式调度器)
│ ├── agent-bug-review-worker.md # BUG审查工作Agent配置(并行Worker)
│ ├── prohibitions-and-rules.md # 详细禁止事项与规则
│ ├── fault-handling.md # 详细故障处理参考
│ ├── context_anchoring_guide.md # Context锚定最佳实践指南
│ ├── output_template_v2.json # 标准化输出格式模板
│ ├── deduplicated_comments.json # 去重后批注数据存储模板(新增)
│ └── technical.md # OOXML批注注入技术参考(新增)
├── scripts/
│ ├── patent_extractor.py # 文档提取与章节拆分
│ ├── review_adder.py # 批注与修订追踪添加
│ ├── merge_reviews.py # 合并去重与冲突解决
│ ├── verify.py # 内容完整性验证
│ ├── skip_relocator.py # 跳过批注重定位(新增)
│ ├── format_json.py # JSON文件格式化(indent=2)
│ ├── save_bug_log.py # BUG日志JSON格式化写入
│ ├── output_validator.py # Agent输出JSON验证器
│ ├── doc_converter.py # .doc转.docx(COM自动化)
│ ├── document.py # docx文档操作底层
│ ├── utilities.py # 工具函数
│ ├── error_handling.py # 自定义异常类 + 批注日志记录器(新增)
│ ├── workflow.py # 工作流编排类(新增)
│ ├── patent_analyzer.py # 专利文档智能分析器(新增)
│ ├── report_renderer.py # 审查报告/摘要DOCX生成(新增)
│ └── templates/ # OOXML模板
├── ooxml/
│ └── scripts/
│ ├── unpack.py / pack.py # OOXML打包/解包
│ └── validation/ # 文档验证
└── Checking Rules/
├── 11-摘要-简单检查1.md
├── 12-摘要-复杂检查1.md
├── 31-权利要求书简单审查1~4/
├── 32-权利要求书复杂审查1~2/
├── 41-说明书-简单审查1.md
├── 42-说明书-复杂审查1-说明书公开是否充分.md
├── 51-附图-简单检查1.md
├── 52-附图-图片检查1.md
├── 61-全文-简单审查1.md
└── 62-全文-复杂审查1.md
| 错误编号 | 错误类型 | 严重级别 | 影响范围 | 修复状态 |
|---|---|---|---|---|
| --------- | --------- | --------- | --------- | --------- |
| BUG-001/002 | Agent输出空数组 | Critical | 审查维度缺失 | ✅ output_validator.py已升级为ERROR级 |
| BUG-006 | 零段落章节(摘要附图)检测失败 | Critical | 摘要附图批注100%失败 | ✅ review_adder.py+skip_relocator.py已修复 |
| BUG-003 | 图片子Agent空输出 | Major | 图片质量检查缺失 | ⚠️ 部分修复(Pillow预检) |
| BUG-007 | 去重不完整(context相同未去重) | Major | 冗余审查意见残留 | ✅ merge_reviews.py新增context精确匹配策略 |
| BUG-008 | Pillow依赖缺失无预警 | Minor | 图片元数据降级 | ✅ patent_extractor.py新增环境健康检查 |
在执行 patent_extractor.py 时,脚本会自动运行 check_environment_health() 并输出:
📋 环境健康检查:
✅ pillow (v10.2.0) [必需]
✅ lxml (v5.1.0) [必需]
❌ defusedxml [必需]
⚠️ 缺少 1 个必需依赖: defusedxml
修复: pip install 'defusedxml>=0.7.1'
处理规则:
每个Agent输出经过 output_validator.py 验证时:
false_negative_risk: high问题根因:_find_section_boundaries() 通过扫描段落文本检测章节名称。
摘要附图章节的 paragraph_count=0(仅含图片),文本扫描无法匹配。
修复方案:
_find_section_boundaries(paragraphs, known_sections=None) 新增可选参数header_sections_*.json 加载已知章节元数据(含零段落信息)涉及文件:
scripts/review_adder.py — 批注注入时自动加载header_sections.jsonscripts/skip_relocator.py — 跳过批注重定位时同样加载修复后的去重策略执行顺序:
| 优先级 | 策略名称 | 匹配条件 | 说明 |
|---|---|---|---|
| ------- | --------- | --------- | ------ |
| P0(最高) | context精确匹配 | context字段完全相同 | 【新增】同位置必去重 |
| P1 | 精确去重 | context + issue + old_text完全相同 | 原有最高优先级 |
| P2 | 语义去重 | old_text相同 + section相同 + context相似>0.8 | 原有 |
| P3-P7 | 包含关系/Issue语义/跨章vs单章/位置邻近/交叉引用 | (不变) | 原有 |
以下函数在多文件中存在逻辑副本,修改时需同步更新:
| 函数名 | 所在文件 | 同步版本 |
|---|---|---|
| ------- | --------- | --------- |
_find_section_boundaries() | review_adder.py, skip_relocator.py | v2.1-BUG006-fix |
_detect_section() | review_adder.py, skip_relocator.py | v2.1-BUG006-fix |
_get_para_text() | review_adder.py, skip_relocator.py | v2.1-BUG006-fix |
共 5 个版本