Files

TradingAgents 多智能体LLM金融交易框架调研报告

调研日期: 2026-04-09
调研人: 庞统 (副军师)
调研主题: TauricResearch/TradingAgents 项目技术分析与评估


目录

  1. 项目概述
  2. 框架架构与分工设计
  3. 协作机制技术实现
  4. 优缺点分析
  5. 对大模型的要求
  6. Mac Studio 本地部署推荐配置
  7. 与传统AI量化对比总结

一、项目概述

TradingAgents 是由 TauricResearch 开源的一个基于大语言模型(LLM)的多智能体金融交易框架。该项目模拟真实世界交易公司的运作方式,通过多个专业化的LLM智能体协作来评估市场状况并做出交易决策。


二、框架架构与分工设计

TradingAgents 将复杂的交易任务分解为多个专业化角色,完全模拟真实投行/对冲基金的分工模式:

分析师团队

角色 职责
基本面分析师 评估公司财务和业绩指标,识别内在价值和潜在风险
情绪分析师 分析社交媒体和公众情绪,衡量短期市场情绪
新闻分析师 监控全球新闻和宏观经济指标,解读事件对市场的影响
技术分析师 利用技术指标(MACD、RSI等)发现交易模式,预测价格走势

研究员团队

角色 职责
多头研究员 构建看涨案例,强调增长潜力和竞争优势
空头研究员 提出看空论据,识别风险,反驳多头论点
研究经理 仲裁多空辩论,给出投资计划结论

交易与风控

角色 职责
交易员 整合分析结果,制定具体交易提案
激进风险分析师 倾向进攻,支持更大仓位
保守风险分析师 强调风险控制,建议缩小仓位
中立风险分析师 平衡双方观点,寻找中庸方案
投资组合经理 综合风险辩论,给出最终交易决策(五大评级之一)

完整执行流程

START
  │
  ▼
分析师团队依次独立分析 → 输出各领域报告
  │
  ▼
多头 ↔ 空头 多轮投资辩论
  │
  ▼
研究经理仲裁 → 输出投资计划
  │
  ▼
交易员制定交易提案
  │
  ▼
激进 ↔ 保守 ↔ 中立 多轮风险辩论
  │
  ▼
投资组合经理最终决策 → 输出: Buy/Overweight/Hold/Underweight/Sell
  │
  ▼
END

三、协作机制技术实现

项目基于 LangGraph 状态图 实现多智能体协作。

3.1 顺序执行协作的技术实现

基本原理

每个分析师是图中的一个节点,通过条件边控制流程:

  1. 分析师节点 → LLM分析判断是否需要调用工具
  2. 条件判断 should_continue_xxx
    • 如果需要调用工具 → 去 tools_xxx 节点执行工具获取数据,然后返回分析师继续分析
    • 如果不需要调用工具 → 去 Msg Clear 节点清空消息(避免上下文爆炸)
  3. 传递给下一个分析师,直到所有分析师完成,进入辩论阶段

消息清空技巧

这是项目的一个巧妙工程设计:

# 每个分析师完成报告后,结果保存在专门的状态字段:
state["fundamentals_report"] = report

# 然后清空messages列表,避免后续上下文爆炸
return {"messages": []}

优势:每个分析师结果单独存储,不会撑爆上下文窗口。

3.2 多轮辩论机制的技术实现

投资辩论(双人循环:多头 ↔ 空头)

状态定义

class InvestDebateState(TypedDict):
    bull_history: str          # 多头发言历史
    bear_history: str          # 空头发言历史
    history: str               # 完整辩论历史
    current_response: str      # 最新发言
    count: int                 # 辩论轮次计数器

条件路由逻辑

def should_continue_debate(self, state):
    # 达到最大轮数 → 结束辩论,交给研究经理裁决
    if state["investment_debate_state"]["count"] >= 2 * max_debate_rounds:
        return "Research Manager"
    
    # 轮流发言:看谁刚才说了,下一个就是对手
    if current_response.startswith("Bull"):
        return "Bear Researcher"  # 多头说完 → 空头
    return "Bull Researcher"       # 空头说完 → 多头

每个研究员节点只做一件事:读取当前辩论历史,基于此生成自己的发言,更新状态,然后交给下一个人。

风险辩论(三人循环:激进 → 保守 → 中立)

原理相同,只是三个人轮流:

def should_continue_risk_analysis(self, state):
    if count >= 3 * max_risk_discuss_rounds:
        return "Portfolio Manager"  # 达到轮数,结束
    
    # 按顺序轮流
    if latest_speaker.startswith("Aggressive"):
        return "Conservative Analyst"
    if latest_speaker.startswith("Conservative"):
        return "Neutral Analyst"
    return "Aggressive Analyst"

辩论机制总结

特点 实现方式
轮流发言 检查"谁最后发言"决定下一个
轮数控制 计数器 + 最大轮数配置,达到就退出
历史保存 完整辩论历史以纯文本保存在状态中
可配置 max_debate_rounds 可调,默认2轮

四、优缺点分析

优点

  1. 符合人类组织决策习惯,可解释性强

    • 每个环节都有明确输出,便于追溯问题
    • 相比端到端单LLM,过程更透明
  2. 专业化分工提升专业度

    • 每个agent只关注自己领域,prompt针对性优化
    • 结果输出质量更高
  3. 辩论减少认知偏差

    • 多空辩论逼迫考虑对立观点
    • 风险辩论平衡风险收益,避免极端决策
  4. 模块化程度高,易于扩展

    • 增减分析师只需要修改图定义
    • 支持任意LLM提供商,可自由切换
  5. 支持记忆学习

    • 每个关键角色有独立向量记忆
    • 可根据交易结果反思改进,越做越好
  6. 灵活可配置

    • 分析师可选择性开启
    • 辩论轮数可配置
    • 深浅任务分配给不同大小模型,平衡成本效果

