Back to skills
extension
Category: OtherAPI key required

企业尽调报告

生成企业尽职调查与创始人背景深度研究报告(Markdown→HTML→PDF)。 覆盖八模块:公司基本面、控制权与隐藏链条、创始人画像、融资与资本、技术与知识产权、供应链与销售网络、风险与舆情、竞争格局分析。

personAuthor: user_87fe9f99hubcommunity

企业尽职调查报告生成规范

概述

基于水滴信用 MCP 数据平台(data_query / sti / bid / data_risk / data_listed),生成具备公开发布质量的企业尽职调查报告。报告以 Markdown 撰写,通过 scripts/build_dd_report.py 转为含封面/目录/页眉页脚及 AI 深度解读的 PDF。

MCP 依赖与配置

前置检查

执行本技能前,须确认以下水滴信用 MCP 服务均已配置并可调用:

| MCP 服务 | 功能 | DD 报告关键工具 | |----------|------|---------------| | shuidi_data | 企业工商数据 | get_company_infoget_company_partnerget_company_investmentget_company_changesget_company_beneficial_ownerpierce_equityget_company_controllerget_person_related_companysearch_funding_recordsearch_company_risksearch_news | | shuidi_risk | 司法风险数据 | search_lawsuit_case_executed_person_dishonest_bankruptcy_punishment_equity_pledge_abnormal_operation | | shuidi_qc | 供应商关系与资质 | supplier_get_company_infosupplier_search_relationssearch_import_export_credit | | shuidi_sti | 知识产权与科创 | search_patentsearch_software_copyrightsearch_trademarksearch_standardevaluate_sti_capabilitysearch_website_icp | | shuidi_bid | 招投标数据 | search_company_winning_bidsearch_company_bidsearch_bid | | shuidi_listed | 上市公司财务 | get_quoted_company_infoget_income_statementget_balance_sheetget_cash_flowsearch_annual_stock_indicator |

检查方法:在生成报告前,调用 mcp_data_query_get_company_info 确认返回 status_code: 1。若返回 status_code: 2 或连接错误,须停止执行并提示用户配置 MCP。

MCP 配置方法

在 Hermes Agent 的 MCP 配置文件中添加以下水滴服务:

{
  "mcpServers": {
    "shuidi_data": {
      "url": "https://data.shuidi.cn/mcp?pname=${SHUIDI_MCP_PNAME}&pkey=${SHUIDI_MCP_PKEY}"
    },
    "shuidi_risk": {
      "url": "https://risk.data.shuidi.cn/mcp?pname=${SHUIDI_MCP_PNAME}&pkey=${SHUIDI_MCP_PKEY}"
    },
    "shuidi_qc": {
      "url": "https://qc.data.shuidi.cn/mcp?pname=${SHUIDI_MCP_PNAME}&pkey=${SHUIDI_MCP_PKEY}"
    },
    "shuidi_sti": {
      "url": "https://sti.data.shuidi.cn/mcp?pname=${SHUIDI_MCP_PNAME}&pkey=${SHUIDI_MCP_PKEY}"
    },
    "shuidi_bid": {
      "url": "https://bid.data.shuidi.cn/mcp/?pname=${SHUIDI_MCP_PNAME}&pkey=${SHUIDI_MCP_PKEY}"
    }
  }
}

获取凭证:访问 水滴信用开放平台 申请 SHUIDI_MCP_PNAME(项目名称)和 SHUIDI_MCP_PKEY(项目密钥)。将环境变量注入 Hermes Agent 运行环境:

export SHUIDI_MCP_PNAME="your_project_name"
export SHUIDI_MCP_PKEY="your_project_key"

配置路径:MCP 配置文件通常位于 ~/.hermes/profiles/<profile>/mcp.json 或在 ~/.hermes/config.yamlmcp 字段中配置。

依赖缺失处理

DD 报告八模块对 MCP 服务的依赖分级:

  • 核心(缺一不可)shuidi_datashuidi_risk——缺失将严重削弱控制权分析和风险模块
  • 重要(缺失可降级)shuidi_stishuidi_bidshuidi_qc——缺失时对应的技术/招投标/供应链模块标注「数据不可获取」
  • 可选shuidi_listed——仅上市公司调研需要

核心原则:证据链优先

所有结论须满足可验证、可复现。每个数据点须标注:

