TradingAgents
多智能体金融交易框架,通过模拟真实交易团队的分工(基本面分析师、情绪分析师、技术分析师、交易员、风控等),利用LLM驱动各角色协作决策。亮点在于将复杂交易任务拆解为专业化agent角色,支持多种LLM提供商和灵活性配置,并具备记忆与检查点恢复功能。研究向,非投资建议。
README
TradingAgents: 多智能体大语言模型金融交易框架
新闻
- [2026-04] TradingAgents v0.2.4 发布,支持结构化输出智能体(研究经理、交易员、投资组合经理)、LangGraph 检查点恢复、持久化决策日志、DeepSeek/Qwen/GLM/Azure 提供方、Docker 以及 Windows UTF-8 编码修复。完整列表见 CHANGELOG.md。
- [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 努力控制以及跨平台稳定性。
- [2026-02] TradingAgents v0.2.0 发布,支持多提供商 LLM(GPT-5.x、Gemini 3.x、Claude 4.x、Grok 4.x)并改进系统架构。
- [2026-01] Trading-R1 技术报告 发布,Terminal 预计很快上线。
🎉 TradingAgents 正式发布!我们收到了大量关于本项目的咨询,感谢社区的满腔热情。
因此我们决定完全开源该框架。期待与您一起打造有影响力的项目!
🚀 TradingAgents | ⚡ 安装与命令行 | 🎬 Demo | 📦 包使用 | 🤝 贡献 | 📄 引用
TradingAgents 框架
TradingAgents 是一个多智能体交易框架,模拟真实交易公司的运作模式。通过部署专门的 LLM 驱动智能体:包括基本面分析师、情绪分析师、技术分析师、交易员及风险管理团队,平台协同评估市场状况并做出交易决策。此外,这些智能体通过动态讨论来精准定位最优策略。
TradingAgents 框架仅用于研究目的。交易表现可能因多种因素而异,包括所选的基础语言模型、模型温度、交易时段、数据质量以及其他非确定性因素。它并不构成财务、投资或交易建议。
我们的框架将复杂的交易任务分解为专门的角色,确保系统以稳健、可扩展的方式进行市场分析和决策。
分析师团队
- 基本面分析师:评估公司财务状况和绩效指标,识别内在价值与潜在风险信号。
- 情绪分析师:利用情绪评分算法分析社交媒体和公众情绪,衡量短期市场情绪。
- 新闻分析师:监控全球新闻和宏观经济指标,解读事件对市场状况的影响。
- 技术分析师:利用技术指标(如 MACD 和 RSI)检测交易模式并预测价格走势。
研究团队
- 由看涨和看空研究员组成,他们对分析师团队的见解进行批判性评估。通过结构化辩论,平衡潜在收益与固有风险。
交易员智能体
- 综合分析师和研究员的报告,做出知情的交易决策。它基于全面的市场洞察确定交易时机和规模。
风险管理与投资组合经理
- 通过评估市场波动性、流动性及其他风险因素,持续评估投资组合风险。风险管理团队评估并调整交易策略,向投资组合经理提供评估报告供最终决策。
- 投资组合经理批准/拒绝交易提案。若批准,订单将发送至模拟交易所并执行。
安装与命令行
安装
克隆 TradingAgents:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
在任一喜欢的环境管理器中创建虚拟环境:
conda create -n tradingagents python=3.13
conda activate tradingagents
安装包及其依赖:
pip install .
Docker
或者使用 Docker 运行:
cp .env.example .env # 添加你的 API 密钥
docker compose run --rm tradingagents
配合 Ollama 使用本地模型:
docker compose --profile ollama run --rm tradingagents-ollama
必需的 API
TradingAgents 支持多个 LLM 提供商。设置你所选提供商的 API 密钥:
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(阿里云 DashScope)
export ZHIPU_API_KEY=... # GLM(智谱)
export OPENROUTER_API_KEY=... # OpenRouter
export ALPHA_VANTAGE_API_KEY=... # Alpha Vantage
对于企业提供商(如 Azure OpenAI、AWS Bedrock),将 .env.enterprise.example 复制为 .env.enterprise 并填写凭据。
对于本地模型,在配置中设置 llm_provider: "ollama" 并配置 Ollama。
或者,将 .env.example 复制为 .env 并填写密钥:
cp .env.example .env
命令行使用
启动交互式 CLI:
tradingagents # 安装的命令
python -m cli.main # 替代方式:直接从源码运行
你将看到一个屏幕,可以在其中选择所需的股票代码、分析日期、LLM 提供商、研究深度等。
将出现一个界面,在加载结果时显示进度,让你跟踪智能体的运行进展。
TradingAgents 包
实现细节
我们使用 LangGraph 构建了 TradingAgents,以确保灵活性和模块化。框架支持多个 LLM 提供商:OpenAI、Google、Anthropic、xAI、DeepSeek、Qwen(阿里云 DashScope)、GLM(智谱)、OpenRouter、Ollama(本地模型)以及 Azure OpenAI(企业级)。
Python 使用
若要在代码中使用 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())
# 前向传播
_, 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" # openai, google, anthropic, xai, deepseek, qwen, glm, openrouter, ollama, azure
config["deep_think_llm"] = "gpt-5.4" # 用于复杂推理的模型
config["quick_think_llm"] = "gpt-5.4-mini" # 用于快速任务的模型
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。在下次运行相同股票代码时,TradingAgents 获取已实现收益(原始收益和相对于 SPY 的 alpha 收益),生成一段反思文字,并将最近的同股票代码决策和跨股票代码的经验教训注入到投资组合经理提示中,使每次分析都能继承之前的经验。
可通过 TRADINGAGENTS_MEMORY_LOG_PATH 覆盖路径。
检查点恢复
检查点恢复通过 --checkpoint 可选启用。启用后,LangGraph 在每个节点后保存状态,以便崩溃或中断的运行能够从最后成功的步骤恢复,而不是重新开始。在恢复运行时,你会在日志中看到 Resuming from step N for <TICKER> on <date>;在新运行时看到 Starting fresh。成功完成后检查点会自动清除。
每个股票代码的 SQLite 数据库位于 ~/.tradingagents/cache/checkpoints/<TICKER>.db(可通过 TRADINGAGENTS_CACHE_DIR 覆盖基础路径)。在运行前使用 --clear-checkpoints 重置所有检查点。
tradingagents analyze --checkpoint # 启用此次运行的检查点
tradingagents analyze --clear-checkpoints # 在运行前重置
config = DEFAULT_CONFIG.copy()
config["checkpoint_enabled"] = True
ta = TradingAgentsGraph(config=config)
_, decision = ta.propagate("NVDA", "2026-01-15")
贡献
我们欢迎社区贡献!无论是修复 bug、改进文档还是提出新功能,您的参与都有助于本项目变得更好。如果您对此研究方向感兴趣,请考虑加入我们的开源金融 AI 研究社区 Tauric Research。
以往的贡献(包括代码、设计反馈和 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},
}