AlphaPilot 是一个智能金融研究 Agent,基于大语言模型并集成 AKShare 数据接口,通过多 Agent 协作完成股票、基金、期货、指数、宏观经济等全方位投资研究。支持 CLI 命令行和 Web 前端两种交互方式。
- 多 Agent 协作 — 四分析师 + 多空辩论 + 风险三方评估,基于 LangGraph StateGraph 编排
- Web 前端 — React 前端界面,实时 SSE 流式展示分析过程
- CLI 命令行 — Typer + Rich 终端界面,美观的交互体验
- 节点级耗时打点 — 每个 Agent 节点执行后实时显示耗时
- 完整中间报告 — 市场/基本面/新闻/宏观报告、辩论过程、风险评估均完整展示
- 丰富数据源 — 35+ 金融数据工具,覆盖 A 股、港股、基金、期货、指数、宏观及行业板块
- 多 LLM 支持 — 15+ 主流 LLM 提供商(国产 + 海外 + 本地),兼容 OpenAI / Anthropic 格式
- 智能备用切换 — 东方财富 + 新浪 + 同花顺多数据源自动切换与重试
- 缓存友好 — 股票列表缓存 6 小时,部分行情接口缓存 1 分钟
- 错误恢复 — 失败重试、降级替代及保护逻辑
AlphaPilot 采用 LangGraph StateGraph 编排多 Agent 协作流程,分三个阶段串行执行:
START
↓
┌─────────────────────────────────────────────┐
│ 阶段一:数据收集与分析 │
│ │
│ 📈 市场分析师 ← 行情 / 指数 / 板块工具 │
│ ↓ │
│ 📊 基本面分析师 ← 财务 / 资金流 / 龙虎榜工具 │
│ ↓ │
│ 📰 新闻分析师 ← 新闻 / 公告工具 │
│ ↓ │
│ 🏛️ 宏观分析师 ← CPI / PPI / PMI / GDP 工具 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 阶段二:投资辩论(多空对决) │
│ │
│ 🐂 多头研究员 ⇄ 🐻 空头研究员(1–3 轮) │
│ ↓ │
│ 👔 研究经理 → 初步投资建议 + 评级 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 阶段三:风险评估(三方辩论) │
│ │
│ 🔥 激进分析师 ⇄ 🛡️ 保守分析师 ⇄ ⚖️ 中性分析师 │
│ ↓ │
│ 💼 投资组合经理 → 最终研究结论 │
└─────────────────────────────────────────────┘
↓
END
最终输出结构:
- 评级:Buy / Overweight / Hold / Underweight / Sell
- 信心水平:High / Medium / Low
- 详细推理过程
- 行动建议列表
- Python >= 3.10
- Node.js >= 18(仅 Web 前端需要)
# 克隆仓库
git clone <repo-url>
cd AlphaPilot
# 安装 Python 依赖(使用 uv)
uv sync
# 安装前端依赖(可选,仅 Web 模式需要)
cd frontend && npm install创建 .env 文件并配置 API 密钥(可参考 .env.example):
# 推荐:DeepSeek
DEEPSEEK_API_KEY=your_api_key_here
OPENFR_PROVIDER=deepseek
OPENFR_MODEL=deepseek-chat
# 或使用智谱 AI
ZHIPU_API_KEY=your_api_key_here
OPENFR_PROVIDER=zhipu
OPENFR_MODEL=glm-4.7更多提供商与配置项请参考下方 配置说明 章节。
方式一:CLI 命令行
# 交互式对话
uv run alphapilot chat
# 单次查询
uv run alphapilot query "贵州茅台值得买吗?" --target 贵州茅台
# 列出可用工具
uv run alphapilot tools
# 列出支持的提供商
uv run alphapilot providers方式二:Web 界面
# 启动后端服务
uv run alphapilot-server
# 另开终端,启动前端开发服务器
cd frontend && npm run dev
# 浏览器访问 http://localhost:5173uv run alphapilot chat
uv run alphapilot chat -p deepseek
uv run alphapilot chat -p zhipu -m glm-4-plus启动后直接输入问题:
你: 贵州茅台今天股价多少?
你: 分析今天的热门板块
你: 上证指数走势如何?
你: 比亚迪值得买吗?
每个 Agent 节点完成后会显示耗时:
📈 市场分析师 · ✓ 市场分析报告已生成 (951 字符) 28.3s
📊 基本面分析师 · ✓ 基本面分析报告已生成 (778 字符) 31.7s
...
⏱ 共执行 11 个节点,用时 363.5 秒
uv run alphapilot query "贵州茅台值得买吗?" --target 贵州茅台
uv run alphapilot query "上证指数今天表现如何?"
uv run alphapilot query "分析比亚迪的投资价值" --target 比亚迪 -p zhipu打开浏览器后,在输入框中输入研究问题,系统会实时展示:
- 三阶段进度条
- 各分析师报告(可展开/折叠)
- 多空辩论过程
- 风险评估详情
- 最终投资结论
| 类别 | 示例 |
|---|---|
| A 股 | 查询 000001 的实时行情、贵州茅台最近一周的走势、搜索新能源相关股票 |
| 港股 | 查询港股 00700 的实时行情、腾讯控股今天股价 |
| 基金 | 查询 510300 的 ETF 数据、股票型基金排行榜 |
| 指数/板块 | 上证指数今天走势、今天涨幅最大的行业板块 |
| 宏观经济 | 最新的 CPI 数据、近期 GDP 增长情况、PMI 指数走势 |
在 .env 中设置提供商和模型:
OPENFR_PROVIDER=deepseek # 提供商名称
OPENFR_MODEL=deepseek-chat # 模型名称(留空则使用默认)
DEEPSEEK_API_KEY=your_api_key # 对应提供商的 API Key| provider | API Key 环境变量 | 默认模型 |
|---|---|---|
| deepseek | DEEPSEEK_API_KEY |
deepseek-chat |
| doubao | DOUBAO_API_KEY |
doubao-1-5-pro-256k |
| dashscope | DASHSCOPE_API_KEY |
qwen-max |
| zhipu | ZHIPU_API_KEY |
glm-4.7 |
| modelscope | MODELSCOPE_API_KEY |
qwen2.5-72b-instruct |
| kimi | KIMI_API_KEY |
moonshot-v1-128k |
| stepfun | STEPFUN_API_KEY |
step-2-16k |
| minimax | MINIMAX_API_KEY |
MiniMax-Text-01 |
| openai | OPENAI_API_KEY |
gpt-4o |
| anthropic | ANTHROPIC_API_KEY |
claude-sonnet-4-20250514 |
| openrouter | OPENROUTER_API_KEY |
anthropic/claude-sonnet-4 |
| together | TOGETHER_API_KEY |
meta-llama/Llama-3.3-70B-Instruct-Turbo |
| groq | GROQ_API_KEY |
llama-3.3-70b-versatile |
| ollama | OLLAMA_BASE_URL |
qwen2.5:14b |
| custom | CUSTOM_API_KEY + CUSTOM_BASE_URL |
需指定 |
也可运行时通过 -p / -m 参数切换:
uv run alphapilot chat -p deepseek
uv run alphapilot chat -p openai -m gpt-4o# 调整辩论轮数
OPENFR_MAX_DEBATE_ROUNDS=1 # 多空辩论轮数(默认 1)
OPENFR_MAX_RISK_DISCUSS_ROUNDS=1 # 风险辩论轮数(默认 1)
# 自定义 OpenAI 兼容接口
OPENFR_PROVIDER=custom
CUSTOM_BASE_URL=https://your-api.example.com
CUSTOM_API_KEY=your-api-key
CUSTOM_API_STYLE=openaiAlphaPilot/
├── src/openfr/ # 后端 Python 包
│ ├── cli.py # CLI 入口(Typer)
│ ├── config.py # 配置管理
│ ├── formatter.py # 终端输出格式化
│ ├── graph/ # LangGraph 图编排
│ ├── agents/ # 多 Agent 实现
│ │ ├── analysts/ # 市场/基本面/新闻/宏观分析师
│ │ ├── researchers/ # 多头/空头研究员
│ │ ├── managers/ # 研究经理/投资组合经理
│ │ └── risk_mgmt/ # 激进/保守/中性风险评估
│ ├── tools/ # 35+ AKShare 金融数据工具
│ └── api/ # FastAPI Web 服务
├── frontend/ # React 前端
│ ├── src/
│ │ ├── App.tsx
│ │ ├── hooks/useSSE.ts # SSE 流式消费
│ │ └── components/ # UI 组件
│ └── package.json
├── docs/ # 文档
├── tests/ # 测试
├── pyproject.toml # 项目配置
└── .env.example # 环境变量模板
# 在 .env 文件中添加
DEEPSEEK_API_KEY=your-api-key-here系统会自动重试(最多 3 次)并切换备用数据源。如持续失败,请检查网络。
非交易时间(工作日 9:30–15:00)部分实时数据不可用,可使用历史数据接口替代。
多 Agent 模式最少需要 ~15 次串行 LLM 调用,耗时受模型响应速度影响较大。建议:
- 使用响应速度快的模型(如 groq、deepseek)
- 调低
OPENFR_MAX_DEBATE_ROUNDS - 查看节点耗时标注定位慢节点
Made with ❤️ by jrf