TradingAgents 多智能体交易研究框架
让专业化智能体协作完成市场研究、交易判断与风险审批。
README 清楚列出外部模型与市场数据提供商、所需密钥、远程端点、本地持久化路径、模拟交易以及检查点行为,数据流透明度充分。配置允许本地 Ollama 和按需 Bedrock 扩展,体现一定的最小权限意识;但默认安装仍包含大量网络与数据依赖,未展示细粒度权限控制。API 密钥通过环境变量或凭据链传入,测试使用占位值,未见明文窃取迹象;但没有密钥轮换、日志脱敏或秘密存储指导。CLI 提供选择步骤,投资组合经理也会批准或拒绝模拟交易,但没有证据表明每次外部请求或持久化前都取得用户确认。外部效果包括多家 API 调用、持续追加决策日志和可选 SQLite 检查点,均有说明;检查点可清除且成功后自动删除,但追加日志没有撤销机制。依赖仅设下限、没有锁文件或漏洞扫描证据,因此依赖安全仅属初步处理。论文作者和引用信息明确,但发布者身份未经验证,维护主体的法律身份也未由材料确认。
README、包元数据、CI 和测试在 Python 版本、入口点、依赖及核心行为上高度一致;测试还针对超时、无效密钥分类、限流和历史数据前视偏差给出具体回归证据,因此自洽性充分。CI 覆盖 Python 3.10 至 3.13、完整安装导入和严格静态检查,支持普通环境可用性;但依赖没有上限或锁定,众多第三方 API 的持续可用性也无法由静态材料保证。测试表明 Alpha Vantage 配置错误与限流错误会被区分,README 也描述恢复日志,但未展示整个多提供商调用链的一致错误信息和降级策略。
材料明确面向金融研究,覆盖美国、国际交易所和加密资产,并说明 CLI、Python 包、Docker、本地模型、云模型与企业 Azure/Bedrock 场景,受众和使用情境处理充分。研究用途、非投资建议、非确定性、实时新闻漂移以及不能复现固定收益等边界均明确。用户可选择代码、日期、模型、研究深度和辩论轮数,调用入口精确;但内部代理何时选择工具、如何停止或拒绝不适合任务的触发规则没有完整展示。Python 3.10–3.13、环境变量、代理式兼容端点、远程 Ollama 和多地区提供商配置使环境适配较强。
README 的框架、角色、安装、CLI、包调用、持久化、恢复、可复现性、贡献和引用结构清晰,安装及 Docker 示例具体,包名、CLI 名和配置名在材料间稳定。示例覆盖常见启动和配置,但没有独立 FAQ 或系统化故障排除指南。限制说明尤其完整,明确研究定位、数据漂移、模型非确定性和回测不可保证。仓库提供完整 Apache-2.0 文本。版本 0.3.1 与新闻记录和包元数据一致,并引用 CHANGELOG;但 CHANGELOG 本身未提供,无法核验完整发布记录。贡献邀请、社区渠道和论文作者提供了更新路径,但没有明确维护者职责、安全报告渠道或支持承诺。
框架将基本面、情绪、新闻、技术分析、多空辩论、交易、风险和投资组合决策组合为一条有明显增量价值的研究流程。README 展示 CLI 进度、报告和最终决策的使用方式,Python API 也直接返回 decision;但没有提供稳定的输出模式、字段契约或完整示例结果,因此输出可用性未达全面水平。可配置研究深度和快速/深度模型有助于权衡资源,但材料没有令牌、延迟、API 调用次数或费用预算,无法充分判断成本收益。
若干重要声明可追溯到具体配置、CI 和回归测试,例如版本、Python 支持、安装入口、请求超时、错误分类及前视过滤;但许多更广泛的代理能力、数据验证和正确性声明只在 README 中陈述。README、pyproject、CI 与测试对安装和部分可靠性主张形成交叉佐证,不过未提供被引用的 CHANGELOG、实现文件或完整测试集,限制了全面核验。材料清楚区分已描述的机制、预期非确定性、实时数据变化和不应推断的固定投资回报,事实与推断边界处理充分。
- 这是未执行代码的静态审查;未验证交易决策质量、运行时安全性或第三方服务行为。
- 该工具会向多家外部模型和数据服务发送查询;使用真实数据前应核查各提供商的数据保留、隐私和地域合规条款。
- 决策日志默认持续写入本地文件且会在后续提示中复用;其中可能包含敏感研究信息,材料未说明加密、脱敏或自动清理。
- 依赖采用开放式最低版本且没有锁文件或软件成分清单,部署前应固定并扫描实际解析出的依赖。
- 输出仅适用于研究,不应直接驱动真实资金交易;README 明确不保证收益或可复现结果。
这个 Agent 能做什么,适合哪些场景?
TradingAgents 是一个基于 LangGraph 的多智能体金融交易研究框架,按真实交易机构的分工组织分析师、研究员、交易员、风险管理团队和投资组合经理。它读取公司基本面、价格与技术指标、新闻、宏观信息以及 StockTwits 和 Reddit 情绪数据,让看多与看空研究员辩论后形成交易建议。交易员汇总报告并决定交易时机与规模,风险团队评估波动性、流动性等因素,最后由投资组合经理批准或拒绝提案;获批订单进入模拟交易所执行。用户可以通过交互式 CLI 或 Python 中的 `TradingAgentsGraph.propagate()` 运行分析,也可以选择 Docker 部署。框架支持多家托管模型提供商、本地 Ollama 和任意 OpenAI 兼容端点,并提供决策日志及可选的 LangGraph 检查点恢复。它面向研究而非投资建议,输出受模型采样、实时数据、分析日期和数据质量影响,不能视为具有固定可复现收益的交易策略。
运行时,Fundamentals Analyst 检查公司财务与业绩指标,Sentiment Analyst 汇总新闻标题、StockTwits 和 Reddit 讨论,News Analyst 分析全球新闻与宏观指标,Technical Analyst 使用 MACD、RSI 等指标识别市场形态。Bullish Researcher 与 Bearish Researcher 对分析结果进行结构化辩论,Trader Agent 再将各方报告合成为包含交易方向、时机和规模的决策。风险管理团队评估波动性、流动性和其他风险,将评估交给 Portfolio Manager 作最终批准或拒绝;批准后由模拟交易所执行。Python 接口通过 TradingAgentsGraph 初始化图,并以 propagate("NVDA", "2026-01-15") 返回决策;CLI 的 tradingagents 或 python -m cli.main 允许选择代码、分析日期、模型提供商和研究深度。每次完成的决策会追加到 ~/.tradingagents/memory/trading_memory.md,后续同一标的分析会加入已实现的原始收益、相对 SPY 的 alpha 和历史反思;启用 --checkpoint 后,节点状态保存到逐标的 SQLite 数据库,以便中断后续跑。
- 量化或金融研究人员希望比较多种语言模型在同一标的研究流程中的判断,可固定分析日期并调整深度模型、快速模型、温度和辩论轮数。
- 投资研究团队需要原型化“基本面、技术面、新闻和情绪分析—多空辩论—风险审批”的协作流程,可直接使用框架提供的角色与 LangGraph 执行图。
- Python 开发者希望把多智能体市场分析嵌入研究程序,可调用
TradingAgentsGraph.propagate()获取指定代码和日期的决策。 - 研究人员需要分析 Yahoo Finance 覆盖的非美国市场或加密资产,可使用
0700.HK、7203.T、600519.SS、BTC-USD等带交易所或资产格式的代码。 - 需要长时间运行或可能中断分析的用户,可启用检查点恢复,并利用持久决策日志将过往同标的结果和跨标的经验带入后续分析。
- 希望避免单一云模型供应商锁定的团队,可在 OpenAI、Anthropic、Google、xAI 等适配器、本地 Ollama、AWS Bedrock 或 OpenAI 兼容服务器之间配置运行环境。
这个 Agent 有哪些优点和局限?
- 角色划分具体且覆盖完整决策链:四类分析师、多空研究员、交易员、风险团队和投资组合经理各自承担明确任务。
- 模型与部署选择广,支持多家托管提供商、Azure OpenAI、AWS Bedrock、本地 Ollama,以及 vLLM、LM Studio、llama.cpp 等 OpenAI 兼容服务。
- 同时提供交互式 CLI、Python 包接口和 Docker 运行方式,既适合直接试验,也便于嵌入研究代码。
- 具备持续研究所需的状态机制:永久决策日志会加入已实现收益与反思,可选检查点能从最近完成的 LangGraph 节点恢复。
- 支持 Yahoo Finance 覆盖的国际市场和加密代码,并按市场自动解析公司身份及 alpha 基准。
- 这是研究框架而非投资建议或可直接验证收益的策略;回测结果不保证与任何已发布数字一致。
- 同一标的和日期的结果仍可能因模型采样而变化,推理模型通常忽略温度设置,难以获得逐字节一致的输出。
- 新闻、StockTwits 和 Reddit 等实时来源会随时间变化,即使固定历史分析日期,也无法完全冻结所有输入。
- 托管模型及部分数据源需要各自的 API 密钥、网络访问和可能产生费用;多提供商配置也增加凭据管理成本。
- 获批交易只发送到模拟交易所;来源没有证明其可直接连接真实券商或执行实盘订单。
如何安装或部署这个 Agent?
需要 Python 3.12。执行:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
conda create -n tradingagents python=3.12
conda activate tradingagents
pip install .然后为所选模型和数据服务设置密钥,例如 OpenAI 路径至少配置 OPENAI_API_KEY,并按所用数据源配置 ALPHA_VANTAGE_API_KEY;也可复制环境模板:cp .env.example .env,再填写所需密钥。Anthropic、Google、xAI、DeepSeek、Qwen、GLM、MiniMax 和 OpenRouter 分别使用 README 列出的对应环境变量。若使用 AWS Bedrock,执行 pip install ".[bedrock]",配置 AWS 凭据与 AWS_DEFAULT_REGION。容器方式可执行 cp .env.example .env 后运行 docker compose run --rm tradingagents;本地 Ollama 容器模式使用 docker compose --profile ollama run --rm tradingagents-ollama。
如何使用这个 Agent?
首次交互运行可执行 tradingagents,或在源码目录执行 python -m cli.main,然后选择标的代码、分析日期、LLM 提供商和研究深度。
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")
print(decision)可在配置副本中设置 llm_provider、deep_think_llm、quick_think_llm、max_debate_rounds 和 temperature。本地 Ollama 使用 llm_provider: "ollama",默认端点为 http://localhost:11434/v1;其他 vLLM、LM Studio、llama.cpp 或自定义中继使用 llm_provider: "openai_compatible" 并设置 backend_url 或 TRADINGAGENTS_LLM_BACKEND_URL。若要在中断后续跑,使用 tradingagents analyze --checkpoint;若要在运行前清空所有检查点,使用 tradingagents analyze --clear-checkpoints。
常见问题
它会直接用真实资金下单吗?
必须使用 OpenAI 模型吗?
运行成本由什么决定?
中断后需要从头开始吗?
--checkpoint 或设置 checkpoint_enabled 后,LangGraph 会逐节点保存状态,并从最后成功步骤继续。成功完成后检查点会自动清除。