行业研究报告生成(v5.2)
概述
此技能以单一企业名称为输入,全自动完成企业研究报告的生成,输出 HTML 交互版 + Word 版 双报告。
单输入 → 全流程自动化:
企业名称 → [核验] → [采集] → [生成] → [审校] → [修复] → [转换] → 输出 HTML + Word
报告默认风格(v5.2):
- 工商信息精简为1页以内(1张核心工商表+2段简述),不展开股权演变细节
- 产品技术部分自动插入"技术原理导读"(用通俗比喻解释核心概念)
- 每一个产品线/技术路径独立设对标表,非仅一张综合表
- 竞品对比采用文字评估(优势/劣势+简要理由),不采用星级评级
- 区域竞争包含产品能力多维参数对比表和竞争力分析
- 所有表格编号连续、章节编号无重复
依赖 Skill
以下Skill由本Skill在运行时加载调用:
| Skill | 用途 | 来源 |
|-------|------|------|
| business-writing | 商业分析写作专业能力 | WorkBuddy Skill市场 |
| industry-research-analyst | 行业研究分析师 | WorkBuddy Skill市场 |
| web-search-hub | 网络公开数据多引擎搜索 | WorkBuddy Skill市场 |
⚠️ 首次使用须知: 上述3个Skill需从WorkBuddy Skill市场安装。本Skill在首次执行时自动检测缺失的依赖Skill,并使用内置市场安装工具协助安装。后续使用直接加载,不再重复安装。
HTML→DOCX转换: 本Skill已内置完整转换脚本(
references/converter.py),依赖python-docx和beautifulsoup4两个Python库,首次运行时会自动安装。无需单独安装 html-report-to-docx skill。
依赖 MCP Connector
本Skill需调用以下2个MCP连接器获取企业工商数据。若调用过程中连接失效,本Skill将在第1步和第2步中自动弹出引导窗口协助重新连接。
| Connector | 用途 |
|-----------|------|
| qcc-company(企查查) | 企业工商数据查询 |
| tyc-mcp(天眼查) | 企业工商数据补充查询 |
完整工作流程
执行所有步骤,每步完成后方可进入下一步。
前置步骤:依赖检查与安装(首次使用自动触发)
⚠️ 本步骤通过标记文件实现"只执行一次"。
跳过机制: 首先检查是否存在 references/.deps-installed 标记文件。若该文件存在,说明所有依赖已就绪,直接跳过本前置步骤的1-4步,进入第0步。若标记文件不存在,执行以下安装流程:
- 检查市场Skill依赖:依次尝试调用
Skill("business-writing")、Skill("industry-research-analyst")、Skill("web-search-hub")。若成功加载,说明已安装;若加载失败(报错/未找到),则调用Skill("marketplace-skill-installer")引导安装 - 检查Python转换依赖:执行以下命令安装
python-docx和beautifulsoup4(pip install天然幂等——已安装的库不会被重复安装):pip install python-docx beautifulsoup4 - 锁定安装状态:上述检查全部通过后,在本Skill目录下创建标记文件:
touch <SKILL_DIR>/references/.deps-installed - 确认就绪:输出简短确认信息并进入正式流程
💡 后续每次调用本Skill时,前置步骤检测到
.deps-installed文件即跳过,零开销。
第0步:加载关联 Skill
逐个调用 Skill 工具加载以下技能:
Skill("business-writing")
Skill("industry-research-analyst")
Skill("web-search-hub")
注:html-report-to-docx 不再作为外部Skill依赖,转换功能已内置于本Skill的
references/converter.py。
第1步:接收企业名称并核验
使用者输入一个企业名称。执行以下核验流程:
- 调用企查查
get_company_by_query进行模糊搜索。若此调用因连接失效而失败,立即执行 MCP断连弹窗处理 流程,引导重新连接企查查后重试。 - 若返回 1 条且完全匹配 → 自动锁定,简述锁定信息后直接进入第2步
- 若返回 多条候选(2-5条)→ 调用
AskUserQuestion工具弹出选择框:header: "选择企业"question: "搜索到多个匹配企业,请确认目标企业:"- 每个候选的
label格式为:企业名称(法人:XX,注册地:XX) - 每个候选的
description包含:统一社会信用代码、注册资本、成立日期 - 根据用户选择结果锁定企业
- 若返回 0 条 → 告知使用者无匹配结果,建议尝试企业全称或关键词,请重新输入后重试
- 锁定企业后,调用
get_company_registration_info和get_company_profile做基本信息确认,输出确认摘要
第2步:多路并行数据采集
以 ENTERPRISE_NAME 为统一查询关键词,使用企查查和天眼查MCP工具获取以下数据(尽可能并行执行)。
MCP断连处理: 在调用任何企查查或天眼查MCP工具时,若返回连接失效错误,立即暂停当前所有MCP调用,执行 MCP断连弹窗处理 流程,引导重新连接对应连接器后,从中断处继续执行。不得跳过失效的MCP调用直接进入后续步骤。
路线A — 工商信息(企查查/天眼查):
get_company_registration_info— 注册资本、成立日期、法人、注册地址等get_shareholder_info— 股东结构、持股比例、实缴情况get_actual_controller— 实际控制人get_key_personnel— 董监高人员get_external_investments— 对外投资get_change_records— 历史变更get_financial_data— 财务数据(若有)get_contact_info— 联系方式、官网- 天眼查
get_company_basic_profile— 标签、规模、园区
路线B — 知识产权(企查查/天眼查):
- 天眼查
search_patents(applicant=企业名称)— 专利信息 - 记录专利总数、发明专利/实用新型/外观设计分类、主要发明人
路线C — 网络公开数据(WebSearch):
- 搜索"[企业名称] 产品 技术 参数" — 获取产品技术细节
- 搜索"[企业名称] 中标 项目" — 获取中标业绩
- 搜索"[企业名称] 融资 投资" — 获取资本动态
- 搜索"[行业关键词] 市场规模 2026" — 获取行业数据
- 搜索"[企业名称] 竞争对手 对标" — 获取竞对信息
- 搜索"[主要竞品企业] 封装/产品 技术参数 bump pitch 2026" — 获取竞品技术参数专项数据
- 搜索"[企业名称] 专利 资质" — 补充知识产权
MCP断连处理
当调用企查查或天眼查MCP工具失败(返回连接失效/未授权/断连等错误)时,执行以下流程:
1. 立即弹窗提示: 调用 AskUserQuestion 工具弹出引导窗口,参数如下:
{
"questions": [{
"question": "[CONNECTOR_NAME]([CONNECTOR_DISPLAY_NAME])MCP连接已断开。请按以下路径重新连接:\n\nWorkBuddy → 连接器 → 搜索"[CONNECTOR_DISPLAY_NAME]" → 重新连接并授权\n\n连接完成后点击确认,我将继续执行。",
"header": "MCP重连",
"options": [
{"label": "已重新连接,继续执行", "description": "确认已在WorkBuddy连接器页面完成重新连接操作"},
{"label": "跳过此连接器", "description": "放弃该连接器的数据调用,仅使用已有数据继续(可能导致报告数据不完整)"}
]
}]
}
其中:
CONNECTOR_NAME为连接器标识(qcc-company或tyc-mcp)CONNECTOR_DISPLAY_NAME为连接器中文名(企查查或天眼查)
2. 根据用户选择执行:
- 选择「已重新连接,继续执行」→ 重试刚才失败的MCP调用,成功后继续后续步骤
- 选择「跳过此连接器」→ 放弃该连接器的所有调用,在报告中标注"XX数据暂未获取(连接器断开)",继续后续步骤
3. 多连接器场景: 若同时检测到两个连接器均失效,为每个失效的连接器单独弹窗,用户逐个确认。弹窗顺序:先企查查,后天眼查。
第3步:生成 HTML 研究报告
加载 references/report-prompt.md 中的完整提示词,将 <ENTERPRISE_NAME> 替换为实际企业名称。
以该提示词为任务描述,将所有采集到的数据作为上下文,生成一份完整的 HTML 格式研究报告,保存到工作目录:
./ENTERPRISE_NAME_设备产品及产业链研究报告.html
格式保证: 确保HTML包含完整的CSS样式定义,支持标题层级、表格编号、列表、加粗等元素。
第4步:自我审校
加载 references/review-checklist.md 中的审校清单。逐项检查第3步生成的HTML报告:
- 前序检查 — 章节编号连续无重复、表格编号从表1开始连续无跳号
- 语法完整性扫描 — 检查已知高频语病模式
- 数量表述一致性校验 — 逐项验证数量词与枚举项匹配
- 专业术语扫描 — 确认缩写都有中文全称注解
- 表格完整性检查 — 确认编号连续、无跳号无重复、无色底黑边框
- 产品技术深度检查 — 确认每个产品线/技术路径都有独立对标表,参数概念说明、对标列数和行业参考列完整
- 产品对标完整性检查(v5.2新增) — 确认非核心产品线(FCBGA/CPO等)也转化为表格对标,竞争分析采用文字评估而非星级
输出格式: 每发现一个问题,输出一条审校记录(5字段格式:编号 / 位置 / 问题类型 / 具体描述 / 建议修改)。然后直接在HTML文件中逐条修复所有发现的问题。
第5步:转换为 DOCX
使用本Skill内置的转换脚本(references/converter.py,已从html-report-to-docx skill打包内置):
python <SKILL_DIR>/references/converter.py \
--input "./ENTERPRISE_NAME_设备产品及产业链研究报告.html" \
--output "./ENTERPRISE_NAME_设备产品及产业链研究报告.docx" \
--no-toc
--no-toc 参数跳过目录页(因报告使用自定义标题样式,非Word原生Heading样式,目录无法自动填充)。
💡
<SKILL_DIR>为本Skill的安装目录,通常为~/.workbuddy/skills/snrcb-enterprise-report/。若不确定路径,可通过Skill工具加载本Skill时获取的Base directory字段确认。
第6步:呈现结果
使用 present_files 工具呈现两个文件:
- HTML报告
- Word报告
同时输出一份简短的执行摘要:
- 企业名称和基本信息
- 报告规模(章节数、表格数、段落数)
- 审校发现和修复的问题数量
- 关键信息缺口概要
- 文件保存路径
异常处理
| 场景 | 处理方式 | |------|---------| | 企业名称无法匹配 | 提示使用者确认名称,重试 | | 企查查/天眼查连接断开 | 见 MCP断连处理 流程:弹窗引导重新连接并授权 | | MCP调用多次重试仍失败 | 标注"XX数据暂未获取(连接器断开)",基于已获取数据继续生成 | | 企业财务数据为空 | 标注"公开渠道未收录",继续执行 | | 网络搜索无结果 | 标注"公开资料暂未披露",基于已获取数据继续生成 | | html-report-to-docx 转换失败 | 确认Python依赖已安装(python-docx、beautifulsoup4),重试 |
关键设计原则
- 一切基于真实数据: 所有结论均来自公开可查信息,不编造
- 分步执行、逐步验证: 每步完成后检查结果再进入下一步
- 企业名称为唯一入口: 不需要任何额外参数
- MCP断连即弹窗: 检测到连接器失效立即弹窗引导重连,不跳过不静默
- HTML→DOCX双输出: 两个文件保持内容一致
- 审校即修复: 发现问题当场修复,不是仅报告
Scan to join WeChat group