























分析日期:2026-07-14
Vibe-Trading 是由香港大学数据科学实验室(HKUDS) 开源的 AI 驱动多智能体金融研究工作台。其核心理念是"自然语言驱动量化交易"——用户无需编写代码,只需用日常语言描述交易想法,Agent 即可自动完成数据拉取、策略编写、回测执行、报告生成全流程。项目定位为 "Your Personal Trading Agent"(你的个人交易代理),一条命令即可赋予智能体全面的交易研究能力 [1]。
| 项目 | 详情 |
|---|---|
| 项目名称 | Vibe-Trading |
| 项目地址 | https://github.com/HKUDS/Vibe-Trading |
| 项目官网 | https://vibetrading.wiki/ |
| PyPI 包 | vibe-trading-ai |
| 作者/组织 | HKUDS(香港大学数据科学实验室) |
| Stars | 22,000+(截至 2026 年 7 月) |
| 当前版本 | v0.1.11(2026 年 7 月 11 日发布) |
| 开源协议 | MIT License |
| 主要语言 | Python 3.11+(后端)、TypeScript/React(前端) |
| 仓库创建 | 2026 年 4 月 1 日 |
| 提交数 | 583+ commits |
项目官网展示了以下可视化界面:
README 提供英文、中文、日文、韩文、阿拉伯文五种语言版本。
用户只需用日常语言描述策略想法(如"回测沪深300的20/50日均线交叉策略,2024年全年"),Agent 自动完成:识别市场 → 选择数据源 → 编写策略代码 → 执行回测 → 输出报告。整个过程无需手动编写任何代码 [2]。
内置四大因子源:
| 因子源 | 数量 | 说明 |
|---|---|---|
| qlib158 | 158 个 | 来自微软 Qlib 的因子库 |
| alpha101 | 101 个 | Kakushadze 101 Formulaic Alphas(arXiv:1601.00991) |
| gtja191 | 191 个 | 国泰君安 2014 短线因子报告 |
| academic | 11 个 | Fama-French 5 因子 + Carhart 动量 + Jegadeesh 反转 + Amihud 非流动性等 |
支持因子对比(alpha compare)、IC/IR 分析、分位数回测等 [3]。
基于 DAG 编排的多智能体协作系统,Kahn 算法分层调度,层内并行、层间串行。典型预设:
| 预设 | 流程 |
|---|---|
investment_committee |
多头/空头辩论 → 风险审查 → PM 最终决策 |
quant_strategy_desk |
筛选 + 因子研究 → 回测 → 风险审计 |
crypto_trading_desk |
资金费率/清算/流向 → 风险管理 |
| 机制 | 说明 |
|---|---|
| AST 静态分析沙箱 | 编译阶段拦截 os.system、subprocess、eval 等 20+ 危险函数 |
| 外部安全审计 | 完成 2026-07-10 外部安全审计全部 10 项发现 |
| Docker 最小权限 | 非 root、cap_drop ALL、read_only rootfs |
| Single Mandate Gate | 实盘需用户承诺标的/订单量/敞口/杠杆等限制 |
支持 WebSocket、Telegram、Slack、Discord、Matrix、WhatsApp、Signal、QQ/NapCat、微信/企业微信、飞书/钉钉/Teams、邮件等渠道,Agent 可通过这些渠道接收研究请求并返回结果 [1]。
| 维度 | Vibe-Trading | TradingAgents | Qlib(微软) | Backtrader | vn.py |
|---|---|---|---|---|---|
| 核心范式 | 自然语言 → Agent 自动执行 | 多智能体 LLM 交易决策 | ML 驱动因子研究 | Python 代码编写策略 | C++ 引擎 + Python 插件 |
| 上手门槛 | 自然语言即可 | 需配置 | 需 ML 背景 | 需编程基础 | 需 C++/Python |
| 多智能体 | ✅ 29 个 Swarm 预设 | ✅ | ❌ | ❌ | ❌ |
| MCP 集成 | ✅ 22+ 个 MCP 工具 | ❌ | ❌ | ❌ | ❌ |
| 跨市场 | 6 大市场 | 主要美股 | 聚焦 A 股 | 需自行扩展 | 聚焦 A 股/期货 |
| 记忆系统 | ✅ FTS5 + 跨会话 | ❌ | ❌ | ❌ | ❌ |
| 安全审计 | ✅ 外部审计通过 | 未知 | N/A | N/A | N/A |
| 策略导出 | Pine Script/TDX/MQL5 | 有限 | ❌ | ❌ | 有限 |
| 平台 | 支持状态 |
|---|---|
| Windows | 已通过基线兼容性测试(4,701 passed, 47 skipped) |
| macOS | 支持 |
| Linux | 支持(Docker 部署推荐) |
核心依赖:
| 依赖 | 版本/说明 |
|---|---|
| Python | >= 3.11 |
| langchain | >= 0.1.0 |
| langgraph | >= 0.2.50 |
| fastapi | >= 0.104.0 |
| pandas | >= 2.0.0 |
| numpy | >= 1.24.0 |
| duckdb | >= 1.2.0 |
| yfinance | >= 0.2.30 |
| tushare | >= 1.2.89 |
| pydantic | >= 2.0.0 |
前端依赖: React + TypeScript + Vite + Zustand(状态管理)+ ECharts(图表渲染)
LLM Provider 支持(13+): OpenAI、DeepSeek、Gemini、Qwen、Kimi、Ollama、Codex OAuth、OpenRouter、Zhipu/GLM、Kimi for Coding、Requesty、OpenCode 等
方式一:PyPI 一键安装(推荐)
pip install vibe-trading-ai
vibe-trading init # 交互式生成 .env
vibe-trading # 启动交互式 CLI/TUI
vibe-trading serve --port 8899 # 启动 Web 服务
方式二:源码安装
git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
pip install -e .
vibe-trading
方式三:Docker 零配置部署
git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
cp agent/.env.example agent/.env
# 在 .env 中填入 LLM API Key(也支持本地 Ollama 零成本运行)
docker compose up --build
# 浏览器打开 http://localhost:8899
方式四:MCP 插件接入
将 vibe-trading-mcp 配置到 Claude Desktop / Cursor / Windsurf 的 MCP 配置中,22 个工具无需任何 API Key 即可调用。
Vibe-Trading/
├── agent/ # 核心 Agent 代码(Python)
│ ├── src/
│ │ ├── agent/ # ReAct 循环、上下文压缩
│ │ │ └── loop.py # 核心 Agent 循环
│ │ ├── api/ # FastAPI 路由模块
│ │ │ ├── system_routes.py # 系统路由
│ │ │ ├── channels_routes.py # 渠道管理路由
│ │ │ └── settings_routes.py # 设置路由
│ │ ├── backtest/ # 7 个回测引擎 + SignalEngine 契约
│ │ │ ├── runner.py # AST 安全沙箱
│ │ │ └── signal.py # SignalEngine 基类
│ │ ├── factors/ # Alpha Zoo 因子库
│ │ │ ├── registry.py # 因子注册表
│ │ │ ├── operators.py # 因子运算符
│ │ │ └── safety_gates.py # 安全门控
│ │ ├── loaders/ # 18 个数据源加载器 + 自动回退链
│ │ ├── connectors/ # 10 个券商连接器
│ │ │ ├── ibkr.py # Interactive Brokers
│ │ │ ├── robinhood.py # Robinhood
│ │ │ ├── tiger.py # 老虎证券
│ │ │ ├── alpaca.py # Alpaca
│ │ │ ├── okx.py # OKX
│ │ │ └── binance.py # Binance
│ │ ├── providers/ # 13+ LLM Provider 适配层
│ │ ├── skills/ # 79 个金融技能(Markdown + YAML)
│ │ ├── swarm/ # 多智能体 DAG 编排引擎
│ │ ├── shadow/ # 影子账户系统
│ │ └── channels/ # 16 个 IM 渠道适配器
│ ├── config/swarm/ # 29 个 Swarm 预设(YAML)
│ └── .env.example # 环境变量模板
├── frontend/ # React + TypeScript 前端
│ └── src/
├── tools/ # 辅助工具脚本
├── scripts/ # 构建/部署脚本
├── wiki/ # 文档站点源码
├── cli.py # CLI 入口
├── run_agent.py # Agent 运行入口
├── api_server.py # FastAPI 服务器入口
├── mcp_server.py # MCP 服务器入口
├── pyproject.toml # 项目配置与依赖
├── docker-compose.yml # Docker 编排
├── Dockerfile # Docker 多阶段构建
└── README.md / README_zh.md # 多语言文档
用户交互层:CLI/TUI │ Web UI (React+TS) │ MCP Server │ API Consumer
↓
入口层:cli.py / api_server.py (FastAPI+SSE) / mcp_server.py
↓
Agent 核心层:ReAct 循环 + 5 层上下文压缩 + ToolRegistry + SkillsLoader
↓
工具与数据层:Backtest │ Shadow Account │ Factor Analysis │ Web Search
↓
LLM 抽象层(13 Provider)+ 数据存储层(SQLite FTS5 / 文件系统)
| 模块 | 路径 | 功能 |
|---|---|---|
| ReAct Loop | agent/src/agent/loop.py |
核心 Agent 循环,Reasoning + Acting 模式,内置 5 级上下文压缩 |
| Swarm 引擎 | agent/src/swarm/ |
DAG 编排多智能体,Kahn 拓扑分层,层内并行/层间串行 |
| 回测引擎 | agent/src/backtest/ |
7 个市场引擎,模板方法模式,3 种统计验证,4 个权重优化器 |
| Alpha Zoo | agent/src/factors/ |
461 个因子,因子注册表、对比工具、IC/IR 分析 |
| 数据加载层 | agent/src/loaders/ |
18 个免费数据源 + 自动回退链,支持本地 CSV/Parquet/DuckDB |
| 券商连接器 | agent/src/connectors/ |
10 个券商,paper/live 属性化,Single Mandate Gate 安全门控 |
| LLM Provider | agent/src/providers/ |
13+ 模型适配,显式能力层隔离各 Provider 协议差异 |
| IM 渠道 | agent/src/channels/ |
16 个即时通讯适配器,CLI/REST/Web UI 三端管理 |
| 影子账户 | agent/src/shadow/ |
交易记录解析 → 隐含策略提取 → 8 维度归因报告 |
AgentLoop 位于 agent/src/agent/loop.py,实现标准的 ReAct(Reasoning + Acting)模式。核心流程:
| 级别 | 机制 | 触发条件 |
|---|---|---|
| L1 微压缩 | 静默截断冗余工具输出,保留关键指标 | 零 API 成本,始终启用 |
| L2 滑动窗口 | 保留最近 N 轮完整交互,更早轮次仅留摘要 | 始终启用 |
| L3 语义摘要 | LLM 生成 JSON 结构化摘要 | token > 40K 触发 |
| L4 知识蒸馏 | 重复领域知识提取为独立 context block | 跨会话重复知识 |
| L5 全局记忆 | FTS5 持久化,新会话自动召回 | 跨会话 |
# agent/backtest/signal.py
class SignalEngine:
"""策略信号引擎基类,所有策略必须实现 generate 方法"""
def generate(self, data: pd.DataFrame) -> np.ndarray:
"""
返回信号数组:-1.0 = 空头, 0.0 = 持有现金, 1.0 = 多头
"""
raise NotImplementedError
# Agent 自动生成的均线交叉策略示例
class MACrossover(SignalEngine):
def generate(self, data: pd.DataFrame) -> np.ndarray:
fast = data['close'].rolling(20).mean()
slow = data['close'].rolling(50).mean()
return ((fast > slow).astype(float) * 2 - 1).values
回测引擎要求策略输出值域为 [-1.0, 1.0] 的信号序列。Agent 自动生成符合接口的代码并注入引擎执行。SignalEngine 契约将自然语言策略描述与可执行回测代码之间的桥梁标准化,确保 Agent 生成的代码与回测引擎无缝对接。
Swarm 系统基于有向无环图(DAG)实现多智能体协作:
| 组件 | 职责 |
|---|---|
| SwarmRuntime | 编排引擎,后台守护线程执行,SSE 实时事件流 |
| SwarmWorker | 轻量级 ReAct 循环,独立工具注册表和技能白名单 |
| Mailbox | 基于文件系统的 Agent 间消息传递 |
| TaskStore | DFS 三色环检测 + Kahn 拓扑分层 |
以 investment_committee 预设为例的 DAG 编排:
Layer 0(并行): bull_advocate(多头) │ bear_advocate(空头)
↓
Layer 1(依赖 L0): risk_officer(风险官) → 汇总多空辩论
↓
Layer 2(依赖 L1): portfolio_manager(组合经理) → 最终决策
Kahn 算法确保层内节点并行执行,层间串行依赖,最大化并发效率同时保证逻辑正确性。
# agent/backtest/runner.py(简化逻辑)
import ast
FORBIDDEN_CALLS = {
'os.system', 'subprocess.Popen', 'subprocess.call',
'subprocess.run', 'eval', 'exec', 'os.environ',
'os.remove', 'os.unlink', 'shutil.rmtree',
'socket.socket', 'urllib.request', 'http.client',
# ... 共 20+ 危险函数
}
class SafetyVisitor(ast.NodeVisitor):
def visit_Call(self, node):
func_name = self._resolve_func_name(node.func)
if func_name in FORBIDDEN_CALLS:
raise SecurityError(f"Forbidden call: {func_name}")
self.generic_visit(node)
def validate_strategy_code(code: str):
"""编译阶段通过 AST 静态分析拦截危险函数调用"""
tree = ast.parse(code)
SafetyVisitor().visit(tree)
# 通过检查后编译执行
compiled = compile(tree, '<strategy>', 'exec')
return compiled
编译阶段通过 AST 静态分析拦截 os.system、subprocess、eval、exec 等 20+ 危险函数,拒绝网络访问、子进程创建、不安全文件操作。支持嵌套函数体内部的检测。比运行时捕获更安全——即使 LLM 生成了恶意代码也不会被执行。
from vibe_trading.factors import ZooSignalEngine
from vibe_trading.factors.registry import AlphaRegistry
# 列出所有 qlib158 因子
alphas = AlphaRegistry.list(zoo="qlib158")
# 用前 5 个因子构建信号引擎
engine = ZooSignalEngine.from_zoo(
zoo="qlib158",
factors=alphas[:5],
rebalance="weekly",
)
# 执行回测
result = engine.backtest(
universe="CSI300",
start="2023-01-01",
end="2024-12-31",
)
print(result.sharpe, result.max_drawdown, result.annual_return)
Alpha Zoo 提供统一 API 访问 461 个因子,支持因子对比(alpha compare)、IC/IR 分析、分位数回测等。Agent 可以根据用户的自然语言描述自动选择合适的因子组合并构建信号引擎。
| 场景 | 说明 |
|---|---|
| 自然语言量化研究 | 快速验证策略想法,无需编写代码,适合非技术背景投资者 |
| 多智能体 Swarm 协同 | 模拟真实机构投研流程,辩论式决策提供可解释性 |
| 跨市场数据与回测 | 覆盖 A 股/港股/美股/加密/期货/外汇六大市场,统一研究全球资产配置 |
| 影子账户 + 交易归因 | 上传券商导出文件(同花顺/东财/富途),自动分析交易画像与行为偏差 |
| AI Agent 工作流集成 | 通过 MCP 协议提供 22 个工具,可直接嵌入 Claude Desktop / Cursor / Windsurf 等 |
| 策略导出 | 一键导出 Pine Script / 通达信公式 / MT5 MQL5 代码,打通研究到实盘 |
| 定时研究执行 | 后台调度器按 interval/cron 定时触发研究任务 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。