缺点

  1. 成本高,多次LLM调用token消耗大

    • 一次完整决策通常需要 15-30次 LLM调用
    • API调用费用高,串行执行速度慢,一次决策要几分钟
  2. 错误累积效应

    • 流水线结构,如果前面分析师出错,后面基于错误信息继续,结果肯定错
    • 对比单LLM,更难发现前面的错误
  3. 对LLM能力依赖强,不适合小模型

    • 需要正确的工具调用、长上下文理解、指令跟随
    • 本地小模型(7B/14B)很难稳定运行
  4. 缺少并发支持

    • 分析师顺序执行,实际上四个分析师完全可以并行,能大幅缩短时间
  5. 辩论质量不稳定

    • 容易变成"各说各话",没有真正交锋反驳
    • 需要更强的prompt工程优化
  6. 缺少大规模实盘验证

    • 项目很新(2026年初才发布),公开回测结果不多
    • 是否真能持续赚钱还需要时间验证

五、对大模型的要求

项目原生支持两级模型分工,平衡成本和效果:

层级 职责 推荐模型规格
quick_think_llm 分析师、研究员辩论、交易员 小/中型号,速度快成本低
deep_think_llm 研究经理仲裁、投资组合经理最终决策 大型号,推理能力强

各厂商官方推荐配置

厂商 快速思考 深度思考
OpenAI gpt-5.4-mini gpt-5.4
Anthropic claude-haiku-4-5 claude-opus-4-6
Google gemini-2.5-flash-lite gemini-3.1-pro
Ollama (本地) qwen3:latest (8B) glm-4.7-flash:latest (30B)

必须具备的能力

  1. 工具调用能力 (Function Calling) → 分析师获取数据
  2. 长上下文理解 → 至少128K+,推荐1M+
  3. 良好的指令跟随 → 每个角色必须严格遵循定位
  4. 结构化输出 → 最终决策需要固定格式

六、Mac Studio 本地部署推荐配置

按统一内存大小推荐方案

32GB 统一内存(起步推荐)

quick_think_llm:
  模型: Qwen3 8B Instruct GGUF
  量化: q4_K_M
  占用: ~5GB

deep_think_llm:
  模型: GLM-4.7-Flash 30B Instruct GGUF
  量化: q4_K_M
  占用: ~18GB

总占用: ~25-28GB,刚好放下

64GB 统一内存(更佳体验)

quick_think_llm: Qwen3 14B q4_KM → ~9GB
deep_think_llm: GLM-4.7-Flash 30B q6_K → ~25-28GB
总占用: ~40GB,有富余

128GB 统一内存(满血体验)

quick_think_llm: Qwen3 32B q4_K_M → ~18GB
deep_think_llm: GLM-4.7 70B q4_K_M → ~40GB
总占用: ~60-65GB,体验接近API大模型

Ollama 一键部署步骤

# 安装 Ollama
brew install ollama
ollama serve

# 拉取模型(32GB方案示例)
ollama pull qwen3:latest
ollama pull glm-4.7-flash:latest

# TradingAgents 配置
config["llm_provider"] = "ollama"
config["quick_think_llm"] = "qwen3:latest"
config["deep_think_llm"] = "glm-4.7-flash:latest"

中文用户首选就是 Qwen + GLM 组合,都是国产开源,中文支持优秀,Ollama官方已经收录。


七、与传统AI量化对比总结

目前经过实操验证的可行方案对比

方案 可行度 说明
传统因子 + AI辅助挖掘因子 机构主流做法,长期验证可行
纯传统多因子/CTA 长期验证可行,超额需要持续迭代
AI波动率预测/风险预测 比传统方法好,确实有用
LLM舆情情绪分析 有增量信息,作为多因子一部分不错
TradingAgents LLM多智能体决策 思路新颖,研究价值高,大规模实盘验证还需要时间
端到端强化学习直接交易 回测容易过拟合,实盘稳定方案少

核心结论

  1. TradingAgents 的创新价值:首次将完整的真实交易机构分工流程,用LLM多智能体状态机优雅实现,思路非常新颖,可解释性远胜于黑箱模型,研究价值很高。

  2. 适合场景

    • 低频投资决策(周度/月度调仓)
    • 研究学习多智能体协作
    • 有足够硬件或API配额,尝试新框架
  3. 不适合场景

    • 高频交易(速度太慢,成本太高)
    • 本地小模型(< 30B很难稳定运行)
    • 成本敏感的个人投资者(API调用成本不低)
  4. 给个人投资者建议

    • 从"传统因子框架 + AI辅助挖掘"这条路开始,这是已经验证的康庄大道
    • TradingAgents作为前沿研究方向值得学习跟进,但不要一上来就all in
    • AI是工具不是银弹,用AI增强传统方法,而不是完全推翻重来

调研结论

TradingAgents 是一个设计优雅、思路创新的项目,它证明了用LLM多智能体模拟真实交易机构决策流程是完全可行的。虽然目前还缺少大规模长期实盘验证,成本也较高,但作为研究方向非常有前景,值得持续关注。

对于有Mac Studio的用户,按照本文推荐的30B深度思考 + 8B快速思考的本地配置,完全可以跑起来进行研究测试。