Vibe-Trading 深度解析(一):用 LLM 驱动的完整股票研究智能体架构总览

Vibe-Trading 深度解析(一):用 LLM 驱动的完整股票研究智能体架构总览

一条命令,搭建一个具备完整交易研究能力的 AI 智能体------Vibe-Trading 是如何做到的?Github:https://github.com/HKUDS/Vibe-Trading/tree/main


一、项目解决了什么问题?

传统量化研究工作流割裂且繁琐:数据获取、因子计算、策略回测、报告生成、团队协作分布在十几个独立工具中,研究员往往花费大量时间在「胶水代码」上,而非策略本身。

Vibe-Trading 的回答是:以大语言模型(LLM)为中枢神经系统,将全量化研究工作流 Agent 化。它不仅仅是一个聊天机器人,而是一个具备以下能力的智能研究平台:

  • 多市场数据接入:18 个免费数据源(yfinance / AKShare / Tushare / OKX / CCXT...)统一通过 Loader Registry 路由
  • 460+ Alpha 因子库(Zoo):从 alpha101 到学术论文因子,全部向量化并具备回测
  • 多券商实盘连接:IBKR / Robinhood / Alpaca / 长桥 / 老虎 / 币安等 10+ 家,mandate-gate 安全隔离
  • 多 IM 通道运行时:Telegram / Discord / Slack / 飞书 / 企业微信 / 钉钉等 16 个即时通讯适配器
  • Swarm 多智能体:投资委员会、量化台、风险委员会等多角色协同分析预设

二、技术栈

层次 技术选型
后端核心 Python 3.11+, FastAPI, FastMCP
Agent 框架 LangChain (ChatOpenAI wrapper), 自研 ReAct Loop
LLM 支持 OpenAI / Claude / Gemini / DeepSeek / Kimi / Ollama / 30+ 兼容 provider
数据处理 Pandas, NumPy, Bottleneck(向量化加速)
数据源 tushare / yfinance / akshare / ccxt / okx / mootdx / futu + 可选付费层
前端 React 19 + TypeScript + Vite
部署 Docker Compose(多阶段构建、只读根文件系统、资源限制)
配置管理 Pydantic EnvConfig(单一 Schema,AST CI 门禁防止 os.getenv 蔓延)

三、目录结构分析

复制代码
Vibe-Trading/
├── agent/                  # 核心后端(Python)
│   ├── src/
│   │   ├── agent/          # ReAct 核心循环(loop.py / context.py / skills.py)
│   │   ├── channels/       # 16 个 IM 适配器 + MessageBus
│   │   ├── providers/      # LLM 工厂 + 能力层(capabilities.py)
│   │   ├── swarm/          # 多智能体 Swarm 运行时 + YAML 预设
│   │   ├── factors/        # Alpha Zoo 基础算子 + 注册表
│   │   ├── trading/        # 券商连接器(mandate-gate 安全模型)
│   │   └── memory/         # 持久化跨会话记忆
│   ├── backtest/           # 向量化回测引擎 + 指标计算
│   └── mcp_server.py       # MCP 协议服务端(54 个 tools)
├── frontend/               # React 19 Web UI
└── tools/                  # CI 门禁脚本(AST 静态分析)

四、如何使用

目标:用最少步骤跑通「自然语言 → 工具调用 → 可检查产物」。只需任意受支持的 LLM API Key (或本机 Ollama);行情默认走免费源自动 Fallback,无需先配 Tushare。

4.1 三条启动路径

路径 适用场景 大致耗时
PyPI 一行安装 立刻试用 CLI / MCP ~1 min
Docker 零本地依赖,Web 一体 ~2 min
源码开发 改 Agent / 前端 / Loader ~5 min

路径 A:PyPI

bash 复制代码
pip install vibe-trading-ai
vibe-trading init              # 交互式写入 ~/.vibe-trading/.env
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024 and summarize return and drawdown"

安装后三个入口:

命令 用途
vibe-trading 交互式 CLI / TUI
vibe-trading serve FastAPI + 内嵌 Web
vibe-trading-mcp MCP Server(Claude Desktop、Cursor、OpenClaw 等)