| 要素 | 说明 | |------|------| | 数据来源 | 具体 MCP 工具名称与查询时间 | | 计算方式 | 推演过程的完整公式 | | 置信等级 | [事实] / [推断] / [待验证] |

数据源优先级

查询水滴 MCP → 有结果?→ 直接引用(零额外成本)
              ↓ 无结果或不足
         是否属于博查补位场景?
              ↓ 是 → 调用博查搜索(计费,严格限次)

水滴 MCP 覆盖约 80% 场景(工商/股权/司法/科创/招投标/新闻)。博查仅用于:实时事件(24-48h)、产品详情、第三方行业报告、政策法规变动、创始人社交媒体、融资并购传闻、目标企业无水滴记录。博查的使用策略详见 references/bocha-query-strategy.md

八模块调研框架

A · 公司基本面

get_company_info / get_company_partner / get_company_investment / get_company_changes

B · 控制权与隐藏链条 ★(创始人调查核心)

工具链get_company_beneficial_ownerpierce_equity(direction=1)get_company_controller

检测流程

  1. 比对受益声明与实际加权持股
  2. 对主要股东递归执行股东 + 受益所有人查询
  3. 筛查壳公司特征:短期密集注册、法人代持、地址接近目标
  4. 计算实际控制力 = 直接持股 + Σ(路径比例 × 实体持股)
  5. 标记偏差 → [发现]

一致行动人识别、跨境实体处理、壳公司命名模式详见 references/control-chain-detection.md

C · 创始人画像

get_person_related_company 获取完整任职记录。按 establish_time 排序构建全周期职业时间线,检测:前创业期实体、校友命名模式、离职高管竞争威胁、董事会外部 VC 关联。创始人法律纠纷用 search_lawsuit 检索。

D · 融资与资本

search_funding_record / search_quoted_company / get_company_investment(基金 LP/GP 结构)

E · 技术与知识产权

search_patent(page_index=0) / search_software_copyright / search_trademark / search_standard / evaluate_sti_capability。注意:专利可能分散在多家子公司(如「XX 科技」与「XX 创新科技」),须分别检索。

F · 市场、供应链与销售网络

四子模块可并行执行:

  • F1 · 供应商:投资树从内向外重构供应链 + supplier_search_relations(level=3)
  • F2 · 销售网络:筛选贸易子公司 + 风险隔离检测 + search_import_export_credit
  • F3 · 品牌渠道:商标推断品牌架构 + ICP 备案 + 消费者投诉分析
  • F4 · 上市供应商财务反推 ★:识别上市供应商 → 查财务三表 → 估算采购规模(行业占比法 + BOM 成本法交叉验证)。详见 references/listed-supplier-reverse-engineering.md

G · 风险与舆情

search_company_risk(only_self_risk=false) — 信息价值最高的单次调用,一次性返回自身/关联/合同风险仪表盘。补充 search_news 按情感标签分类。

H · 竞争格局分析 ★

四阶段模式:基础对比(专利/投资/融资并列表)→ 政府支持分析(军工合同/招商)→ 客户披露(IPO 辅导材料)→ 供应链映射(互动平台客户确认)。非上市企业发现技法详见 references/competitive-analysis.md

报告输出

文件结构

| 文件 | 路径 | |------|------| | Markdown 正文 | ~/.hermes/profiles/<profile>/reports/<kebab-name>.md | | PDF 输出 | scripts/build_dd_report.py report.md output_dir/ |

Markdown 头部格式

# [财经媒体风格标题]
> **出品方**:水滴信用
> **数据支持**:水滴信用 MCP
> **研究日期**:YYYY-MM-DD

十章结构

第一章   执行摘要
第二章   公司概况
第三章   控制权深度分析 ★
第四章   创始人画像
第五章   资本路径
第六章   技术与知识产权
第七章   供应商与制造体系
第八章   营销体系与市场
第九章   风险分析
第十章   竞争格局 ★(如适用)
附录     数据来源与免责声明

PDF 排版关键规则

强制交付标准

以下五项为报告的强制交付标准,缺一不可:

