返回 Skill 列表
extension
分类: 数据与分析无需 API Key

大智若愚

买方财报分析工具(大智)。

person作者: user_39dce1e8hubcommunity

大智 (Dazhi) — 买方财报分析

完全自建的买方财报分析系统。不依赖 dayu-agent / dayu-cli / 外部 LLM API。 所有 LLM 任务由 WorkBuddy 自身模型直接完成,无需外部 API 调用、无需 API Key。

与 dayu-agent 的关系:本 skill 蒸馏了 dayu-agent 的完整能力(财报下载、投研问答、报告自动生成、多轮交互), 但所有功能使用 WorkBuddy 自身能力独立完成,不调用外部大模型 API。

执行任务时必须直接执行,不要仅给出命令示例让用户自行执行。

环境要求(已完成)

  • 工作区: C:\Users\gary\dayu-workspace
  • Python: 3.11(C:\Users\gary\AppData\Local\Programs\Python\Python311\python.exe
  • pandoc: 3.9.0.2(渲染 PDF/Word/HTML)
  • Python 包: edgartools, pdfplumber, requests, bs4, lxml, rich, tenacity, tqdm, markdown
  • 初始化已完成,无需再次执行 init

核心工作流

1. 财报下载(调用 dazhi.py,无需 LLM)

# 美股(通过 SEC EDGAR)
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker AAPL
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker AAPL --forms 10K 10Q --start 2016 --end 2026

# A股(通过 cninfo 巨潮信息网)
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker 600519 --forms FY H1 Q1 Q3

# 港股(通过 HKEX 披露易)
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker 00700 --forms FY H1 Q1 Q3

# 下载所有类型报告(默认行为)
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker 00700

# 强制覆盖
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py download --ticker AAPL --overwrite

默认下载规则

  • 如果不指定 --forms 参数,默认下载所有类型报告:
    • 美股:10K(年报)、10Q(季报)
    • A股/港股:FY(年报)、H1(中期报告)、Q1/Q3(季度报告)
  • 建议明确指定 --forms 参数,避免下载不必要的数据

注意:下载美股财报需设置环境变量 EDGAR_IDENTITY(如有效邮箱地址), 否则会报 User-Agent identity is not set 错误。

2. 投研问答(助理直接完成,无需外部模型)

由助理直接读取本地财报数据,用 WorkBuddy 自身能力回答问题。 (蒸馏自 dayu-agent 的 dayu-cli prompt 能力)

执行步骤:

  1. 读取 C:\Users\gary\dayu-workspace\portfolio\{TICKER}\processed\*.txt(全部或部分)
  2. 根据问题进行分析,区分事实与判断
  3. 输出回答,末尾必须包含 ### 证据与出处
  4. 不输出目标价、估值区间、仓位建议、买卖建议
用户问题:{question}

[基于财报数据的分析内容]

### 证据与出处
- SEC EDGAR | Form 10-K | Filed 2025-10-31 | Accession XXXX | 章节路径
- ...

多轮交互对话(蒸馏自 dayu-agent 的 dayu-cli interactive 能力):

用户:@skill:dazhi 分析腾讯控股的财报

助理:
1. 检查财报数据是否已下载(如果没有,先执行下载)
2. 读取 `C:\Users\gary\dayu-workspace\portfolio\00700\processed\*.txt`
3. 提取关键财务数据
4. 回答用户问题
5. 等待用户下一个问题(多轮对话)

用户:它的现金流情况如何?

助理:
1. 从已读取的财报数据中提取现金流信息
2. 分析经营性现金流、自由现金流、现金净额等指标
3. 回答用户问题
4. 等待用户下一个问题(多轮对话)

交互式对话的最佳实践

  • 保持对话上下文(记住之前讨论的内容)
  • 引用之前的分析结果(避免重复读取数据)
  • 主动提供相关建议(如"您可能还想知道...")

3. 自动写作(助理直接完成,无需外部模型)

由助理直接读取财报数据,用 WorkBuddy 自身能力撰写报告章节。 (蒸馏自 dayu-agent 的 dayu-cli write 能力)

重要:本 skill 严格按照 dayu-agent 的报告结构(章节 0-10)和分析框架进行写作, 但所有 LLM 任务由 WorkBuddy 自身完成(不调用外部 API)。

执行步骤:

  1. 读取 C:\Users\gary\dayu-workspace\portfolio\{TICKER}\processed\*.txt
  2. 执行 infer:判断公司业务类型与关键约束,结果存入 manifest.jsoninfer_result
  3. 逐章撰写:第 1-9 章 → 第 10 章 → 第 0 章 → 来源清单
  4. 每章保存至 C:\Users\gary\dayu-workspace\draft\{TICKER}\chapters\ch{id}_{title}.md
  5. 更新 C:\Users\gary\dayu-workspace\draft\{TICKER}\manifest.json
  6. 全部完成后合并为 C:\Users\gary\dayu-workspace\draft\{TICKER}\{TICKER}_qual_report.md

写作流程主线:infer → 第 1-9 章 → 第 10 章(研究决策)→ 第 0 章(投资要点)→ 来源清单

章节列表(严格按照 dayu-agent 的结构):

| ID | 标题 | 类型 | |----|------|------| | 1 | 公司做的是什么生意 | body | | 2 | 行业格局和竞争态势 | body | | 3 | 商业模式与盈利驱动 | body | | 4 | 管理层与治理 | body | | 5 | 财务分析 | body | | 6 | 增长与增长驱动 | body | | 7 | 风险与不确定性 | body | | 8 | 关键度量与经营指标 | body | | 9 | ESG 与可持续性 | body | | 10 | 是否值得继续深研与待验证问题 | special | | 0 | 投资要点概览 | special | | sources | 来源清单 | special |

调用示例

用户:@skill:dazhi 撰写腾讯控股的买方分析报告

助理:
1. 检查财报数据是否已下载(如果没有,先执行下载)
2. 读取 `C:\Users\gary\dayu-workspace\portfolio\00700\processed\*.txt`
3. 执行 infer(判断公司业务类型与关键约束)
4. 逐章撰写(第 1-9 章 → 第 10 章 → 第 0 章 → 来源清单)
5. 每章保存至 `draft\00700\chapters\ch{id}_{title}.md`
6. 更新 `draft\00700\manifest.json`
7. 合并为 `draft\00700\00700_qual_report.md`
8. 使用 pandoc 或 Python 脚本转换为 HTML
9. 使用 `preview_url` 工具展示报告

4. 简化版报告撰写(助理直接完成,无需外部模型)

如果用户只需要简化的投资分析报告(而非完整的买方分析报告),可以使用此工作流。

执行步骤:

  1. 下载财报:如果 C:\Users\gary\dayu-workspace\portfolio\{TICKER}\processed\*.txt 不存在或不完整,先执行下载
  2. 数据分析:读取 processed\*.txt 文件,提取关键财务数据(收入、毛利、净利润、现金流等)
  3. 撰写报告:按照标准投研报告结构撰写 Markdown 格式报告
  4. 保存报告:保存到 C:\Users\gary\dayu-workspace\portfolio\{TICKER}\{TICKER}_投资分析报告_YYYY.md
  5. 渲染为 Web:使用 pandoc 或 Python markdown 库将 Markdown 报告转换为 HTML 网页格式

简化版报告结构

# {公司名称}({股票代码})投资分析报告
## {年份}年度财报分析

## 一、执行摘要
## 二、公司概况
## 三、财务分析
### 3.1 损益表分析
### 3.2 分部业务分析
### 3.3 资产负债表分析
### 3.4 现金流量表分析
## 四、业务分析
### 4.1 核心竞争优势
### 4.2 增长驱动因素
### 4.3 战略举措
## 五、风险因素
## 六、估值分析
## 七、投资建议
## 八、结论
## 附录:财务数据摘要

调用示例

用户:@skill:dazhi 撰写腾讯控股分析报告

助理:
1. 检查财报数据是否已下载(如果没有,先执行下载)
2. 读取 `C:\Users\gary\dayu-workspace\portfolio\00700\processed\*.txt`
3. 提取关键财务数据
4. 撰写 Markdown 格式报告(简化版结构)
5. 保存为 `00700_投资分析报告_2024.md`
6. 使用 pandoc 或 Python 脚本转换为 HTML
7. 使用 `preview_url` 工具展示报告

5. 报告渲染(调用 dazhi.py 或助理直接完成)

# 使用 dazhi.py 渲染
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py render "C:\Users\gary\dayu-workspace\portfolio\00700\00700_投资分析报告_2024.md" -o report.docx
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py render "C:\Users\gary\dayu-workspace\portfolio\00700\00700_投资分析报告_2024.md" -o report.html
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py render "C:\Users\gary\dayu-workspace\portfolio\00700\00700_投资分析报告_2024.md" -o report.pdf

# 使用 Python markdown 库渲染为 HTML(推荐)
python C:\Users\gary\.workbuddy\skills\dazhi\scripts\convert_md_to_html.py "input.md" "output.html"

推荐使用 Python markdown 库渲染 HTML,因为:

  1. 不依赖 pandoc 可执行文件(避免 pandoc 路径/版本问题)
  2. 可以添加自定义 CSS 样式(响应式设计、表格美化等)
  3. 生成独立的 HTML 文件(self-contained),可直接在浏览器中打开

6. 上传本地财报(调用 dazhi.py,无需 LLM)

python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py upload --ticker 600519 --files ./贵州茅台2024年报.pdf --fiscal-year 2024 --fiscal-period FY --company-name 贵州茅台

7. 查看写作状态(调用 dazhi.py 或助理直接读取)

python C:\Users\gary\.workbuddy\skills\dazhi\scripts\dazhi.py status --ticker AAPL

助理也可直接读取 C:\Users\gary\dayu-workspace\draft\{TICKER}\manifest.json 查看进度。

股票代码格式

| 市场 | 格式 | 示例 | |------|------|------| | 美股 | 字母代码 | AAPL, MSFT, GOOGL | | A股 | 6 位数字 | 600519(贵州茅台), 000858(五粮液) | | 港股 | 5 位数字 | 00700(腾讯控股), 00941(中国移动) |

关键约束

  • 不输出目标价、估值区间、仓位建议、买卖建议
  • 不伪造证据不足的内容,用占位符标记缺口
  • 区分事实与分析:主观判断须用自然语言标注
  • 前瞻表述用"预计/预期/可能/指引"等,不写成当前事实
  • 证据可追溯:回答末尾必须包含"证据与出处"
  • ticker 传最自然写法,不手工穷举变体

占位符格式

【占位符】(缺口:{缺失信息} | 需要:{来源类型} | 已检索范围:{范围} | 下一步:{建议路径})

证据与出处格式

  • SEC filings:SEC EDGAR | Form XX | Filed YYYY-MM-DD | Accession XXXX | 章节路径
  • 港股/A股:主体 | 报告类型 | 报告期,公告日期 | 章节路径
  • 网页:机构/网站 | 标题 | 日期 | URL:{link}

故障排除

| 错误 | 原因 | 解决 | |------|------|------| | edgartools 限流 | SEC EDGAR 请求频率过高 | 脚本已内置速率限制,等待重试即可 | | PDF 解析不完整 | PDF 扫描件/图片型 | 尝试 --overwrite 重跑,或手动提供文本版 | | pandoc 渲染失败 | pandoc 不在 PATH | 确认 C:\Users\gary\AppData\Local\pandoc-bin\pandoc-3.9.0.2 在 PATH | | A股/港股下载失败 | 数据源反爬 | 减少请求频率,或手动下载后用 upload 命令 | | EDGAR_IDENTITY 未设置 | 未设置环境变量 | 执行前先设置:$env:EDGAR_IDENTITY="your-email@example.com" | | pandoc.exe 无法运行 | pandoc 可执行文件损坏或架构不匹配 | 使用 Python markdown 库替代 pandoc 渲染 HTML |

工作区目录结构

C:\Users\gary\dayu-workspace\
├── config/
│   └── prompts/           # 写作模板(dazhi 自带)
├── portfolio/             # 每个 ticker 的财报与材料
│   └── {TICKER}/
│       ├── meta.json      # 公司元数据
│       ├── filings/       # 原始财报文件
│       ├── materials/     # 补充材料
│       └── processed/     # 预处理后文本数据(.txt)
├── draft/                 # write 输出目录
│   └── {TICKER}/
│       ├── manifest.json  # 章节状态
│       ├── chapters/      # 各章 .md
│       └── audits/        # 审计 JSON
├── output/                # 渲染输出目录
└── scripts/               # dazhi 脚本
    ├── dazhi.py          # 主程序
    └── convert_md_to_html.py  # Markdown 转 HTML 工具

与 dayu-agent 的对比

| 功能 | dayu-agent | dazhi(本 skill) | |------|------------|-------------------| | 财报下载 | ✅ dayu-cli download | ✅ dazhi.py download | | 投研问答 | ✅ dayu-cli prompt(使用外部 LLM API) | ✅ 助理直接完成(WorkBuddy 自身) | | 多轮交互对话 | ✅ dayu-cli interactive(使用外部 LLM API) | ✅ 助理直接完成(WorkBuddy 自身多轮对话) | | 生成分析报告 | ✅ dayu-cli write(使用外部 LLM API) | ✅ 助理直接完成(WorkBuddy 自身) | | 报告结构 | 章节 0-10 | 章节 0-10(严格遵循)+ 简化版结构 | | 外部 LLM API | 需要(OpenRouter) | 不需要(WorkBuddy 自身) | | 配置复杂度 | 高(需要 API Key) | 低(无需配置) |

进阶参考

更新日志

2026-05-27

  1. 蒸馏 dayu-agent 完整能力
    • 添加投研问答能力(对应 dayu-cli prompt
    • 添加多轮交互对话能力(对应 dayu-cli interactive
    • 添加自动写作能力(对应 dayu-cli write
  2. 严格遵循 dayu-agent 的报告结构
    • 章节 0-10 结构(infer → 第 1-9 章 → 第 10 章 → 第 0 章 → 来源清单)
    • 章节类型(body / special)
  3. 所有功能使用 WorkBuddy 自身能力
    • 不调用外部 LLM API
    • 无需 API Key 配置
    • 无需 dayu-agent / dayu-cli
  4. 添加简化版报告撰写功能
    • 如果用户只需要简化的投资分析报告,可以使用此工作流
    • 报告结构:执行摘要 → 公司概况 → 财务分析 → 业务分析 → 风险因素 → 估值分析 → 投资建议 → 结论
  5. 优化工作流:下载 → 分析 → 撰写 → 渲染 → 预览,全流程自动化