feasibility-review · 可研报告立项审查技能
定位
本技能用于对可行性研究报告进行自动解析和核心内容提取,并基于专利检索(patent.search)、论文检索(mcp_patent-search__patsnap_search sources=paper)、政策检索(web-search)等工具获取相关数据,生成包含形式审查和实质审查两大板块的立项审查报告,辅助科技管理人员做立项研判。
触发场景
用户上传项目指南/或可行性研究报告,并请求执行立项审查、可研审查、开题审查等相关任务时触发本技能。
输入材料
| 材料 | 是否必须 | 说明 |
|---|---|---|
| 可行性研究报告 | 是 | PDF / Word 均可 |
| 项目指南 | 建议提供 | 用于一致性比对;缺失时降级处理 |
执行流程总览(脚本化方案)
⚠️ 强制要求:
- 执行前必须先将完整
review_pipeline.py写入@session/feasibility-review/review_pipeline.py- 再通过
python.run单次执行该脚本- 禁止在脚本外通过API逐步检索后拼凑报告
- 禁止分步在聊天框逐章输出
Step 0 编写 review_pipeline.py(含所有检索调用、图表生成、HTML拼装逻辑)
→ 写入 @session/feasibility-review/review_pipeline.py
Step 1 读取文件(files工具读取可研报告+项目指南)
Step 2 形式审查(1.1 / 1.2 / 1.3 / 1.4 / 1.5)
Step 3 实质审查 - 提取阶段(2.1 技术路线表格 + 2.2 创新点表格)
Step 4 实质审查 - 技术路线审查(2.3)
├── 专利技术分析(活跃度+竞争格局):每条技术路线检索专利 topk=30,date_from=20170101, date_to=20261231
└── 论文技术分析(主题热点+分布影响力):每条技术路线检索论文 limit=30,date_from=20170101, date_to=20261231
└── 领域技术趋势总结
Step 5 实质审查 - 创新点审查(2.4)
├── 专利维度分析:每条创新点检索专利 topk=30,date_from=20170101, date_to=20261231
├── 论文维度分析:每条创新点检索论文 limit=30,date_from=20170101, date_to=20261231
└── 创新性评估
Step 6 政策分析(2.5):web-search 检索政策30篇
Step 7 立项审查总结与建议(2.6)
Step 8 生成完整 HTML 文件,保存到 @session/feasibility-review/review_report.html
脚本结构规范
⚠️
review_pipeline.py必须包含以下10个模块函数,禁止省略任何一个:
# ① 读取文件
def read_files(report_path, guide_path):
"""读取可研报告+项目指南文本,返回字符串"""
# ② 形式审查(纯文本分析,无需API)
def formal_review(report_text, guide_text):
"""执行1.1~1.5,返回HTML片段"""
# ③ 提取技术路线(表格形式)
def extract_routes(report_text):
"""返回技术路线列表,每条含编号/名称/核心内容/关键词标签"""
# ④ 提取创新点(表格形式)
def extract_innovations(report_text):
"""返回创新点列表,每条含编号/名称/核心内容/关键词标签"""
# ⑤ 封装专利检索(必须传入日期参数)
def search_patents(query, topk=30, date_from=20170101, date_to=20261231):
"""调用 mcp_patent-search__patsnap_search,返回专利列表"""
# ⑥ 封装论文检索(必须传入日期参数)
def search_papers(query, limit=30, date_from=20170101, date_to=20261231):
"""调用 mcp_patent-search__patsnap_search sources=paper,返回论文列表"""
# ⑦ 封装政策检索
def search_policies(keywords):
"""调用 web-search,返回政策列表"""
# ⑧ 封装pyecharts图表生成(交互式)
def make_pyechart(data, chart_type, title):
"""使用pyecharts生成折线图/柱状图,返回render_embed() HTML字符串"""
# ⑨ 封装词云生成(静态PNG)
def make_wordcloud(texts):
"""TF-IDF提取关键词,使用wordcloud生成PNG,返回base64字符串"""
# ⑩ 渲染最终HTML
def render_html(sections):
"""合并所有章节HTML片段,渲染完整报告,写入review_report.html"""
断点续写机制
防止步骤超限导致报告不完整,每完成一个章节立即持久化。
每完成一个章节:
→ 写入 @session/feasibility-review/sections/section_X_X.json(章节数据+图表)
→ 更新 @session/feasibility-review/progress.json(记录已完成章节列表)
新一轮执行开始时:
→ 检测 progress.json 是否存在
→ 存在 → 读取已完成列表,跳过已完成章节,从断点续写
→ 不存在 → 全新执行
所有章节完成后:
→ 合并所有 section_*.json → 渲染 review_report.html
→ 删除 progress.json 和 sections/ 临时文件
报告章节结构与执行规范
⚠️ 审查对象:形式审查和实质审查的对象均为用户上传的可行性研究报告,不得审查其他内容。
一、形式审查
1.1 文本规范
逐项检查并标注问题位置(文件名、页码、段落),必须分点罗列以下检查项:
- 语法检验:检查主谓宾缺失、句子不完整等明显语法错误
- 连词叠字:识别重复连词(如"和和"、"的的")或叠字问题
- 错别字识别:常见错别字、同音字误用
- 重复文本识别:段落级别的重复内容
1.2 篇章结构
必须分点罗列以下检查项:
- 章节顺序错乱/缺失:核查章节编号是否连续,是否有跳号或缺失
- 目录与页码一致性:目录中章节标题与正文标题是否一致
- 首页缺失:检查是否存在封面/首页
1.3 完整性检查
- 两份文件均已上传:标注
✅ 已上传:项目指南、可行性研究报告 - 仅上传一份:标注
⚠️ 缺少:[未上传的文件名],建议补充后重新审查 - 均未上传:标注
❌ 未上传任何材料,无法执行完整审查
1.4 一致性检查
步骤一:从项目指南中提取字段(未找到则填"未找到")
- 项目名称 / 研究内容 / 预期成果
步骤二:从可行性研究报告中提取相同字段
步骤三:逐项比对,输出对比表格
- 项目名称一致性:一致 →
✅ 通过;不一致 →❌ 不通过+ 标注差异位置 - 预期成果一致性:同上
1.5 审查汇总
列出所有"不通过"项的位置标记,供人工复核,输出问题清单表格。
二、实质审查
⚠️ 审查对象严格限定为可研报告本身,不得延伸审查其他文档。
2.1 技术路线提取
从可研报告的项目概述、技术方案、技术路线、研究内容等章节自动提取,必须以表格形式输出:
| 字段 | 说明 |
|---|---|
| 编号 | 路线一 / 路线二 / 路线三 |
| 路线名称 | 一句话命名 |
| 核心内容 | 2–3句描述 |
| 技术关键词标签 | 用于检索的扩展词(5–8个) |
- 数量自动判断(通常 2–5 条),路线间不能重复,须有明显边界和区别
- 从每条技术路线中提取技术关键词并扩词,用于专利语义检索和论文/政策检索
2.2 创新点提取
从可研报告的技术方案、技术路线、研究内容等章节提取,必须以表格形式输出:
| 字段 | 说明 |
|---|---|
| 编号 | 创新点一 / 创新点二 / 创新点三 |
| 创新点名称 | 一句话命名 |
| 核心内容 | 2–3句描述 |
| 技术关键词标签 | 用于检索的扩展词(5–8个) |
- 若报告已明确描述创新点:按条提取,原文输出
- 若未明显描述:结合相关章节自行总结,分点罗列(2–5 条)
2.3 技术路线审查
2.3.1 专利技术分析
2.3.1.1 技术活跃度分析
核心目标:分析该领域专利申请的活跃度变化趋势。
执行步骤(每条技术路线均需执行):
- 调用
patent.search(关键词+语义混合),每条路线 topk=30,date_from=20170101, date_to=20261231;无结果则如实反馈 - 生成以下图表(使用 pyecharts 生成交互式 HTML 图表,调用
chart.render_embed()内嵌):- 图表一:近十年专利申请按年趋势折线图(x轴:申请年,y轴:年申请量)
- 注释:「数据来源:智慧芽专利数据库,基于检索样本(N≤30)分布示意,时间范围2017–2026年」
- 分析要点:10年申请量与增长率、波峰/波谷、活跃度判断,字数不少于200字
- 图表二:技术聚类图(使用 scipy 层次聚类 + matplotlib 静态PNG,base64内嵌)
- 分析要点:技术路线可覆盖范围和应用广度,字数不少于200字
- 图表一:近十年专利申请按年趋势折线图(x轴:申请年,y轴:年申请量)
2.3.1.2 专利技术竞争格局分析
核心目标:分析申请人地域分布和企业/机构排名,梳理竞争对手布局策略。
执行步骤(每条技术路线均需执行):
- 复用 2.3.1.1 已召回的 topk=30 篇专利,无需重复检索
- 生成以下图表(pyecharts 交互式):
- 图表一:地域分布柱状图(x轴:国家/受理局,y轴:专利数量)
- 分析要点:专利布局国家数量、策源地,字数不少于200字
- 图表二:企业 Top5 折线图(x轴:申请年,y轴:年申请量)
- 分析要点:头部企业竞争态势,字数不少于200字
- 图表三:科研院 Top5 折线图(x轴:申请年,y轴:年申请量)
- 分析要点:科研机构创新热度,字数不少于200字
- 图表一:地域分布柱状图(x轴:国家/受理局,y轴:专利数量)
2.3.2 论文技术分析
2.3.2.1 论文主题与热点分析
核心目标:主题分类,分析研究热点和前沿方向。
执行步骤(每条技术路线均需执行):
- 调用
mcp_patent-search__patsnap_search(sources=paper),每条路线 limit=30,date_from=20170101, date_to=20261231;无结果则如实反馈 - 生成以下图表:
- 图表一:近十年论文按年发表趋势折线图(pyecharts 交互式)
- 注释:「数据来源:智慧芽论文数据库,基于检索样本(N≤30)分布示意,时间范围2017–2026年」
- 分析要点:增长趋势与前沿方向判断,字数不少于200字
- 图表二:关键词云(wordcloud 库,TF-IDF提取自论文标题+摘要,静态PNG base64内嵌)
- 分析要点:研究热点词汇聚焦分析,字数不少于200字
- 图表三:技术聚类图(scipy + matplotlib,静态PNG base64内嵌)
- 分析要点:技术主题聚焦区域,字数不少于200字
- 图表一:近十年论文按年发表趋势折线图(pyecharts 交互式)
2.3.2.2 论文分布与学术影响力
核心目标:统计作者地域分布、机构排名,评估学术影响力。
执行步骤(每条技术路线均需执行):
- 复用 2.3.2.1 已召回的 limit=30 篇论文,无需重复检索
- 生成以下图表(pyecharts 交互式):
- 图表一:国家/地区论文分布柱状图
- 分析要点:主要来源国/策源地,字数不少于200字
- 图表二:企业 Top5 折线图
- 分析要点:应用前景判断,字数不少于200字
- 图表三:科研院 Top5 折线图
- 分析要点:研究前景判断,字数不少于200字
- 图表一:国家/地区论文分布柱状图
2.3.3 领域技术趋势总结
综合专利+论文分析,从以下5个维度总结,字数不少于500字:
- 快速发展期判断
- 新技术方向识别
- 成熟度与应用拓展
- 未来技术突破点
- 项目先进性判断(绘制专利/论文近10年增长曲线交叉图,pyecharts 交互式)
2.4 创新点审查
2.4.1 创新点-专利维度分析
执行步骤(每条创新点均需执行):
- 调用
patent.search,每条创新点 topk=30,date_from=20170101, date_to=20261231 - 生成以下图表(pyecharts 交互式):
- 图表一:近十年相似专利按年申请趋势折线图
- 注释:「数据来源:智慧芽专利数据库,基于检索样本(N≤30)分布示意,时间范围2017–2026年」
- 分析要点:近2年趋势与竞争态势判断,字数不少于200字
- 图表二:相似度 Top5 专利技术方案对比表
- 分析要点:与本创新点的技术异同,字数不少于200字
- 图表一:近十年相似专利按年申请趋势折线图
2.4.2 创新点-论文维度分析
执行步骤(每条创新点均需执行):
- 调用
mcp_patent-search__patsnap_search(sources=paper),每条创新点 limit=30,date_from=20170101, date_to=20261231 - 生成以下图表(pyecharts 交互式):
- 图表一:近十年相关论文按年发展趋势折线图
- 注释:「数据来源:智慧芽论文数据库,基于检索样本(N≤30)分布示意,时间范围2017–2026年」
- 分析要点:前沿性判断,字数不少于200字
- 图表二:相似度 Top5 论文技术方案对比表
- 分析要点:技术创新优势,字数不少于200字
- 图表一:近十年相关论文按年发展趋势折线图
2.4.3 创新点-创新性评估
综合专利/论文分析,从以下2个维度评估,字数不少于500字:
- 是否容易形成技术壁垒(专利/论文数量+增长趋势判断)
- 是否具有技术领先性(综合Top5专利+Top5论文比对)
2.5 政策分析
执行步骤:
- 基于 2.1 技术路线关键词,调用
web-search检索近5年相关政策,召回30篇- 优先渠道:
https://sousuo.www.gov.cn/zcwjk/policyDocumentLibrary
- 优先渠道:
- 输出:
- 政策数量近3–5年增长趋势(pyecharts 交互式折线图)
- 政策核心内容摘要、举措与布局
- Top10 政策列表(含标题、发布机构、日期、链接)
- 匹配度判断,字数不少于200字
2.6 立项审查总结与建议
2.6.1 行业发展趋势契合度评估
- 综合【领域技术趋势总结】+【创新性评估】+【政策分析】
- 分点阐述契合点,字数不少于300字
2.6.2 主要竞争主体及研究进展总结
- Top5 申请人分析表格(企业机构、核心优势、关键专利)
- 技术优势对比,字数不少于300字
2.6.3 行业机遇与挑战
- 政策扶持力度 / 技术难题 / 应对方案
- 字数不少于300字
2.6.4 项目评级
| 等级 | 判断标准 | 建议 |
|---|---|---|
| A | 具备明显的可行性、创新性、必要性 | 直接通过 |
| B | 具备一定的可行性、创新性、必要性 | 调整研判后可通过 |
| C | 不具备可行性、创新性、必要性 | 直接驳回 |
- 评级依据说明,字数不少于300字
2.6.5 附录
分三个子清单,每类随机抽取20条,所有条目必须提供可点击链接:
- 附录A1 专利清单(20篇):专利号(链接到智慧芽)、标题、申请人、公开日
- 附录A2 论文清单(20篇):标题(链接到智慧芽)、期刊/会议、年份、被引次数
- 附录A3 政策/报告/新闻清单(20篇):标题(链接到原文)、来源机构、发布日期、类型标签(政策🔴/报告🔵/新闻🟢)
图表生成规范
⚠️ 强制要求:
- 折线图、柱状图、分布图:必须使用 pyecharts 生成交互式 HTML 图表,调用
chart.render_embed()内嵌到报告HTML中- 词云图:使用 wordcloud 库,关键词从专利/论文标题+摘要 TF-IDF提取,静态PNG base64内嵌
- 聚类图:使用 scipy + matplotlib,静态PNG base64内嵌
- 每张图表下方必须附≥200字文字分析
- 每张图表标题下方必须标注数据来源注释:「数据来源:智慧芽专利/论文数据库,基于检索样本(N≤30)分布示意,时间范围2017–2026年」
- 若检索结果 < 3 条,说明数据不足,输出文字分析替代图表
工具依赖
| 工具 | 用途 |
|---|---|
patent.search (mcp_patent-search__patsnap_search) |
专利检索(技术路线/创新点) |
mcp_patent-search__patsnap_search(sources=paper) |
论文检索 |
web-search (mcp_web-search__web_search) |
政策检索 |
files |
读取用户上传的可研报告/项目指南 |
| Python (pyecharts / wordcloud / scipy / matplotlib / jinja2) | 图表生成与HTML渲染 |
禁止行为清单(必须严格遵守)
| 编号 | 禁止行为 | 强制规范 |
|---|---|---|
| ❌1 | 使用 matplotlib 生成折线图/柱状图/分布图 | 必须使用 pyecharts 生成交互式HTML图表 |
| ❌2 | 图表以 <img> base64 PNG 形式嵌入(折线/柱状/分布) |
必须使用 render_embed() 内嵌交互式图表 |
| ❌3 | 创新点(2.2)用列表/<ol>输出 |
必须用表格(编号/名称/核心内容/关键词) |
| ❌4 | 技术路线(2.1)用列表输出 | 必须用表格(编号/名称/核心内容/关键词) |
| ❌5 | 检索未传日期参数 | 必须传入 date_from=20170101, date_to=20261231 |
| ❌6 | 2.6 未完成就生成 HTML 文件 | 禁止提前生成报告,必须所有章节完成后统一生成 |
| ❌7 | 在聊天框以 Markdown 格式输出报告全文 | 必须生成 .html 文件保存到指定路径 |
| ❌8 | 审查非可研报告的内容 | 审查对象严格限定为用户上传的可研报告 |
| ❌9 | 图表无文字分析 | 每张图表下方必须附≥200字分析 |
| ❌10 | 图表无数据来源注释 | 每张图表必须标注样本说明注释 |
| ❌11 | 分步在聊天框逐章输出报告 | 必须通过 python.run 单脚本一次性生成完整HTML |
| ❌12 | 论文检索使用旧工具名 | 必须使用 mcp_patent-search__patsnap_search(sources=paper) |
| ❌13 | 先逐步API检索再手动拼凑HTML报告 | 必须先写完整review_pipeline.py脚本,再python.run单次执行 |
| ❌14 | 报告内容与可研报告原文无关(如分析行业通用可行性) | 所有审查结论必须基于可研报告原文,不得自行发挥 |
输出规范
- 输出语言:与用户输入保持一致(默认中文)
- 章节结构:严格按照「一、形式审查(1.1/1.2/1.3/1.4/1.5)」+「二、实质审查(2.1~2.6.5)」两大章节输出
- 格式:必须以 HTML 格式输出,具体要求如下:
- 所有章节内容生成完毕后,通过 Python 脚本将完整报告渲染为自包含 HTML 文件
- pyecharts 图表使用
render_embed()内嵌,词云/聚类图使用 base64 内嵌 - HTML 文件保存路径:
@session/feasibility-review/review_report.html - 聊天回复中提供文件本地路径,并附报告内容概要
- 禁止仅以 Markdown 格式在聊天框内直接输出报告全文
使用前配置
本 Skill 依赖智慧芽开放平台 MCP 服务:
- 完成安装、初次使用时需进行自检,参见 README.md
- 用户需完成账号授权,并确保 Agent 环境已启用对应 MCP 工具
- 若未完成配置,本 Skill 只能提供分析框架,无法检索实时数据或生成基于数据库的结论
- 缺少MCP配置时,引导用户参照 README.md 在 [open.zhihuiya.com](https://open.zhihuiya.com/) 获取MCP。