| # | 强制项 | 实现方式 | |---|--------|---------| | 1 | 封面占完整一页 | @page cover { margin: 0; @top-center { content: none; } @bottom-center { content: none; } } + .cover { width: 210mm; height: 297mm; page: cover; } 满版铺满,封面无页眉页脚页码 | | 2 | 目录不可缺 | 独立 @page toc 页,列明全部章节标题 | | 3 | 目录须有自动页码 | <a href="#ch1"> + a::after { content: target-counter(attr(href), page); } — 注意 ::after 必须挂在 <a> 上而非子元素上,否则 attr(href) 取值为空导致所有页码为 0 | | 4 | 正文每章段前强制分页 | .chapter { page-break-before: always }.page { page-break-before: always } | | 5 | 全局页码 | @bottom-center { content: counter(page); } 放在默认 @page 规则中 |

CSS 命名页规范

@page { margin: 15mm; size: A4;
  @top-center { content: element(header); font-size: 9px; color: #888; }
  @bottom-center { content: counter(page); font-size: 9px; color: #888; }
}
@page cover { margin: 0; @top-center { content: none; } @bottom-center { content: none; } }
@page toc { @top-center { content: none; } }

.cover { page: cover; width: 210mm; height: 297mm; }
.toc { page: toc; }
.page { page-break-before: always; }

目录页码的 target-counter 陷阱

target-counter(attr(href), page) 必须通过 ::after 应用在 <a> 元素本身上,不能应用在子元素:

/* ✗ 错误 — .toc-pn 是 <a> 的子 span,无 href 属性 → 所有页码为 0 */
.toc .toc-pn::after { content: target-counter(attr(href), page); }

/* ✓ 正确 — ::after 挂在 <a> 上,attr(href) 读取到 "#ch1" */
.toc-entry a::after { content: leader(".") target-counter(attr(href), page); }
<!-- ✓ 正确结构 -->
<a href="#ch1"><span>执行摘要</span><span class="toc-dots"></span></a>

页眉 Running Header

.page-header { position: running(header); display: flex; justify-content: space-between; }
@page { @top-center { content: element(header); } }
@page cover, @page toc { @top-center { content: none; } }

关键陷阱

| # | 陷阱 | 处置 | |---|------|------| | 1 | 封面未占整页/缺目录/无页码/未分页(高频错误) | 严格按"强制结构"5 项逐项检查:封面整页→目录独立→章前分页→全局页码→全局页眉。交付前肉眼确认 PDF 每页格式 | | 2 | **text** 在 PDF 中未渲染粗体 | apply_bold() 应用于所有内容路径 + 最终 3-pass 正则安全网 | | 3 | <pre> 树形图中文字符错位 | CSS box-model 树形图替代制表符 | | 4 | 页眉文字与横线间距大 | @top-center margin/padding=0,横线移至 .page-header | | 5 | 少数股东权益为负 → 子公司资不抵债 | get_balance_sheet 检查 minority_equity | | 6 | 受益所有人查询不完整 | 须与 get_company_partner 交叉验证 | | 7 | get_company_controller 返回空 | 结果本身即分析价值——记录系统无法识别控制人 | | 8 | search_news 按人名搜索返回空 | 仅匹配公司名,创始人新闻须按公司名搜索 | | 9 | execute_code 生成大型 HTML(>25KB)报 SyntaxError | DD 报告 HTML 通常 30-50KB,execute_code 的多行 f-string 极易触发 unterminated string literal。改用 write_file 写入完整 HTML,然后用 terminal 调 WeasyPrint 转换。资产报告等较小 HTML(~24KB)仍可用 execute_code |

验证清单

  • [ ] 八模块 MCP 调用全部完成
  • [ ] 控制权计算逐步展示公式
  • [ ] 每个数据点标注来源 + 置信等级
  • [ ] 核心结论至少有 2 个独立来源交叉验证
  • [ ] 封面整页满版(@page cover { margin: 0 } + 210mm × 297mm),无页眉页脚页码
  • [ ] 目录独立成页,列出全部章节标题
  • [ ] 目录页码由 target-counter(attr(href), page) 自动生成,各章节页码不为 0
  • [ ] 每章段前强制分页(.page { page-break-before: always }
  • [ ] 全局页码 counter(page) 正确递增
  • [ ] 全局页眉显示"企业名 · 尽职调查报告"(封面和目录页除外)
  • [ ] 表格和 AI 框设置 page-break-inside: avoid
  • [ ] PDF 中文正常渲染