传统量化交易系统依赖人工编写的规则和统计模型:技术指标交叉、均线策略、布林带突破……这些方法的共同问题是无法理解非结构化信息(新闻、财报、社交媒体情绪),更无法像人类分析师那样综合多维度信息进行推理判断。
TradingAgents 的答案是:用多个专业化 LLM Agent 模拟一个真实的交易分析团队。
架构总览
TradingAgents 采用 分层 + 管道 的混合架构,核心编排引擎是 LangGraph:
2026/5/9...大约 6 分钟
传统量化交易系统依赖人工编写的规则和统计模型:技术指标交叉、均线策略、布林带突破……这些方法的共同问题是无法理解非结构化信息(新闻、财报、社交媒体情绪),更无法像人类分析师那样综合多维度信息进行推理判断。
TradingAgents 的答案是:用多个专业化 LLM Agent 模拟一个真实的交易分析团队。
TradingAgents 采用 分层 + 管道 的混合架构,核心编排引擎是 LangGraph:
TradingAgents 模拟了一个完整的交易团队,包含 12 个独立 AI Agent,分布在四个层级。每个 Agent 都有专属的 system prompt、工具集和决策逻辑。
┌──────────────────────────────────────────────────────────────┐
│ 📊 分析师层 (Analyst Layer) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Market │ │ Social │ │ News │ │ Fundamentals │ │
│ │ Analyst │ │ Analyst │ │ Analyst │ │ Analyst │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │ │
│ 技术指标/走势 社交媒体情绪 财经新闻分析 财报/基本面数据 │
├──────────────────────────────────────────────────────────────┤
│ 🔬 研究员层 (Researcher Layer) │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Bull │ │ Bear │ │
│ │ Researcher │←→│ Researcher │ 多轮辩论 │
│ └──────┬───────┘ └──────┬───────┘ │
│ └────────┬───────┘ │
│ 👤 Research Manager (裁决) │
├──────────────────────────────────────────────────────────────┤
│ 💰 交易层 (Trading Layer) │
│ ┌──────────────┐ │
│ │ Trader │ 制定交易计划 │
│ └──────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ ⚠️ 风控层 (Risk Management Layer) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Aggressive │ │ Neutral │ │ Conservative │ │
│ │ Analyst │←→│ Analyst │←→│ Analyst │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │
│ └─────────────────┼─────────────────────┘ │
│ 👤 Portfolio Manager (最终决策) │
└──────────────────────────────────────────────────────────────┘
前两篇文章分别介绍了架构设计和 Agent 角色。本文将追踪一次完整的交易决策——从用户输入 ta.propagate("NVDA", "2024-05-10") 到最终输出五档评级。
一切从 propagate() 方法开始:
# tradingagents/graph/trading_graph.py
def propagate(
self,
company_name: str,
trade_date: str,
past_context: str = "",
callbacks: Optional[List] = None,
) -> Tuple[Dict[str, Any], str]:
"""运行完整的交易决策流程"""
# Phase A: 创建初始状态
init_state = self.propagator.create_initial_state(
company_name, trade_date, past_context
)
self.ticker = company_name
self.curr_state = init_state
# 检查是否有 checkpoint 可以恢复
saved_state = checkpoint_step(self.graph, company_name, trade_date)
# Phase B: 执行图
events = self.graph.stream(
saved_state or init_state,
**self.propagator.get_graph_args(callbacks)
)
for event in events:
self._process_event(event)
# Phase C: 后处理
final_decision = self._extract_final_decision(self.curr_state)
return self.curr_state, final_decision
前三篇文章从架构、Agent 角色和工作流角度深度剖析了 TradingAgents。本文聚焦实践:怎么用、在哪用、用得好。
# 克隆仓库
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
# 安装依赖
pip install -e .