支持Claude Sonnet 5/Fable 5的多Agent LLM交易框架,新增Alpha Vantage前瞻过滤、graph-router崩溃保护、加密情绪源支持,并修复了多个稳定性问题。

[2026-07] TradingAgents v0.3.1 发布,修复了正确性和稳定性问题:Alpha Vantage 先行过滤、graph-router 崩溃安全、graph-shape 感知断点续传、加密货币情绪数据源可用了、可配置 LLM 重试预算、Bedrock API-key 认证,以及 Claude Sonnet 5 / Fable 5 支持。完整列表见 CHANGELOG.md。
[2026-06] TradingAgents v0.3.0 发布,带经验证的数据访问契约、扩展的 provider 注册表(NVIDIA、Kimi、Groq、Mistral、Bedrock 及任意 OpenAI 兼容端点)、FRED 和 Polymarket 数据供应商、当代模型目录,以及 CI 门控。
[2026-05] TradingAgents v0.2.5 发布,包含基于 grounding 的 Sentiment Analyst、GPT-5.5 等模型覆盖、Qwen/GLM/MiniMax 双区域支持、TRADINGAGENTS_* 环境变量可配置性及 API-key 自动检测、远程 Ollama 支持、美国以外 alpha 基准测试,以及 ticker 路径遍历加固。
[2026-04] TradingAgents v0.2.4 发布,包含结构化输出 agents(Research Manager、Trader、Portfolio Manager)、LangGraph 断点续传、持久化决策日志、DeepSeek/Qwen/GLM/Azure provider 支持、Docker,以及 Windows UTF-8 编码修复。
[2026-03] TradingAgents v0.2.3 发布,支持多语言、GPT-5.4 系列模型、统一模型目录、回测日期保真度,以及代理支持。
[2026-03] TradingAgents v0.2.2 发布,支持 GPT-5.4/Gemini 3.1/Claude 4.6 模型、五档评级量表、OpenAI Responses API、Anthropic effort 控制,以及跨平台稳定性。
[2026-02] TradingAgents v0.2.0 发布,支持多 provider LLM(GPT-5.x、Gemini 3.x、Claude 4.x、Grok 4.x)和改进的系统架构。
[2026-01] Trading-R1 技术报告发布,Terminal 预计即将上线。
🚀 TradingAgents | ⚡ 安装与 CLI | 🎬 Demo | 📦 包使用 | 🤝 贡献 | 📄 引用
🎉 TradingAgents 正式发布!我们收到了大量关于这项工作的咨询,非常感谢社区的热情。
因此我们决定将框架完全开源。期待与你们一起构建有影响力的项目!
TradingAgents 框架
TradingAgents 是一个多 agent 交易框架,真实反映现实世界交易公司的运作动态。通过部署专业化的 LLM 驱动 agents:从基本面分析师、情绪专家、技术分析师,到交易员、风险管理团队,平台协同评估市场状况并为交易决策提供信息。此外,这些 agents 还会进行动态讨论以确定最优策略。

TradingAgents 框架专为研究目的设计。交易表现可能因多种因素而异,包括所选择的基础语言模型、模型温度、交易周期、数据质量及其他非确定性因素。本框架不构成金融、投资或交易建议。
我们的框架将复杂交易任务分解为专业化角色。
基本面分析师:评估公司财务和绩效指标,识别内在价值和潜在风险点。
情绪分析师:将新闻标题、StockTwits 和 Reddit 讨论聚合为单一情绪读数,以衡量短期市场情绪。
新闻分析师:监控全球新闻和宏观经济指标,解读事件对市场状况的影响。
技术分析师:利用技术指标(如 MACD 和 RSI)来识别交易模式并预测价格走势。

由多头和空头研究者组成,他们批判性评估分析师团队提供的洞察。通过结构化辩论,他们平衡潜在收益与固有风险。

汇总分析师和研究者的报告以做出知情的交易决策,确定交易的时机和规模。

风险管理及投资组合经理
持续评估投资组合风险,通过评估市场波动性、流动性及其他风险因素。风险管理团队评估并调整交易策略,向投资组合经理提供评估报告以供最终决策。
投资组合经理批准/否决交易提案。若获批准,订单将发送至模拟交易所执行。

