A股投资顾问 (Stock Advisor)
全自动编排型投资分析流水线。用户只需提供股票截图或代码,系统自动完成技术面分析、基本面分析、多维交叉验证、私董会决策讨论,最终输出精美排版的投资报告。
流水线架构
用户输入(截图 / 股票代码)
│
▼
① 技术面分析 → ② 基本面分析 → ③ 多维交叉验证 → ④ 私董会讨论 → ⑤ 排版输出
启动流程
首次使用:投资风格档案
检查 memory 中是否存在用户投资风格档案。如不存在,提 3-4 个简短问题:
- 风险偏好:保守 / 稳健 / 激进?
- 投资周期:短线(1-2周)/ 中线(1-3月)/ 长线(3月以上)?
- 关注行业:有没有特别关注的行业板块?
- 仓位上限:单只股票最大仓位占比?
用户可选择跳过,后续在私董会环节自然补充。收集到的信息保存到 memory。
识别入口模式
根据用户输入自动判断:
- 截图模式:用户上传了图片(K线图、财报截图)→ 图像识别 + AKShare 交叉验证
- 代码模式:用户提供了股票代码或名称 → 纯 AKShare 数据驱动
两种模式均进入同一流水线,差异仅在数据获取方式。
模块一:技术面分析
截图模式
-
图像识别:从 K 线图中提取:
- 股票名称和代码
- 当前股价
- K 线形态(近 5 日表现)
- 均线排列状态(MA5/MA10/MA20)
- MACD 状态(DIF/DEA 位置关系、柱状图趋势)
-
AKShare 交叉验证:用识别出的股票代码调用脚本获取精确数据
python scripts/technical_analysis.py --symbol <股票代码> --days 120 -
冲突处理:若图像识别与 API 数据有差异,以 API 数据为准,在报告中标注差异
代码模式
直接调用脚本获取数据并计算指标:
python scripts/technical_analysis.py --symbol <股票代码> --days 120
输出:技术面速读表格
| 维度 | 指标 | 数值 | 信号 | |------|------|------|------| | 趋势 | MA20/MA60 | — | 上升/震荡/下降 | | MACD | DIF/DEA | — | 金叉/死叉/多头/空头 | | KDJ | K/D/J | — | 超买/超卖/中性 | | RSI | RSI14 | — | 超买/超卖/中性 | | 布林带 | 上轨/中轨/下轨 | — | 突破/偏多/偏空 | | 支撑压力 | 支撑位/压力位 | — | — |
模块二:基本面分析
截图模式
- 图像识别:从财报截图提取关键指标(营收、净利润、ROE、毛利率等)
- AKShare 补充:拉取 PE/PB/PS 估值数据、行业对比数据
python scripts/fundamental_analysis.py --symbol <股票代码>
代码模式
直接调用脚本:
python scripts/fundamental_analysis.py --symbol <股票代码>
合并输出
综合评级表格:
| 维度 | 评分 | 判断 | |------|------|------| | 技术面 | X/5 | 趋势方向 + 关键信号 | | 基本面 | X/5 | 盈利能力 + 估值水平 | | 资金面 | X/5 | 成交量变化趋势 | | 综合评级 | — | 强烈推荐/推荐/中性/谨慎/回避 |
操作建议:
- 短期(1-2周)策略
- 中期(1-3月)策略
- 关键支撑位和压力位
模块三:多维交叉验证
使用内置 WebSearch 工具搜索以下信息:
- 研报观点:搜索
"<股票名称> 研报 <当前年份>"获取机构评级和目标价 - 行业动态:搜索
"<所属行业> 行业趋势 <当前年份>"了解上下游变化 - 重大新闻:搜索
"<股票名称> 最新消息"排查重大利好/利空事件 - 政策影响:搜索相关产业政策、监管动态
交叉验证逻辑
- 将搜索结果与模块一、二的分析进行对比
- 如有矛盾信号(如技术面看涨但研报看空),明确标注分歧点并分析可能原因
- 补充模块一二未覆盖的风险因素
输出:投资决策报告草稿
整合前三个模块的分析结果,生成结构化的投资决策报告草稿,作为私董会的讨论输入。
模块四:私董会决策讨论
调用 peers-advisory-group Skill 的核心机制,将投资决策报告草稿作为讨论议题。
详细指南见 references/advisory-board.md,包含幕僚阵容、5维度分析结构、观点碰撞模板、投资风格适配规则。
核心流程
- 通过 WebSearch 搜索四位幕僚(巴菲特/马斯克/盖茨/乔布斯)最新动态
- 将模块一~三的完整报告作为讨论议题
- 每位幕僚按 5维度结构 输出深度分析:核心判断 → 数据论据 → 类比案例 → 风险警示 → 最后一句话建议
- 输出 2-3 个观点碰撞(不同投资哲学的分歧与争论)
- 根据用户投资风格档案(如有)生成 个性化建议
- 综合四位幕僚观点,输出最终投资结论
自动化模式
默认由系统代替用户回答幕僚提问(基于分析数据 + 用户风格档案)。如用户主动发言,系统暂停自动代答,将对话权交给用户。
模块五:排版与输出
步骤一:整理报告 Markdown
将最终分析结果整理为以下结构:
# [股票名称]([代码]) 投资分析报告
> 报告日期:YYYY-MM-DD | 综合评级:XX
## 技术面分析
[模块一输出]
## 基本面分析
[模块二输出]
## 多维交叉验证
[模块三输出]
## 私董会纪要
### 巴菲特观点
[观点摘要]
### 马斯克观点
[观点摘要]
### 比尔·盖茨观点
[观点摘要]
### 乔布斯观点
[观点摘要]
### 最终结论
[综合结论]
## 操作建议
- 短期策略(1-2周)
- 中期策略(1-3月)
- 仓位建议
- 止损位
## 风险提示
投资有风险,以上分析仅供参考,不构成投资建议。据此操作,风险自担。
步骤二:杂志排版
调用 magazine-layout Skill,指定 "大胆社论"(Bold Editorial) 风格,将 Markdown 转为精美 HTML 文件。
保存 HTML 到本地:~/stock-reports/<股票代码>-<日期>.html
步骤三:转换 PDF
执行转换脚本:
python scripts/html_to_pdf.py ~/stock-reports/<股票代码>-<日期>.html
输出 PDF 文件:~/stock-reports/<股票代码>-<日期>.pdf
步骤四:上传飞书云文档
调用 lark-doc Skill,将报告内容创建为飞书云文档:
- 文档标题:
[股票名称] 投资分析报告 - YYYY-MM-DD - 返回文档链接给用户
最终输出给用户
分析完成!
本地 PDF:~/stock-reports/<代码>-<日期>.pdf
飞书文档:<飞书链接>
综合评级:XX
核心结论:[一句话总结]
依赖
| 组件 | 用途 |
|------|------|
| AKShare (Python) | A股行情、K线、财务数据获取 |
| a-share-analyst scripts | 技术分析、数据获取基础脚本 |
| WebSearch(内置) | 研报、行业、新闻搜索 |
| peers-advisory-group Skill | 私董会决策讨论 |
| magazine-layout Skill | 杂志风格 HTML 排版 |
| lark-doc Skill | 飞书云文档上传 |
| Playwright (Python) | HTML 转 PDF |
脚本清单
| 脚本 | 功能 |
|------|------|
| scripts/technical_analysis.py | 技术指标计算(复用 a-share-analyst) |
| scripts/fetch_market_data.py | 市场数据获取(复用 a-share-analyst) |
| scripts/fundamental_analysis.py | 基本面分析(新增) |
| scripts/html_to_pdf.py | HTML 转 PDF(新增) |
参考文件
| 文件 | 内容 |
|------|------|
| references/report-structure.md | 报告结构模板 |
| references/image-prompts.md | 图像识别提示词模板 |