A股深度财务分析与研报生成Skill。融合8本财务经典方法论,基于宏观-中观-微观三层框架,支持200+财务指标分析、70+舞弊信号预警、7大行业专精对标。 Use when user asks to 财务分析、财报分析、财务报表分析、深度研报、公司研报、 行业报告、行业分析、行业对比、快速排雷、舞弊识别、财务造...
编程
公司深度分析助手
试用A股/港股公司深度分析。输入公司名称或股票代码,自动完成 6 步分析流程: 数据采集 → 公司画像 → 产业链五力 → 竞争护城河 → 财务四维 → 相对估值。 输出双产物:公司深度分析报告 + 投研简报 支持单步模式:用户指定"财务情况/财务分析/公司画像/公司基本面"时,按路由表只跑对应步骤并输出对应单文件。 触发词:公司分析 / 深度分析 / 公司调研 / 投资初筛 / 深度调研 / 公司研究 / 行业研究 / 投研简报 / 财务情况 / 财务分析 / 公司画像 / 公司基本面
它能做什么
A股/港股公司深度分析。输入公司名称或股票代码,自动完成 6 步分析流程: 数据采集 → 公司画像 → 产业链五力 → 竞争护城河 → 财务四维 → 相对估值。 输出双产物:公司深度分析报告 + 投研简报 支持单步模式:用户指定"财务情况/财务分析/公司画像/公司基本面"时,按路由表只跑对应步骤并输出对应单文件。 触发词:公司分析 / 深度分析 / 公司调研 / 投资初筛 / 深度调研 / 公司研究 / 行业研究 / 投研简报 / 财务情况 / 财务分析 / 公司画像 / 公司基本面
技能文档
公司深度分析助手(A 股 / 港股)
输入 A 股/港股公司名称或股票代码,默认执行 6 步分析,输出双产物:
- MD 深度分析报告(
{公司名}_深度分析报告_{YYYYMMDD}.md) - HTML 投研简报(
{公司名}_投研简报_{YYYYMMDD}.html)
单步模式:用户说"看一下 XX 的财务情况" / "XX 的公司画像" 时,按 执行模式路由 表只跑对应步骤,输出对应单文件(不要双产物)。
适用场景
- 个人投资者做投前初筛(5 分钟看一家公司基本面)
- 卖方/买方研究员做行业研报的子模块
- 投资经理在投委会前快速过一遍潜在标的
- 跨行业比较 5-10 家可比公司的财务与护城河
- 只想看财务 → 单步模式(输出财务分析单文件,不必出简报)
- 只想看公司画像 → 单步模式(输出公司画像单文件)
执行模式路由
路由表
| 用户关键词(任一命中) | 模式 | 跑的步骤 | 输出文件 |
|---|---|---|---|
| (默认)/ 没有任何特殊词 | full | Step0 + Step1 + Step2 + Step3 + Step4 + Step5 | 双产物:_深度分析报告.md + _投研简报.html |
| 财务 / 财务情况 / 财务分析 / 看看财务 | financial | Step0(数据采集) + Step4(财务四维) | _财务分析.md(单文件) |
| 画像 / 公司画像 / 公司基本面 / 看看公司 | profile | Step0(数据采集) + Step1(公司画像) | _公司画像.md(单文件) |
关键词优先级(多关键词冲突时)
最具体的优先:financial > profile > full
例:
- "分析 XX 公司的财务情况" →
financial(命中"财务情况") - "XX 的公司画像怎么样" →
profile(命中"公司画像") - "帮我分析一下 XX" →
full(默认) - "XX 的财务和公司画像" →
financial(最具体的优先,不双跑)
单步模式必跑的前置
- Step0 数据采集必跑:所有模式的输入都依赖
/tmp/{code}_data.json - 跳过中间步是安全的:Step2(五力)/ Step3(护城河)/ Step5(估值)的产物不喂给 Step1 / Step4,跳过不影响单文件质量
- 代价:单步模式输出文件没有行业竞争 / 护城河 / 估值章节,质量门只检"该模式的章节"
用户提示模板
路由判断完成后,在对话中展示一行:
🔍 识别到:{公司全称}({代码})· {市场} · 即将进入「{模式}」模式({跑哪几步}),输出 {单/双} 产物:{文件清单}
执行原则
- 报告行文按
ai-internal-rules.md §3.1-3.4硬要求(结论先行 + 主谓宾结构) - 所有财务数字标注来源,推算指标列出公式
- 推断内容标注置信度(高/中/低)
- full 模式:6 步串行执行,StepN 完成后才能启动 StepN+1。单步模式(financial/profile):按 执行模式路由 表只跑对应步骤
- 无法获取的信息标注为信息盲区,不编造
- 产物必须基于模板生成:在 Step6 写任何文件前,必须先
Read对应模板文件并严格按其结构填充。不得凭记忆自行编写报告结构。详见 §6.0 产物生成的强制执行规则
环境准备与降级策略(必读)
本 skill 的运行依赖 2 类外部能力:Python 解释器、scripts/ 目录下的采集脚本(含纯 HTTP 数据模块 westock_data.py,零外部依赖)。不同运行环境(本机 / Codex / ClawHub 沙箱)的可用性差异很大,下面给出统一的探测规则与三级降级策略,确保任何环境都能跑通。
1. Python 命令探测(python3 与 python 均兼容)
不同环境 Python 命令名不同(macOS/Linux 多为 python3,部分环境为 python,Codex 等容器可能两者皆有或仅有其一)。
统一探测规则:执行任何脚本前,先运行以下探测确定命令名,后续统一用变量 $PY 指代:
# 探测:优先 python3,回退 python,都没有则走 L3 降级
if command -v python3 >/dev/null 2>&1; then PY=python3
elif command -v python >/dev/null 2>&1; then PY=python
else echo "⚠ 未找到 Python,走 L3 降级路径"; PY=""
fi
echo "使用 Python 命令: ${PY:-无}"
脚本 shebang 为
#!/usr/bin/env python3,直接用$PY显式调用可绕过 shebang 限制(如python scripts/collect_data.py)。
2. 数据采集依赖说明(零外部 CLI)
本 skill 的数据采集不依赖任何外部 CLI 或第三方 npm 包。所有数据通过公开免费 HTTP 接口直接获取:
| 数据项 | 数据源 | API |
|---|---|---|
| 财务三表(利润表/资产负债表)— A 股 | 新浪财经 | quotes.sina.cn/cn/api/...CompanyFinanceService |
| 财务三表(利润表/资产负债表)— 港股 | 东财港股 datacenter | RPT_HKF10_FN_INCOME / RPT_HKF10_FN_BALANCE |
| 现金流量表 | A 股:新浪财经;港股无此表(估值自动跳过 EV/EBITDA) | — |
| 主要财务指标(ROE/毛利率/资产负债率等)— A 股 | 东财 datacenter | datacenter.eastmoney.com/securities/api/data/v1/get |
| 主要财务指标(ROE/毛利率/资产负债率等)— 港股 | 东财港股 datacenter | RPT_HKF10_FN_GMAININDICATOR |
| 公司概况 / F10 | 东财 F10 | A 股 PC_HSF10/CompanySurvey;港股 PC_HSF10/CompanySurvey?code=HK.{code} |
| 十大股东 / 股东户数 | 东财 F10 ShareholderResearch | 同上 |
| 行情报价(A 股) | 腾讯财经 | qt.gtimg.cn/q= |
| 行情报价(港股) | 腾讯财经 | qt.gtimg.cn/q=hk{code} |
| 分红送配 | 东财 F10 BonusFinancing | emweb.securities.eastmoney.com/PC_HSF10/BonusFinancing/... |
执行约定:脚本
scripts/collect_data.py和scripts/westock_data.py已内置上述接口调用逻辑,不需要安装任何额外工具。直接用$PY scripts/collect_data.py {CODE}即可运行。
3. 三级降级策略
| 级别 | 触发条件 | 行为 |
|---|---|---|
| L1 正常 | scripts/ 存在 + $PY 可用 | 执行 collect_data.py / valuation.py 脚本,脚本内置公开 API 采集全部数据(零外部依赖) |
| L2 无脚本 | scripts/ 缺失(打包遗漏/环境隔离)或脚本执行报错 | LLM 直接按同款数据源采集,手写 /tmp/{code}_data.json(schema 见下);用 WebFetch / curl 直连东财/腾讯/新浪等公开接口 |
| L3 无 Python | 探测不到 python3 / python($PY 为空) | 完全由 LLM 用 WebFetch / curl 直采,手动拼 JSON 写入 /tmp/{code}_data.json,跳过所有 .py 脚本 |
降级判定口诀:先探 $PY → 有脚本就跑 L1 → 无脚本走 L2 → 无 Python 走 L3。
4. L2/L3 降级采集 schema(写入 /tmp/{code}_data.json)
降级时 LLM 需产出一个 JSON,结构与脚本输出对齐,至少包含以下字段(其余字段可按信息盲区省略):
{
"code": "600519",
"market": "A股",
"finance": { "主要财务指标": {} },
"f10": { "公司概况": {}, "股东研究": {}, "股本结构": {}, "行业分析": {}, "财务分析": {} },
"lrb": {}, "fzb": {}, "llb": {},
"quote": { "price": 0, "pe_ttm": 0, "pb": 0, "mcap_yi": 0 },
"em_info": {}, "blocks": [], "reports": [], "ths_forecast": []
}
降级采集的字段允许少于脚本(信息盲区标注即可),但必须保留
code/market/quote三项,其余缺失标"N/A"。后续 Step1-5 读取该 JSON 的逻辑不变。
5. 降级时三表数据来源
三表(利润表 / 资产负债表 / 现金流量表)在降级路径(L2/L3 )中通过以下公开接口直采:
| 数据 | 接口 |
|---|---|
| 利润表 lrb | 新浪财报 API quotes.sina.cn/cn/api/...CompanyFinanceService |
| 资产负债表 fzb | 同上 |
| 现金流量表 llb | 同上 |
L1 路径中脚本已内置上述接口调用逻辑,无需手动指定。
Step0:公司识别与数据采集
0.1 公司识别
前置检查:市场范围
支持 A 股 + 港股,拒绝美股:
- 用户明示美股,或代码为字母美股代码(如阿里 BABA、特斯拉 TSLA)→ 回复"本工具仅支持 A 股 / 港股分析。如需分析美股,请使用对应工具。"
- 明确为未上市公司(如华为、字节跳动)→ 回复"该公司尚未上市,无法进行股票分析。"
- 通过后继续下面流程
识别输入类型 + 市场判定
判断用户输入(顺序敏感,先看代码长度/格式):
| 输入特征 | 模式 | 市场 |
|---|---|---|
| 5 位纯数字(如 00700、09988) | 港股代码模式 | 港股 |
| 6 位纯数字(如 600519、000858) | A 股代码模式 | A 股 |
hk00700 / sh600519 / sz000001 / bj430047 | 带前缀代码模式 | 按前缀判定 |
00700.HK / 600519.SH(带 .XX 后缀) | 港交所/上交所规范后缀模式 | 按后缀判定(需规整成 hk00700 / sh600519) |
| 含 5-6 位数字 + 公司名(如"腾讯 00700") | 公司名+代码模式 | 按代码长度判定 |
| 其他 | 公司名模式 | search 后由候选判定 |
代码规整:所有变体在传给脚本前统一为 hk{5位} / sh{6位} / sz{6位} / bj{6位},collect_data.py 用 westock_data.market_prefix() 重新识别。
情况 A:公司名模式(如"贵州茅台"、"腾讯控股")
用 WebSearch 搜索 "<公司名> 股票代码",从搜索结果提取代码。用 $PY /scripts/collect_data.py {CODE} 采集行情验证名称匹配。
- 唯一匹配:在对话中展示"🔍 识别到:{公司全称}({代码})· {市场} · {交易所}",进入 0.2
- 多候选:用 ①②③ 列出"{公司全称}({代码})· {市场标识}",A 股/港股候选全部展示让用户选;美股候选标注"美股,本工具不支持"排除
- 无结果:提示"未找到匹配的 A 股/港股公司,请手动输入代码。"
情况 B:股票代码模式(如"600519" / "00700" / "hk00700" / "00700.HK")
执行 $PY /scripts/collect_data.py {full_code},从输出中取 quote.name 字段,反查公司全称和市场。
- 找到匹配:在对话中展示 → 直接进入 0.2
- 代码无效:提示"代码 {代码} 未找到,请检查是否正确。"
情况 C:公司名+代码模式(如"贵州茅台 600519"、"腾讯 00700")
执行 $PY /scripts/collect_data.py {full_code}(取 quote.name 字段),验证名称与代码是否匹配。
- 匹配 ✓:直接进入 0.2,不弹确认
- 不匹配 ✗:展示搜索结果和用户输入,让用户选择正确的一方
确认信息格式(在对话中展示,不弹窗):
- 唯一匹配:输出"🔍 识别到:{公司全称}({6位或5位代码})· {A股/港股} · {交易所},即将开始 6 步深度分析。如不对请直接告诉我正确代码。",然后进入 0.2。
- 多候选:用 ①②③ 列出"{公司全称}({代码})· {市场} · {交易所}",等用户选择后进入 0.2。
0.2 结构化数据采集
执行 scripts/collect_data.py {股票代码},脚本自动采集 10+1 项数据:
| 模块 | 数据源 | 备注 |
|---|---|---|
| finance | 东财主要财务指标(A 股)/ 东财港股 GMAININDICATOR(港股) | 已有 |
| f10 | 东财 F10 五大类 | 已有 |
| lrb | 新浪(A 股)/ 东财港股 datacenter INCOME(港股) | 利润表 |
| fzb | 新浪(A 股)/ 东财港股 datacenter BALANCE(港股) | 资产负债表 |
| llb | 新浪(A 股);港股无此表 | 现金流量表(港股估值跳过 EV/EBITDA) |
| quote | 腾讯行情(A 股 qt.gtimg.cn / 港股 qt.gtimg.cn/hk{code}) | 已有 |
| em_info | 东财个股信息 | 已有 |
| blocks | 百度概念板块(A 股)/ 恒生行业(港股) | 已有 |
| reports | 东财研报(A 股);港股无 | 已有 |
| ths_forecast | 同花顺一致预期(A 股);港股无 | 已有 |
以上 10 项为数据采集项,外加 1 项衍生:
| 衍生项 | 拆解方式 | 用途 |
|---|---|---|
| ebitda | 新浪三表(A股)/ 港股无 OCF → calc_ebitda() 拆解 | 估值 EV/EBITDA 方法(港股自动跳过) |
全部写入 /tmp/{股票代码}_data.json,终端只输出采集摘要。
批量模式(不写文件,stdout 输出 JSON,进度走 stderr):
| 模式 | 命令 | 输出 | 用在哪 |
|---|---|---|---|
--quotes | collect_data.py --quotes 600519,000858 | 多家公司行情(PE/PB/市值/股价) | Step3.2 估值章节竞对 PE/PB |
--finances | collect_data.py --finances 600519,000858,002768 | 多家公司财务比率(毛利率/净利率/ROE/营收/同比/8 期报告期) | Step4 §6 可比公司财务对比(强制走 collect_data.py --finances 直采) |
三表数据源说明:
collect_data.py内部自动处理三表采集(优先内置接口,失败时降级到新浪/东财公开接口)。无需手动指定数据源。
执行方式:
# 先按「环境准备与降级策略」探测 $PY(python3/python 自动适配)
# 获取 skill 目录路径,然后执行脚本
$PY /scripts/collect_data.py {CODE}
# 若 scripts/ 缺失或脚本报错 → 走 L2/L3 降级(LLM 直采写 /tmp/{code}_data.json)
0.3 定性信息补充(合并搜索)
WebSearch "<公司名> 研报 2025 2026 战略" # 券商研报(战略方向、风险因素)
WebSearch "<公司名> 公告 管理层 重大事项" # 公司公告(管理层变动、重大事项)
2 次拉取覆盖战略方向、风险因素、管理层变动、商誉减值等定性信息。
0.4 数据质量评级
- A级:10 项数据 + 1 衍生全部成功
- B级:1-3 项失败(记录失败项,用 WebSearch 补充)
- C级:三表 + F10 均失败(仅做定性分析)
报告采集摘要(数据等级 + 获取项 + 缺失项),自动进入Step1。
Step1:公司画像
输入:从 /tmp/{股票代码}_data.json 读取 f10.公司概况、f10.股东研究、f10.股本结构、em_info、blocks。
- 基本信息:公司全称、股票代码、上市交易所、上市日期、注册资本、实际控制人、所属行业(申万)、业务模式标签【互联网/平台/TOC SaaS/TOB SaaS/TOC+TOB 双边/工业品/消费品/金融/医药/地产/强周期/其他】、概念板块(合并到此节最后一行,逗号分隔)
- 主营业务:主要产品/服务、收入构成、最新业务动态
- 股权结构:前十大股东(名称/持股比例/性质)、实际控制人持股链路、总股本/流通股本/限售股
- 用户规模与活跃度(由 §0 业务模式标签决定):
- 触发条件:见模板 §0.4 表格(基于申万行业 + 主业占比,不用关键词匹配)
- 触发内容:见模板 §五
- TOC:MAU/DAU/付费用户/ARPU/留存/LTV/CAC 等核心用户指标
- TOB:付费客户数/ARR/NDR/续约率/Rule of 40 等 SaaS 指标
- 两者并存时两节都生成
业务模式标签判定按 templates/company-profile-template.md §0 执行(申万行业 + 主营占比双判定,主业占比 50% 是分水岭),产物作为 Step2 五力框架选择器、Step3 护城河框架选择器、Step4 财务权重调整表的查询键。
输出:使用 templates/company-profile-template.md 生成 {公司名}_公司画像.md。
质量门:
- 公司全称、股票代码、上市交易所已填写
- 业务模式标签已选择(必填)
- 主营业务描述不少于100字
- 前十大股东至少列出5个
- 每个数据项标注来源
- 概念板块已合并到基本信息表,不单独成节
- 触发条件成立时,用户规模章节已生成(否则标注"不适用")
Step2:产业链分析
输入:Step1 公司画像中的"业务模式标签" + 从 /tmp/{股票代码}_data.json 读取 f10.行业分析、blocks。
Step2 启动前置检查:Step2 §2.0「行业大盘前置」必须先生成(行业规模/CR3-CR10/生命周期定位),作为五力分析的"行业大盘"基线;若数据等级 C 级,Step2 五力表需标注"行业数据基础薄弱,五力评级置信度降低"。
2.0 行业大盘前置
模板位置:本节产出物写入主报告模板的
§2.1 行业概览(行业定位 + §2.1.1 行业规模 + §2.1.2 市场份额 + §2.1.3 行业生命周期定位)。 数据获取:从/tmp/{股票代码}_data.json读取 f10.行业分析 + blocks.行业。用 WebSearch 搜索 "<行业> 市场规模 CR5 集中度 2025" 补充行业数据。
- 行业规模:总规模 + 过去 5 年 CAGR + 未来 5 年 CAGR 预测 + 公司占比
- 市场份额:头部 5-10 名 + CR3/CR5/CR10 集中度
- 行业生命周期定位(导入/成长/成熟/衰退 + 核心驱动 + 政策/技术变革)
- 数据缺失时按模板 §6.4 兜底并降级
2.1.0 五力框架选型
按 ai-internal-rules.md §2.0 选五力框架(业务模式标签 → 框架 A/B/C),加载 porter-five-forces-template.md 对应章节执行。
2.1 经典 Porter 五力(框架 A 模板,其他框架按对应章节)
| 力量 | 分析要点 | 数据来源 |
|---|---|---|
| 供应商议价力(上游) | 原材料/技术供应方、供应商集中度、切换成本 | f10.行业分析 + WebSearch "<公司名> 供应链 供应商" |
| 买方议价力(下游) | 客户集中度、产品可替代性、议价能力 | f10.财务分析 + WebSearch "<公司名> 客户 集中度" |
| 现有竞争者威胁 | 同行数量、市场份额分布、竞争强度 | WebSearch "<行业> 竞争格局 CR5" + <行业> 市场份额排名 |
| 新进入者威胁 | 资金/技术/牌照壁垒 | f10.行业分析 + WebSearch "<行业> 行业壁垒 准入" |
| 替代品威胁 | 替代产品/服务、替代趋势 | WebSearch "<行业> 替代品 趋势" |
2.2 搜索合并(共用)
五力搜索合并为 2-3 次(互相独立,可并行执行),命令清单按 porter-five-forces-template.md §3 / §4 各力量「数据来源」字段执行。
每项评级:强/中/弱 + 至少 2 条数据支撑。
质量门:
- 所选框架已明确标注(A/B/C/A+B)
- 五力每项都有评级
- 每项至少 2 条数据支撑
- 产业链上下游各列出至少 2 个具体环节
- (框架 B/C 额外) 核心指标(CAC/LTV/留存/MAU)有数据点
Step3:竞争格局与护城河分析
输入:Step2 五力分析 + 从 /tmp/{股票代码}_data.json 读取 reports、quote。
3.1 识别竞争对手
从Step2提取同行 + WebSearch "<行业> 上市公司 同行对标"(拿行业成份股列表)+ WebSearch "<公司名> 竞品分析 券商研报"(券商研报里的竞品分析),筛选 5-8 家主要竞对。
竞对选取方法论:
核心原则:从"业务模式"和"产业链位置"双维度匹配。先找同行业(高可比),再找上下游/相似业务(中可比),最后是行业参考(低可比)。
具体步骤:
- 业务模式拆分:把目标公司按"营收占比"拆成主业(占比最高)+ 次业(如自研/小业务)。可比公司必须对标主业。
- 三层选取:
- 🟢 高可比:业务模式相同 + 主营行业相同
- 🟡 中可比:主营行业不同但业务模式类似
- 🔴 低可比:业务模式差距大,仅作行业参考
- 每家公司必须给"可比性"标注(高/中/低),并说明理由
- 行业基准对比不能替代可比公司对比——这是常见错误
反例警示(必须避免):
- ❌ 把行业平均毛利率/PE 当作"可比公司"——这是偷懒
- ❌ 把业务模式差距大的公司(如 FPGA 芯片设计 vs 存储分销)放在同一张估值表里比较 PE/PB
最终报告规则:可比公司在双产物中的差异化处理:
- 深度分析报告(MD):
- §2.3 行业与竞争分析、§4.1 估值结论 → 只列高可比 2 家(焦点对标)
- §3.6 财务分析(可比公司财务对比)→ 列出所有收集到的可比公司(高+中+低),用"可比性"列标注等级
- 投研简报(HTML):由于是 30s 必读卡片,不展开可比公司(KPI 已涵盖核心数据)
- 中/低可比公司在深度报告 §2.3 / §4.1 节仅在分析时作为参考,不进入最终报告这两节。
产物归属:本步骤识别结果作为模板 §2.3 行业与竞争分析的前置输入,不单独占用模板小节。
3.2 竞对业务对比
竞对主营/营收用 WebSearch "<竞对公司名> 主营业务 营收 2025"(研报/官网覆盖)。竞对 PE/PB/市值用脚本的批量行情入口一次获取:
# $PY 为「环境准备与降级策略」探测到的 Python 命令(python3/python 自动适配)
$PY /scripts/collect_data.py --quotes {目标代码},{竞对代码1},{竞对代码2},...
该命令直接打印各代码的 name/price/pe_ttm/pb/mcap_yi。整理对比表:公司名/主营/营收/市值/PE/PB/市场份额。
若
scripts/缺失或$PY为空 → 走 L2/L3 降级:用 WebFetch 直连腾讯行情qt.gtimg.cn/q=逐家获取 PE/PB/市值,手动汇总。
3.3 护城河分析(行业适配型)
方法论升级说明:Porter 1985 经典六类护城河已扩展为按行业适配的 6 套框架, 并引入 Hamilton Helmer 7 Powers、Ben Thompson Aggregation Theory 等现代权威方法论。 加载
references/moat-analysis-framework.md后,第一步:用 §0 行业适配选择器选定框架,再按该框架的指标体系执行。
按 ai-internal-rules.md §2.5 选护城河框架(业务模式标签 → 框架 A-F),加载 moat-analysis-framework.md 对应章节执行。
三轮反问机制(可复制性 / 周期韧性 / 隐蔽威胁):按 references/moat-analysis-framework.md §8 执行。
3.3.1 护城河维度评级(所选框架的专属维度,逐项宽/窄/无)
按所选框架(§0 选择器)的核心维度逐项评级(宽/窄/无)。
数据来源:f10.财务分析 + WebSearch "<公司名> 护城河 竞争优势"(研报/分析文章)。
每轮记录:反问问题 → 分析过程 → 评级是否调整 → 理由。
质量门:
- 至少识别 3 家竞对
- 所选护城河框架已明确标注(A/B/C/D/E/F/经典)
- 护城河反问轮次按数据等级:A 级 ≥ 3 轮,B 级 ≥ 2 轮,C 级 ≥ 2 轮
- 每轮有明确结论
3.4 为什么非它不可(竞争优势综合判断,对应模板 §2.5)
3 问与 §3.3 护城河三轮反问的区分:§3.3 问的是"竞对能不能复制你的护城河"(竞对视角);§3.4 问的是"客户为什么非选你不可"(客户视角)——两个视角互补,§3.4 必须基于 §3.3 的护城河综合评级输出。
按 §3.3 选定的护城河框架(消费/平台/制造/金融/医药/地产)→ references/moat-analysis-framework.md §11 取对应 Q1/Q2/Q3 指标定义,填到 deep-analysis-report-template.md §2.5 的 3 个 {Q? 指标} 占位符。
- 最终护城河评级有数据支撑
- 护城河类型已明确归类
Step4:财务四维 + 穿透分析
输入:从 /tmp/{股票代码}_data.json 读取 lrb(利润表)、fzb(资产负债表)、llb(现金流量表)、finance(主要财务指标)、f10.财务分析。
加载 references/financial-analysis-guide.md,第一步:根据 Step1 的"业务模式标签"选定权重表,再按选定的权重做四维分析。
4.0.0 基准年判定(必做 · 引用 ai-internal-rules.md §0.1)
跑报告第一步:按 references/ai-internal-rules.md §0.1 判定基准年,所有模板列名引用 {基准年} / {基准年-1} 变量,不允许硬编码具体年份。
4.0 行业类型对应权重表(必读)
按 ai-internal-rules.md §3.0 选财务权重(详见 financial-analysis-guide.md §0.1)。报告"摘要"必须说明选用了哪套权重。
4.1 四维分析(按选定的权重)
- 4.1 盈利能力:毛利率、净利率、ROE、ROA
- 4.2 偿债能力:流动比率、速动比率、资产负债率、利息保障倍数
- 4.3 营运能力:存货/应收周转天数、总资产周转率
- 4.4 成长能力:营收/净利润同比增长率、经营现金流增长率
4.5 杜邦三因子分解(所有行业必做,亏损公司用替代公式)
按 ai-internal-rules.md §3.6 执行:ROE = 销售净利率 × 总资产周转率 × 权益乘数。亏损公司不豁免,4 种替代公式任选其一(扣非归母 ROE / ROA / EBIT ROIC / 三年平均)。
输出表(必做):
| 报告期 | 销售净利率 | 总资产周转率 | 权益乘数 | ROE | 行业 ROE | 驱动因子 |
|---|---|---|---|---|---|---|
| 4 期 | {净利率/周转率/杠杆} |
4.6 综合评分
| 维度 | 权重(已调整) | 得分 | 加权得分 |
|---|---|---|---|
| 盈利能力 | {选定%} | __/100 | __ |
| 偿债能力 | {选定%} | __/100 | __ |
| 营运能力 | {选定%} | __/100 | __ |
| 成长能力 | {选定%} | __/100 | __ |
| 合计 | 100% | __/100 |
输出:使用 templates/financial-analysis-template.md 生成 {公司名}_财务分析.md。
质量门:
- 权重调整已说明(报告摘要中列出选用的权重表)
- 四维每项至少 4 个指标
- 所有比率列出公式和计算过程
- 每个数字标注来源
- 趋势分析(至少 4 期对比)
- 有行业对比
- 杜邦三因子分解(必做,所有行业,亏损公司用替代公式)
- 综合评分已计算
Step5:相对估值
输入:竞对公司 + 从 /tmp/{股票代码}_data.json 读取 quote、reports、ths_forecast。
加载 references/valuation-methods.md。
5.1 相对估值(四步法)
方法选取:按 ai-internal-rules.md §7.1 选 1-3 种估值方法(PE-TTM / PB-MRQ / EV/EBITDA-TTM / PS-TTM / NAV 等),按 §7.2 写估值结论。
自动判定:scripts/valuation.py 的 _classify_industry(data) 已实现上述判定逻辑,输入申万一级行业自动返回首选方法 + 交叉验证方法。
实操流程:
-
调估值脚本(
scripts/valuation.py):# $PY 为「环境准备与降级策略」探测到的 Python 命令(python3/python 自动适配) $PY scripts/valuation.py 600519 peers.json # peers.json 示例:{"peer_pe_median": 25.0, "peer_pb_median": 8.0}脚本输出 JSON:行业分类 / 首选方法 / 合理股价 / 上行空间 / 数据完整度
若
scripts/缺失或$PY为空 → 走 L2/L3 降级:valuation.py的_classify_industry()逻辑在references/valuation-methods.md中有等价的文本版判定规则,LLM 按该规则手动选方法、算合理股价。 -
交叉验证(10 个变体中至少 2 个):
- 偏差 < 15%:取均值
- 偏差 15-30%:取均值但标注分歧原因
- 偏差 > 30%:必须分析分歧(周期性/特殊项目/会计差异),取更保守的估值
-
数据完整度检查:< 60% 时提示补充行业数据
-
报告写作:
templates/deep-analysis-report-template.md§四估值(只展示数字,公式放valuation-methods.md)
Step6:生成产物与清理
跑完 6 步分析后,输出两份产物(默认行为):
| 产物 | 文件名 | 模板 |
|---|---|---|
| 深度分析报告 | {公司名}_深度分析报告_{YYYYMMDD}.md | templates/deep-analysis-report-template.md |
| 投研简报 | {公司名}_投研简报_{YYYYMMDD}.html | templates/briefing-card-template.html |
6.0 产物生成的强制执行规则(⚠️ 必须严格遵守)
这是产物质量的最后一道门。无论走 L1/L2/L3 哪条路径,以下规则不可跳过。
步骤 1:读取模板文件(强制)
在写任何产物之前,必须先使用 Read 工具读取对应模板文件的完整内容:
- 深度分析报告 →
Read /templates/deep-analysis-report-template.md - 投研简报 →
Read /templates/briefing-card-template.html - 单步模式财务分析 →
Read /templates/financial-analysis-template.md - 单步模式公司画像 →
Read /templates/company-profile-template.md
不得凭记忆或猜测来编写产物结构——必须以读取到的模板文件为准。
步骤 2:严格按模板结构填充
读取模板后,产物的生成方式为:
- 保留模板的全部章节标题、表格结构、格式标记不变
- 将
{占位符}替换为实际分析数据(如{公司名}→ "中国巨石",{YYYY-MM-DD}→ "2026-07-14") - 将模板中的说明性括号文字替换为具体内容(如"(100-200 字描述...)" → 实际的描述段落)
- 不删除模板的任何章节,数据缺失时标注
"N/A"或"信息盲区" - 不自行新增模板中不存在的章节(除非单步模式路由表明确要求)
禁止行为:
- ❌ 不读模板直接按自己的理解写报告
- ❌ 改变模板的章节顺序或层级结构
- ❌ 省略模板中存在的任何标准化区块(如"30 秒极简版"、"摘要"列表等)
6.1 清理临时文件
分析完成后清理临时数据:
rm -f /tmp/{股票代码}_data.json
相关技能
生成A股个股深度投资报告。当用户要求撰写股票/公司投资报告、个股分析、估值分析时使用。支持批量生成多份报告。报告包含:公司概况、详细业务构成、财务分析与预测、分部估值(SOTP)、投资逻辑、交易计划、多维度深度分析(政策面/基本面/技术面/情绪面/消息面/资金面)、风险提示、总结。用户只需提供公司名称列表即可触发。
生成个股三维深度分析单页HTML报告。支持A股、港股、美股,从基本面、新闻面、资金面、技术面、估值、同行对比、股东结构等多个维度进行全面分析,输出精美可打印的HTML报告。触发关键词:三维深度分析、个股分析报告、股票深度报告、生成股票HTML报告、Deep Stock Analysis Report。
投研分析技能套件:业绩快评、可比公司分析、晨会纪要、深度报告、研报摘要、行业研究、读年报、调研纪要。 业绩快评: 帮我点评下财报, 帮我快速看下业绩, 业绩点评, 财报速评, 季报分析; 可比公司分析: 可比公司分析, 可比公司, PE对比, comps; 晨会纪要: 晨会纪要, 晨会, 早盘观点, morning brief; 深度报告: 深度报告, 首次覆盖, 公司深度; 研报摘要: 研报摘要, 卖方研报, 观点提炼; 行业研究: 帮我研究下这个行业, 帮我分析下产业链, 行业格局, 行业研究; 读年报: 帮我读一下这份年报, 帮我分析下这份年报, 10-K, 年报分析; 调研纪要: 调研纪要, 实地调研, 专家访谈。
A股上市公司财务分析全流程工具包。覆盖年报采集、三表提取、指标计算、可视化看板、数据核对的全链路。用于对A股上市公司进行近3-5年财务经营状况综合分析,包括年报PDF下载(巨潮资讯网)、合并资产负债表/利润表/现金流量表提取(PDF→xlsx)、财务指标计算(偿债/营运/盈利/发展/现金流/杜邦分析)、EChar...
深度A股情报调查与分析工具,支持A股情报调查、竞品分析、舆情监测、人物背景调查、信息交叉验证,生成结构化调查报告。当用户需要调查A股公司/行业/概念、调查竞品、追踪热点事件、了解人物背景、验证信息真实性时使用。触发词:A股情报、股票调查、财报分析、概念追踪、资金流向、情报调查、竞品分析、舆情调查、背景调查、信息验证、多源搜索。