项目快照:TauricResearch/TradingAgents,约 98,464 个 Star,18,985 个 Fork;最新推送时间 2026-07-18T15:55:05Z。本文基于仓库公开资料撰写。
项目地址:https://github.com/TauricResearch/TradingAgents · https://arxiv.org/pdf/2412.20138

项目速览(TL;DR)
TradingAgents 是一个使用大语言模型(Large Language Model,LLM)驱动多智能体协作的金融交易研究框架。项目用 Python 编写,默认分支为 main,采用 Apache-2.0 许可证;GitHub 仓库资料显示,该项目有 98464 个 Star 和 18985 个 Fork。
它把交易研究拆分为基本面、情绪、新闻、技术分析、看多研究、看空研究、交易决策、风险管理和投资组合管理等角色,再通过研究讨论和审批流程形成模拟交易决策。README 明确指出,框架面向研究用途,不构成金融、投资或交易建议。
- 项目类型:多智能体大语言模型金融交易框架。
- 主要语言:Python。
- 当前资料中的包版本:
0.3.1,来自pyproject.toml。 - Python 要求:
>=3.10;README 的安装示例使用 Python 3.12。 - 许可证:Apache License 2.0。
- 仓库地址:
https://github.com/TauricResearch/TradingAgents。
定位与目标用户
TradingAgents 的定位不是券商交易终端,也不是承诺收益的自动投资产品,而是把金融分析流程组织成可协作的智能体图。读者可以用它研究不同模型、分析角色、数据质量和交易周期对模拟决策的影响。
它面向需要把金融分析流程拆分、编排和复现的 Python 研究人员、量化研究团队以及希望评估多智能体工作流的工程师。项目资料没有提供生产交易牌照、实盘经纪商接口、收益率基准、延迟指标或服务等级承诺,因此不能据此把它当作实盘系统。
可验证的目标边界
- 研究多角色协作如何汇总市场信息。
- 比较不同 LLM 提供商、模型和参数对输出的影响。
- 在模拟交易所中执行经过投资组合经理批准的订单流程。
- 通过回测和持久化状态支持研究过程管理;具体回测指标和结果格式以仓库实现及最新 README 为准。
核心功能
核心能力集中在“分析—辩论—决策—风控—模拟执行”链路,而不是单个提示词调用。每类智能体承担不同输入和输出职责,最终由投资组合经理对交易提案作出批准或拒绝。
分析师团队
基本面分析师读取公司财务和业绩指标,用于识别内在价值与风险信号;技术分析师使用 MACD、RSI 等技术指标检测交易模式并预测价格走势。情绪分析师聚合新闻标题、StockTwits 和 Reddit 讨论,形成短期市场情绪判断;新闻分析师关注全球新闻和宏观经济指标,并解释事件对市场环境的影响。
这些角色的触发条件、输入数据来源和分析结果由框架的数据访问与智能体流程共同决定。资料没有给出每个智能体的完整函数签名、提示词模板、返回字段或单次调用成本,因此这些细节应以仓库当前源码为准。
研究员团队与结构化讨论
研究员团队由看多研究员和看空研究员组成。它们接收分析师团队的判断,从潜在收益和固有风险两个方向进行结构化辩论,输出供交易员使用的研究结论。
README 的环境变量示例包含 TRADINGAGENTS_MAX_DEBATE_ROUNDS,用于配置最大辩论轮数,示例值为 1。辩论轮数会影响流程调用次数和上下文内容,但项目资料没有提供与该参数对应的性能数据或效果基准。
交易员与组合决策
交易员负责组合分析师报告和研究员报告,并据此决定交易方向、时机和交易规模。其输出不是直接发往真实市场的订单;在 README 描述的流程中,交易提案还要经过风险管理团队和投资组合经理处理。
投资组合经理负责批准或拒绝交易提案。只有在批准后,订单才会发送到模拟交易所并执行,这一设计把“产生建议”和“批准执行”分成了不同步骤。
风险管理
风险管理团队持续评估市场波动性、流动性和其他风险因素,并向投资组合经理提供评估报告。该报告用于调整交易策略或拒绝风险不符合要求的提案。
资料未给出风险阈值、仓位限制、止损规则、流动性计算公式或组合约束配置。部署前不能把“风险管理”理解为已经覆盖特定监管制度或完整实盘风控要求。
系统架构与关键模块
从 README 和项目配置可以确认,TradingAgents 采用基于 LangGraph 的工作流编排,并将 LLM 接入、数据访问、检查点和命令行入口组合成可运行的 Python 包。架构图文件存在于仓库的 assets 目录,但本文不嵌入外部图片。
逻辑处理链
- 准备股票或市场研究所需的数据。
- 由多个分析师角色分别生成基本面、情绪、新闻和技术分析。
- 将分析报告交给看多与看空研究员进行讨论。
- 交易员汇总研究结论,形成交易提案。
- 风险管理团队评估波动性、流动性等风险。
- 投资组合经理批准或拒绝提案。
- 经批准的订单进入模拟交易所执行。
关键依赖的职责
| 模块或依赖 | 资料中可确认的用途 | 配置或边界 |
|---|---|---|
| LangGraph | 支持多智能体图式流程编排 | langgraph>=0.4.8 |
| LangChain Core | 提供 LLM 应用的核心抽象 | langchain-core>=0.3.81 |
| Backtrader | 项目依赖中的回测相关组件 | backtrader>=1.9.78.123 |
| pandas | 表格数据处理依赖 | pandas>=2.3.0 |
| yfinance | 项目依赖中的金融数据获取组件 | yfinance>=1.4.1 |
| LangGraph Checkpoint SQLite | 为图流程提供 SQLite 检查点能力 | langgraph-checkpoint-sqlite>=2.0.0 |
| Redis | 项目依赖中的状态或基础设施组件 | redis>=6.2.0 |
依赖与运行环境
项目要求 Python 版本不低于 3.10,README 给出的 Conda 示例使用 Python 3.12。依赖由 pyproject.toml 管理,安装项目时会安装运行所需依赖;开发依赖通过 dev 可选组提供。
运行时需要为所选 LLM 提供商配置对应 API 密钥,数据提供商也可能要求额外密钥。资料列出了多家提供商环境变量,但没有在给定 README 片段中完整展示选择提供商后的交互流程和全部数据源要求。
安装依赖组
- 基础安装:执行
pip install .。 - 开发依赖:项目定义了
dev可选组,包含 Ruff、pytest 和 pytest-subtests。 - Amazon Bedrock:项目定义了
bedrock可选组,安装命令为pip install "tradingagents[bedrock]"。
快速开始
快速开始的最小闭环是:克隆仓库、创建 Python 3.12 虚拟环境、安装项目、配置一个 LLM 提供商,然后启动命令行入口。下面的命令仅针对本地或测试环境,不连接真实交易账户。
安装
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
conda create -n tradingagents python=3.12
conda activate tradingagents
pip install .配置测试用 API 密钥
export OPENAI_API_KEY=<你的-API-KEY>
export TRADINGAGENTS_LLM_PROVIDER=openai
tradingagents<你的-API-KEY> 是占位符,不应替换为文章中的真实密钥。该命令会启动项目定义的 tradingagents 命令行入口;项目资料未给出非交互式参数、默认股票代码或完整交互菜单,因此实际提示内容应以当前版本 CLI 为准。
安装验证
python -c "import tradingagents; print('tradingagents import ok')"上述验证只检查 Python 包是否能够导入,不代表 API 密钥有效、数据源可访问或研究流程已经成功完成。若要验证完整流程,应在授权的测试环境中运行 CLI,并检查程序输出及仓库生成的结果;资料未提供固定结果目录和输出文件格式。
配置说明
配置主要通过环境变量完成,项目提供了 .env.example 作为字段清单。以下表格只列出资料中明确出现的字段;“默认值”一栏在无法确认项目内部默认值时标记为未提供,示例值不等同于运行时最终值。
| 字段名 | 类型 | 默认值 | 作用 |
|---|---|---|---|
TRADINGAGENTS_LLM_PROVIDER |
字符串 | openai(示例值) |
选择 LLM 提供商;设置后可跳过 CLI 中对应的交互选择。 |
TRADINGAGENTS_DEEP_THINK_LLM |
字符串 | gpt-5.4(示例值) |
配置深度思考模型。 |
TRADINGAGENTS_QUICK_THINK_LLM |
字符串 | gpt-5.4-mini(示例值) |
配置快速思考模型。 |
TRADINGAGENTS_OUTPUT_LANGUAGE |
字符串 | English(示例值) |
配置输出语言。 |
TRADINGAGENTS_MAX_DEBATE_ROUNDS |
整数 | 1(示例值) |
配置研究员辩论的最大轮数。 |
TRADINGAGENTS_MAX_RISK_ROUNDS |
整数 | 1(示例值) |
配置风险评估的最大轮数。 |
TRADINGAGENTS_CHECKPOINT_ENABLED |
布尔值 | false(示例值) |
控制检查点功能是否启用。 |
TRADINGAGENTS_TEMPERATURE |
浮点数 | 0.0(示例值) |
配置采样温度;注释说明并非所有模型都遵循该参数,且不能保证完全确定性。 |
TRADINGAGENTS_LLM_MAX_RETRIES |
整数 | 6(示例值) |
向各提供商 SDK 传递 LLM 重试预算。 |
OLLAMA_BASE_URL |
字符串 URL | http://localhost:11434/v1 |
配置本地或远程 Ollama 服务地址。 |
AWS_DEFAULT_REGION |
字符串 | us-west-2(示例值) |
配置 Amazon Bedrock 区域。 |
LLM 密钥字段包括 OPENAI_API_KEY、GOOGLE_API_KEY、ANTHROPIC_API_KEY、XAI_API_KEY、DEEPSEEK_API_KEY、DASHSCOPE_API_KEY、ZHIPU_API_KEY、MINIMAX_API_KEY、OPENROUTER_API_KEY、MISTRAL_API_KEY、MOONSHOT_API_KEY、GROQ_API_KEY 和 NVIDIA_API_KEY 等。未列出的具体提供商认证流程,官方仓库未提供该信息,建议以最新 README 为准。
多提供商与本地模型
项目依赖和环境变量表明,TradingAgents 可以对接多个 LLM 提供商,并支持 OpenAI 兼容端点和 Ollama。选择不同提供商时,必须按照对应环境变量配置认证信息或服务地址,不能把某一家提供商的密钥名称套用于另一家。
OpenAI 兼容端点
.env.example 提供了 OPENAI_COMPATIBLE_API_KEY 和 TRADINGAGENTS_LLM_BACKEND_URL 字段,并说明可用于 vLLM、LM Studio、llama.cpp 或其他 OpenAI 兼容服务。项目资料没有给出这些服务的启动命令、模型名称约束或完整 URL 示例,因此这里只能确认配置方向,不能补写服务端参数。
Ollama 与 Docker Compose
cp .env.example .env
docker compose --profile ollama run --rm tradingagents-ollamaCompose 文件定义了 ollama 服务、tradingagents-ollama 服务和 ollama profile。项目通过 OLLAMA_BASE_URL=http://ollama:11434/v1 让容器内的 TradingAgents 访问 Ollama;端口号来自仓库 Compose 配置,不表示该服务已对宿主机发布端口。
Docker 部署与运行隔离
Dockerfile 使用 Python 3.12 slim 构建两个阶段的镜像,并在运行阶段以非 root 用户 appuser 启动命令。Docker Compose 为应用和 Ollama 分别配置持久化卷,适合把依赖安装和本地运行环境隔离开。
FROM python:3.12-slim AS builder
RUN python -m venv /opt/venv
WORKDIR /build
COPY . .
RUN pip install --no-cache-dir .
FROM python:3.12-slim
COPY --from=builder /opt/venv /opt/venv
ENTRYPOINT ["tradingagents"]这是根据仓库 Dockerfile 截取的结构示例。运行容器前需要准备 .env,其中包含所选 LLM 提供商密钥;密钥不应写入镜像、源码或公开日志。
cp .env.example .env
docker compose run --rm tradingagents进阶用法
进阶使用的重点是控制模型、数据源、辩论轮数、风控轮数和检查点,而不是简单增加智能体数量。任何参数调整都应在固定数据区间和测试配置下记录,否则难以判断结果变化来自模型、数据还是流程设置。
检查点与持久化
依赖中包含 langgraph-checkpoint-sqlite,环境变量示例还提供 TRADINGAGENTS_CHECKPOINT_ENABLED。资料只能确认项目存在检查点配置入口,未提供数据库文件位置、恢复命令、状态兼容策略或并发访问约束,具体使用方式应查阅当前源码和 README。
模型与输出语言
可以通过 TRADINGAGENTS_DEEP_THINK_LLM、TRADINGAGENTS_QUICK_THINK_LLM 和 TRADINGAGENTS_OUTPUT_LANGUAGE 调整模型与输出语言。项目资料未提供模型能力排名、成本、上下文窗口或各模型兼容性表,因此不应据此推导性能优劣。
回测研究
pyproject.toml 声明了 Backtrader 依赖,README 的新闻记录提到回测日期准确性改进。资料没有给出回测入口命令、数据格式、交易成本、滑点、基准和结果字段;需要这些信息时,官方仓库未提供该信息,建议以最新 README 和源码为准。
可观测性与运维
项目提供命令行入口、Rich、tqdm、Redis 和 SQLite 检查点相关依赖,说明运行过程具备命令行交互和状态处理组件。资料没有给出日志级别、结构化日志格式、指标端点、追踪系统、告警规则或 SLA,因此不能将这些依赖等同于完整的生产可观测性方案。
运行记录建议
- 记录代码版本、Python 版本、所选模型、输出语言和关键环境变量,但不要记录 API 密钥。
- 记录研究区间、数据源、辩论轮数和风险轮数,以便复核流程输入。
- 将模型原始输出、最终交易提案和模拟执行结果分离保存,并限制敏感数据访问权限。
- 在启用检查点前确认本地持久化目录的权限和备份策略。
以上记录策略属于根据本文作者的经验判断,并非仓库声明的内置运维功能。
安全与合规边界
该项目涉及金融数据分析和交易决策模拟,安全边界应设在授权的研究数据、测试账户和模拟交易环境内。README 已明确声明项目不是金融、投资或交易建议,实际使用仍需遵守所在地的金融监管、数据许可、隐私保护和组织审批要求。
密钥与数据保护
- 使用
.env保存本地测试配置时,应避免将其提交到版本控制系统。 - API 密钥只应通过环境变量或受控密钥管理方式提供,不能写入提示词、结果文件和日志。
- 新闻、论坛内容、公司财务数据和内部研究资料可能受授权、版权或隐私约束,数据使用范围应由数据提供方和组织政策确定。
- 不要把模拟订单流程改造成面向未授权市场账户的自动下单流程;资料没有提供真实经纪商接入,也没有授予此类权限。
项目资料未提供安全审计报告、漏洞响应承诺、隐私政策、金融牌照或合规认证。上述内容缺失时,不能据此宣称系统满足特定监管标准。
许可证与商用条款
仓库 LICENSE 文件是 Apache License 2.0。该许可证授予使用者在许可证条件下复制、修改、公开展示、公开执行、再许可和分发源代码或目标代码的版权许可,并包含贡献者专利许可条款。
分发时需要关注的事项
- 向其他接收者分发项目或衍生作品时,应同时提供许可证副本。
- 修改文件时,应保留清晰的修改说明。
- 分发源代码形式的衍生作品时,应保留原始版权、专利、商标和归属声明中适用的部分。
- Apache-2.0 不等于授予项目名称、商标或服务标志的使用许可;商标相关事项应以许可证原文为准。
- 许可证允许的商用范围、第三方数据服务条款、模型提供商条款和金融监管义务是不同层面的要求,需要分别核查。
是否能够在具体产品中商用,取决于 Apache-2.0 的履行、第三方依赖和数据服务许可,以及部署地的法律要求;不能仅依据仓库许可证替代法律审查。具体权利义务以仓库 LICENSE 为准。
局限性与已知限制
项目 README 已将研究用途、模型选择、温度、交易周期、数据质量和非确定性列为影响因素。因而,单次运行的交易判断不能被视为稳定的投资结论,跨配置比较也需要明确控制变量。
- 资料没有提供收益率、最大回撤、胜率、夏普比率或延迟等性能数据。
- 资料没有提供真实交易执行、经纪商认证或订单生命周期接口。
- 资料没有完整列出每个智能体的输入输出协议、提示词和错误处理策略。
- 资料没有给出数据源覆盖范围、数据许可、更新频率和缺失数据处理规则的完整说明。
- LLM 输出受模型、温度、数据、交易周期和非确定性影响;环境变量注释也明确指出,设置温度不能使输出完全确定。
- 项目新闻记录包含未来日期版本信息,但本文不据此推断当前运行环境或外部服务的实际可用性。
如果需要生产级风控、审计、权限、灾备、数据血缘或合规报告,官方仓库未提供该信息,建议以最新 README、源码和组织内部控制要求为准。
适合谁
以下信号表明团队可以把 TradingAgents 纳入研究或原型评估范围,但仍应保持模拟环境和人工审查边界。
- 团队已有 Python 开发能力,并能够维护 Conda、pip 或 Docker 运行环境。
- 研究任务需要把基本面、情绪、新闻、技术指标和风险判断拆成独立角色。
- 团队希望比较多个 LLM 提供商,或需要接入 OpenAI 兼容端点、Ollama 等模型服务。
- 已有授权的金融数据源,并能够对数据质量、时间范围和使用许可负责。
- 目标是回测、模拟交易、流程实验或多智能体研究,而不是未经审批的实盘自动下单。
不适合谁
以下信号说明该项目不应直接作为现成生产交易系统使用。判断依据来自仓库声明和资料中缺失的生产能力,不代表对项目源码之外功能的断言。
- 需要立即接入真实经纪商、真实账户或支付流程,并要求仓库提供正式订单执行保证的团队。
- 要求明确 SLA、审计报告、CVE 响应流程、监管认证或金融牌照的机构。
- 没有授权金融数据、新闻内容或论坛数据,却希望直接抓取并用于商业决策的团队。
- 需要高并发、低延迟、严格确定性和可证明风险上限,而没有能力自行补充基础设施与验证体系的团队。
- 只接受固定模型、固定输出协议和固定基准结果,不愿承担 LLM 非确定性与数据差异的项目。
常见问题与排查(FAQ / Troubleshooting)
排查时应先区分安装问题、认证问题、数据访问问题和模型输出问题。项目资料没有提供统一错误码,因此下面只给出基于已知配置和命令的检查路径。
为什么执行 tradingagents 后无法完成研究?
先确认项目已通过 pip install . 安装,并确认所选提供商的环境变量已经设置。若涉及数据供应商,还需要按其要求配置额外密钥;完整必需字段未在给定资料中全部列出时,官方仓库未提供该信息,建议以最新 README 为准。
如何判断是 Python 包没有安装?
执行导入验证命令。如果 import tradingagents 失败,检查当前终端是否激活了创建的 tradingagents 环境,并重新执行安装命令;不要仅通过仓库目录名称判断安装是否成功。
如何使用 Ollama?
可以使用 Compose 的 ollama profile,并运行 tradingagents-ollama 服务。Compose 文件将服务地址配置为 http://ollama:11434/v1;模型下载、模型名称和 Ollama 服务初始化步骤未在给定资料中说明,官方仓库未提供该信息,建议以最新 README 为准。
为何设置了温度仍然无法复现完全相同的结果?
.env.example 的注释明确说明,温度设置不能使 LLM 输出完全确定。复现实验还需要固定代码版本、模型、输入数据、交易周期、轮数和外部服务配置,但项目资料没有提供官方复现实验协议。
Bedrock 安装失败如何处理?
Amazon Bedrock 是可选依赖,项目定义的安装方式为 pip install "tradingagents[bedrock]"。认证可以使用 AWS_BEARER_TOKEN_BEDROCK 或 AWS 凭证链,并设置 AWS_DEFAULT_REGION;具体权限策略和账户配置不在资料中。
测试、开发与贡献
项目的开发配置位于 pyproject.toml,开发可选依赖包含 Ruff、pytest 和 pytest-subtests。pytest 配置将测试路径设为 tests,并定义了 unit、integration、smoke 三类标记。
pip install "tradingagents[dev]"
pytestRuff 的目标 Python 版本为 py310,配置启用了 E、W、F、I、B、UP、C4、SIM 规则,并将行长度规则 E501 排除。仓库资料未给出完整贡献流程、分支策略和发布审批规则,贡献前应阅读仓库中的最新贡献文档。
项目结构与交付形态
资料能够确认的打包入口和文件关系如下。由于没有提供完整目录树,下面只列出配置文件中明确出现的包和文件,不把未展示的源码路径写成确定事实。
| 路径或名称 | 用途 | 来源 |
|---|---|---|
tradingagents* |
由 setuptools 包发现配置包含的 Python 包范围 | pyproject.toml |
cli* |
命令行包范围 | pyproject.toml |
cli/static/* |
作为包数据包含的静态文件 | pyproject.toml |
tests |
pytest 测试路径 | pyproject.toml |
Dockerfile |
构建 Python 3.12 slim 镜像 | 仓库资料 |
docker-compose.yml |
定义应用与 Ollama 服务 | 仓库资料 |
.env.example |
环境变量示例 | 仓库资料 |
事实依据与阅读提示
项目功能、免责声明、安装方式和角色划分主要依据 README;包版本、Python 约束、依赖、命令行入口、测试配置和许可证可选依赖分别依据 pyproject.toml、Docker 配置、环境变量示例和 LICENSE 文件。仓库资料中的 Star 与 Fork 数量是用户提供的 GitHub 元信息,随仓库变化而变化。
“TradingAgents is a multi-agent trading framework that mirrors the dynamics of real-world trading firms.”
来源:README
上面的原文描述强调了框架的组织方式,即模拟交易公司的多角色协作关系;它不等价于对交易收益、决策准确率或真实市场适用性的承诺。
项目地址与资源
以下链接均来自仓库资料或 README 中出现的官方页面,适合用于核对源码、论文、免责声明和社区信息。