git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
在你喜欢的任意环境管理器中创建虚拟环境:
conda create -n tradingagents python=3.12
conda activate tradingagents
安装包及其依赖:
pip install .
或者,使用 Docker 运行:
cp .env.example .env # add your API keys
docker compose run --rm tradingagents
对于使用 Ollama 的本地模型:
docker compose --profile ollama run --rm tradingagents-ollama
TradingAgents 支持多种 LLM provider。为你所选的 provider 设置 API key:
export OPENAI_API_KEY=... # OpenAI (GPT)
export GOOGLE_API_KEY=... # Google (Gemini)
export ANTHROPIC_API_KEY=... # Anthropic (Claude)
export XAI_API_KEY=... # xAI (Grok)
export DEEPSEEK_API_KEY=... # DeepSeek
export DASHSCOPE_API_KEY=... # Qwen — International (dashscope-intl.aliyuncs.com)
export DASHSCOPE_CN_API_KEY=... # Qwen — China (dashscope.aliyuncs.com)
export ZHIPU_API_KEY=... # GLM via Z.AI (international)
export ZHIPU_CN_API_KEY=... # GLM via BigModel (China, open.bigmodel.cn)
export MINIMAX_API_KEY=... # MiniMax — Global (api.minimax.io)
export MINIMAX_CN_API_KEY=... # MiniMax — China (api.minimaxi.com)
export OPENROUTER_API_KEY=... # OpenRouter
export ALPHA_VANTAGE_API_KEY=... # Alpha Vantage
对于 Azure OpenAI,将 .env.enterprise.example 复制为 .env.enterprise 并填入你的凭证。
对于 AWS Bedrock,用 pip install ".[bedrock]" 安装额外依赖,设置 llm_provider: "bedrock",配置 AWS 凭证(环境变量、~/.aws/credentials 或 IAM 角色)和 AWS_DEFAULT_REGION,并使用 Bedrock 模型 ID,例如 us.anthropic.claude-opus-4-8-v1:0。
对于本地模型,用 llm_provider: "ollama" 配置。默认端点是 http://localhost:11434/v1;设置 OLLAMA_BASE_URL 指向远程 ollama-serve。用 ollama pull <name> 拉取模型,并为默认列表中未列出的任何模型在 CLI 中选择"Custom model ID"。
对于任何其他 OpenAI 兼容服务器(vLLM、LM Studio、llama.cpp 或自定义 relay),使用 llm_provider: "openai_compatible" 并通过 backend_url(或 TRADINGAGENTS_LLM_BACKEND_URL)设置端点,例如 vLLM 用 http://localhost:8000/v1,LM Studio 用 http://localhost:1234/v1。模型是你服务器所提供的任何模型。本地服务器不需要 key;若端点需要 key,通过 OPENAI_COMPATIBLE_API_KEY 设置。
或者,将 .env.example 复制为 .env 并填入你的 key:
cp .env.example .env
启动交互式 CLI:
tradingagents # installed command
python -m cli.main # alternative: run directly from source
你将看到一个界面,可以选择想要的 ticker、分析日期、LLM provider、研究深度等。
TradingAgents 支持 Yahoo Finance 覆盖的任何市场,使用交易所后缀的 ticker。公司身份和 alpha 基准会按市场自动解析。
香港:0700.HK · 东京:7203.T · 伦敦:AZN.L
印度:RELIANCE.NS,.BO · 加拿大:.TO · 澳大利亚:.AX
中国 A 股:上海 .SS,深圳 .SZ(例如贵州茅台为 600519.SS)
加密货币:BTC-USD,ETH-USD

会出现一个界面,在结果加载时显示,让你跟踪 agent 的运行进度。


