编程 LangGraph 多智能体交易框架 TradingAgents:状态恢复、记忆注入与可复现边界

2026-09-09 00:03:51

LangGraph 多智能体交易框架 TradingAgents:状态恢复、记忆注入与可复现边界

Tauric Research 开源的 TradingAgents 是一个基于 LangGraph 的多智能体 LLM 金融交易框架,Apache-2.0 协议,GitHub 约 10 万星。项目定位是研究用途而非投资建议。官方实现的角色分工如下:

  • Analyst Team:基本面、情绪、新闻、技术四类分析师并行分析
  • Researcher Team:多空研究员对抗辩论
  • Trader:综合决策
  • Risk & Portfolio Manager:风控与最终批准

官方公布的实验结果显示年化收益率最高约 30.5%,Sharpe 与最大回撤优于基准;但 README 明确说明回测结果不保证复现任何数字。

安装与快速使用

git clone https://github.com/TauricResearch/TradingAgents.git
conda create -n tradingagents python=3.12
pip install .

也支持 Docker:

cp .env.example .env
docker compose run --rm tradingagents
# 本地 Ollama
docker compose run --rm --profile ollama tradingagents

Python 调用方式:

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2026-01-15")

CLI 用 tradingagentspython -m cli.main。ticker 采用 Yahoo Finance 格式,A 股如 600519.SS,港股如 0700.HK

Provider 与关键配置

LLM provider 支持 OpenAI、Google、Anthropic、xAI、DeepSeek、Qwen(DashScope 国际 + 国内)、GLM、MiniMax、OpenRouter、Azure OpenAI、Ollama 本地,以及任意 OpenAI 兼容端点(vLLM、LM Studio、llama.cpp,走 llm_provider=openai_compatible)。

可覆盖的 config 字段:

  • llm_provider
  • deep_think_llm:复杂推理链,如 gpt-5.6
  • quick_think_llm:轻量快速响应
  • max_debate_rounds:多空辩论轮次上限

决策记忆:跨交易注入历史教训

每次分析完成后,决策记录会追加写入 ~/.tradingagents/memory/trading_memory.md。下次运行同 ticker 分析时,框架先取出已实现收益并生成反思,将近期同 ticker 决策与跨 ticker 教训一并注入 Portfolio Manager 的 prompt。

记忆日志路径可通过环境变量 TRADINGAGENTS_MEMORY_LOG_PATH 覆盖。

Checkpoint 续跑:从最后成功节点恢复

Checkpoint 是 opt-in 机制,启用方式:

tradingagents analyze --checkpoint
# 清除该 ticker 的 checkpoint
tradingagents analyze --clear-checkpoints

也可以在 config 中设置 config["checkpoint_enabled"] = True

LangGraph 在每个节点执行后保存状态,崩溃后可从最后成功步骤继续运行。日志中会明确区分 Resuming from step NStarting fresh,成功后 checkpoint 自动清理。每个 ticker 对应一个独立的 SQLite 库:

~/.tradingagents/cache/checkpoints/.db

基路径可用 TRADINGAGENTS_CACHE_DIR 修改。

可复现性的三类来源与两处加固

LLM 两次运行结果不同是预期行为,框架对此有明确分类:

  1. 采样不确定:固定 temperature 也不保证字节级一致,推理模型(reasoning models)波动最大。
  2. 数据在动:新闻、StockTwits、Reddit 内容随时间变化。pin 历史日期只固定了价格指标窗口,社交与新闻数据仍反映当下状态。
  3. 可控项:降低 temperature 有一定帮助,但主流推理模型基本无视 temperature 参数。需要更高可复现性时,应显式选择非推理模型(Custom model ID)。

针对前两类来源,框架做了两处确定性加固:

  • 公司身份解析:运行前从 ticker 确定性解析公司实体,避免两次运行解析出不同公司。
  • 价格指标 grounding:市场分析师将价格指标绑定到经过校验的数据快照,堵住模型编造价格的可能。

回测结果不与任何收益数字承诺一致性。

相关项目

Tauric Research 另有一个强化学习金融推理项目 Trading-R1,技术报告见 arXiv:2509.11420,Terminal 版待发布。TradingAgents 论文见 arXiv:2412.20138,仓库地址:github.com/TauricResearch/TradingAgents

推荐文章

程序员茄子在线接单