路径 B:Docker

bash 复制代码
git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
cp agent/.env.example agent/.env   # 填入 LLM provider 与 API key
docker compose up --build

浏览器打开 http://localhost:8899。默认只绑定本机;若暴露到局域网,需设置 API_AUTH_KEY

路径 C:源码开发

bash 复制代码
python -m venv .venv
# Windows: .venv\Scripts\Activate.ps1
pip install -e .
cp agent/.env.example agent/.env
vibe-trading                   # CLI
# 或:vibe-trading serve --port 8899
# 前端热更:cd frontend && npm install && npm run dev  → http://localhost:5899

4.2 典型用法(自然语言即可)

bash 复制代码
# 1) 策略回测 + 报告
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024, summarize return and drawdown, then export the report"

# 2) Alpha Zoo 横评(不经过聊天,直接 CLI)
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20

# 3) Shadow Account:上传成交 → 抽出你的规则 → 对照回测
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"

# 4) Swarm 委员会(Web 或聊天里也可点 Swarm 预设)
vibe-trading run -p "Use run_swarm with investment_committee to evaluate whether to go long 600519.SH"

# 5) 恢复历史会话
vibe-trading resume <session-id>

Web UI:聊天里直接输入研究问题;+ 菜单可挂载上传、Swarm、Research Goal。Settings 配置 Provider、数据源 token、IM 通道。

4.3 接入已有 Agent(MCP)

bash 复制代码
vibe-trading-mcp    # stdio;也可配 Streamable HTTP / SSE

将 MCP 客户端指向该进程后,即可调用行情、回测、研报、资金流等只读研究工具(不含裸下单面)。细节见官方 Wiki:vibetrading.wiki/docs

4.4 使用前检查清单

  1. vibe-trading init 或 Settings 已写入可用 LLM(OpenAI / DeepSeek / Kimi / Gemini / Ollama 等 30+)。
  2. 网络能访问至少一个免费行情源(腾讯 / Yahoo / OKX / mootdx 等);可选 TUSHARE_TOKEN 提升 A 股质量。
  3. 出问题先跑 vibe-trading provider doctor,再查 agent/sessions/ 下 trace。

五、使用效果

「效果」分两层:界面上能立刻看到的交互效果,以及一次完整研究任务落地的产物效果。

5.1 交互效果(Demo)

5.2 任务效果:输入 → 系统行为 → 你得到什么

你怎么用 系统实际做什么 可见效果 / 产物
「回测某策略并总结」 ReAct 调 get_market_data → 生成 signal_enginebacktest → 归因 聊天结论 + runs// 下 equity、metrics、run_card.md、可选 HTML 报告
alpha bench 对选定 Zoo 批量算 IC / IR 终端排行榜;Wiki Alpha Library 同源渲染
上传成交做 Shadow 解析券商 CSV → 行为画像 → 抽规则 → shadow 回测 胜率/处置效应等诊断 + 规则违背/错过信号对照报告
run_swarm 委员会 DAG 调度多 Worker,聊天内嵌状态卡 各角色分报告 + Aggregator final_report;SSE 实时状态
挂 Research Goal Goal 准则 + add_goal_evidence 续跑 可审计证据账本;未完成准则会强制续轮
IM(飞书/Telegram...) 同一 Session Runtime 经 Channel 投递 手机端收到与 Web 同质的研究结果

5.3 相对「手写脚本」的体感差异

  1. 少胶水:数据源 Fallback、回测引擎选择、报告落盘由 Tool 层完成,用户只描述目标。
  2. 可检查 :每次 run 有 trace、artifacts、token 用量(llm_usage.json),不是一次性聊天泡沫。
  3. 可续跑resume、Goal continuation、Swarm run_id 跟进,长研究不会因一次超时整段作废。
  4. 可外挂:同一套研究能力经 MCP / REST / IM 复用,不必为每个客户端重写工作流。

说明:系统输出研究与回测结论,不构成投资建议;实盘下单受 mandate-gate 约束,默认研究面只读。


六、系统核心架构

6.1 入口类说明

核心入口类AgentLoopagent/src/agent/loop.py