TradingAgents 包
实现细节
我们使用 LangGraph 构建 TradingAgents 以确保灵活性和模块化。该框架支持多种 LLM provider:OpenAI、Google、Anthropic、xAI、DeepSeek、Qwen(阿里巴巴 DashScope,国际和中国端点)、GLM(智谱)、MiniMax(全球+中国)、OpenRouter、用于本地模型的 Ollama,以及企业级 Azure OpenAI。
要在代码中使用 TradingAgents,可以导入 tradingagents 模块并初始化一个 TradingAgentsGraph() 对象。.propagate() 函数将返回一个决策。你可以运行 main.py,这里还有一个快速示例:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
# forward propagate
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
你也可以调整默认配置来设置你自己的 LLM 选择、辩论轮次等。
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai" # e.g. openai, google, anthropic, deepseek, groq, ollama; openai_compatible covers any OpenAI-compatible endpoint (vLLM, LM Studio, llama.cpp, ...)
config["deep_think_llm"] = "gpt-5.5" # Model for complex reasoning
config["quick_think_llm"] = "gpt-5.4-mini" # Model for quick tasks
config["max_debate_rounds"] = 2
ta = TradingAgentsGraph(debug=True, config=config)
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
所有配置选项见 tradingagents/default_config.py。
持久化与恢复
TradingAgents 在多次运行间持久化两种状态。
决策日志始终开启。每次完整运行后将其决策追加到 ~/.tradingagents/memory/trading_memory.md。下一次对同一 ticker 的运行时,TradingAgents 获取已实现收益(原始值和相较 SPY 的 alpha),生成一段反思文字,并将最近同 ticker 决策和近期跨 ticker 经验注入 Portfolio Manager prompt,使每次分析都能传承有效的经验、汲取失败的教训。
用 TRADINGAGENTS_MEMORY_LOG_PATH 覆盖路径。
断点续传通过 --checkpoint 可选开启。开启后,LangGraph 在每个节点后保存状态,以便崩溃或中断的运行从最后一个成功步骤恢复,而不是从头开始。在恢复运行时,你会在日志中看到 Resuming from step N for <TICKER> on <date>;在新运行时,会看到 Starting fresh。成功完成后断点自动清除。
每个 ticker 的 SQLite 数据库位于 ~/.tradingagents/cache/checkpoints/<TICKER>.db(用 TRADINGAGENTS_CACHE_DIR 覆盖基础路径)。用 --clear-checkpoints 重置所有断点再运行。
tradingagents analyze --checkpoint # enable for this run
tradingagents analyze --clear-checkpoints # reset before running
config = DEFAULT_CONFIG.copy()
config["checkpoint_enabled"] = True
ta = TradingAgentsGraph(config=config)
_, decision = ta.propagate("NVDA", "2026-01-15")
TradingAgents 是 LLM 驱动的,因此同一 ticker 和日期的两次运行可能不同。对于建立在语言模型上的研究工具来说,这是预期行为而非缺陷。差异来自几个不同的来源,加以区分会有所帮助。
语言模型采样是非确定性的。即使在固定温度下,provider 也不保证跨调用完全一致的字节级输出,而推理模型(默认的 GPT-5.x 系列,以及任何 thinking-mode 模型)变化最大,因为它们的内部推理本身也是采样的。
实时数据在变动。新闻、StockTwits 和 Reddit 返回的内容随时间推移而变化,因此今天的运行与上周相同历史交易日期的运行看到的是不同输入。固定分析日期可以保持价格和技术指标窗口不变,但社交和新闻来源仍然反映"当下"。
要减少差异,可以降低采样温度。在配置中设置 temperature(或在 .env 中设置 TRADINGAGENTS_TEMPERATURE);较低的值会使遵循该设置的模型更可重复。当前的精选模型以推理为首先,因此大多忽略温度;要更严格的复现性,请通过 Custom model ID 选项显式设置非推理模型。
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai"
config["temperature"] = 0.0
# Reasoning models ignore temperature. For tighter reproducibility, set a
# non-reasoning deep/quick model explicitly (e.g. via the Custom model ID option).
不再有差异的部分:被分析公司的身份在任何 agent 运行前从 ticker 确定性地解析,市场分析师将精确的价格和技术指标声明锚定在经验证的数据快照上。之前报道的跨运行"不同公司"或编造价格水平的问题已通过这两个机制解决。
回测结果不保证与任何已发布数字匹配。收益取决于模型、温度、日期范围、数据质量以及上述采样因素。将框架视为研究多 agent 分析的脚手架,而非具有固定、可复现收益的策略。
欢迎贡献:bug 修复、文档和功能想法;过去的贡献在 CHANGELOG.md 中按发布版本进行致谢。
如果你发现 TradingAgents 对你有所帮助,请引用我们的工作 :)
@misc{xiao2025tradingagentsmultiagentsllmfinancial,
title={TradingAgents: Multi-Agents LLM Financial Trading Framework},
author={Yijia Xiao and Edward Sun and Di Luo and Wei Wang},
year={2025},
eprint={2412.20138},
archivePrefix={arXiv},
primaryClass={q-fin.TR},
url={https://arxiv.org/abs/2412.20138},
}