AgentLoop 是整个系统的 ReAct(Reason + Act)引擎,负责调度 LLM 推理与工具执行的完整循环。它持有三个核心依赖:

  • ToolRegistry:工具注册表(68 个 agent 工具)
  • ChatLLM:LLM 客户端(抽象为 src.providers.chat.ChatLLM
  • WorkspaceMemory:工作区记忆(当前运行状态)

6.2 关键流程:ReAct 主循环

6.3 关键实现点:五层上下文压缩

这是 Vibe-Trading 最具工程价值的设计之一,在 loop.py 开头注释中已明确:

层次 触发条件 代价 机制
Layer 1: microcompact tokens > threshold×50% 零 API 清除旧工具结果(保留最近 3 条)
Layer 2: context_collapse tokens > threshold×70% 零 API 折叠长文本块(保留首尾)
Layer 3: auto_compact tokens > threshold 1次 LLM 结构化摘要生成
Layer 4: compact tool 模型显式调用 1次 LLM 同 Layer 3
Layer 5: iterative update 连续压缩 1次 LLM 更新已有摘要(非重建)
python 复制代码
# 实际代码摘取(loop.py)
if tokens > int(_token_threshold() * 0.5):
    _microcompact(messages)

if tokens > int(_token_threshold() * 0.7):
    _context_collapse(messages)

if tokens > _tok_threshold:
    self._auto_compact(messages, run_dir, trace, iteration=current_iter)

_context_collapse 的零代价折叠策略:保留最近 6 条消息不压缩,对更早的长文本(>2400 字符)截取头 900 字符 + 尾 500 字符,中间记录字符数。整个操作无需调用 LLM,成本为零。


七、技术总结

Vibe-Trading 的架构核心是**"LLM as ReAct Engine + Skill/Tool Ecosystem"**。与市面上大多数「LLM + 工具调用」方案相比,它的特别之处在于:

  1. 无框架绑定的自研 ReAct Loop:不依赖 LangGraph/AgentExecutor,直接控制消息历史和工具调用流程,保持对上下文生命周期的完全掌控
  2. 五层分级上下文压缩:在 LLM 上下文窗口约束与信息保真之间精细权衡,零代价优先
  3. Provider 能力层解耦 :通过 capabilities.py 把各模型的特殊行为(Gemini thought signatures / DeepSeek reasoning_content / Kimi temperature 限制)收进能力描述符,不污染主循环
  4. 读写批处理工具执行:连续只读工具通过线程池并发执行,写操作串行,兼顾吞吐与安全
  5. 开箱即用的多入口:CLI / Web / MCP / IM 共用同一套 Session Runtime,研究产物可检查、可续跑

下一篇将聚焦多 IM 工具通道 的工程实现------16 个适配器如何通过 BaseChannel 抽象与 MessageBus 统一接入同一个 agent session runtime。

相关推荐
@灯神1 小时前
SpringAI系列|第1篇:SpringAI概述与快速上手
java·人工智能·spring·ai·ai编程
美狐美颜sdk1 小时前
自研还是第三方?直播APP开发中视频美颜SDK如何选择?
人工智能
aqi001 小时前
15天学会AI应用开发(十四)搭建LangChain的开发环境
人工智能·python·大模型·ai编程·ai应用
科技发布1 小时前
传统流量损耗严重,拓氪科技 AIGEO 怎样缩短转化链路?
人工智能·科技
国科安芯1 小时前
抗辐射微控制器在卫星电源管理分系统中的控制架构与可靠性研究——基于AS32S601型MCU的星载能源系统智能化管理技术分析
网络·单片机·嵌入式硬件·安全·架构·系统架构·能源
中国搜索直付通1 小时前
避开直付通选型暗礁:二级商户的合规生存与背景甄别
java·大数据·开发语言·人工智能·游戏
微三云云仔1 小时前
GEO系统技术架构拆解:微三云双引擎产品的模块化设计逻辑
架构
Mr.朱鹏2 小时前
科技早报(第2026-07-17.md期):变现加速监管升温
人工智能·科技
想会飞的蒲公英2 小时前
词袋模型与 CountVectorizer:文本也可以做特征表
人工智能·python·机器学习