用 7 个 AI 分析师做 A 股投研辩论(TradingAgents-Astock)
TradingAgents-Astock 是把 TauricResearch/TradingAgents 的多 Agent 投研辩论架构搬到 A 股的 Python 项目:7 位分析师、多空辩论、三方风险辩论,数据源全部免费直连。这篇文章讲清它的输入输出、可用功能、关键配置项、真实用户踩过的坑,以及它和同类 A 股数据工具、交易 Agent 的分工差别。
原版 TradingAgents 的多 Agent 辩论架构是按美股搭的:行情走 Yahoo Finance 和 Alpha Vantage,分析师角色里没有政策、游资、解禁这些概念,交易规则按 T+0、无涨跌停写。把它直接指向 A 股标的,数据取不到,辩论赖以成立的前提也不对。
TradingAgents-Astock 在这个架构上做了替换:数据层换成 mootdx、东方财富、新浪财经、同花顺这批国内接口,分析师从 4 位扩到 7 位,交易约束改写成 T+1、涨跌停、最小手数和交易时段。辩论与决策的流程骨架沿用上游,改动记录单独放在 CHANGES_FROM_UPSTREAM.md 里。
TradingAgents-Astock 是用 Python 写的 A 股多智能体投研框架,输入一个股票代码,7 位分析师分头取数写研报,经多空辩论与风险辩论后输出投资计划与评级。

它不做什么
README 在显眼位置写了:本项目面向研究与教学,不构成任何投资建议,也不提供任何投资服务。它产出的是分析文本与评级,不接券商、不下单。
能分析的范围限于 A 股。数据源清单和 7 个分析师角色都围绕 A 股制度设计,仓库没有说明支持港股或美股。Issue 里出现过「什么时候可以加上港股分析」的需求,事实表没有给出该能力已经落地的说明。
它自身不是模型。每次完整分析要发起 30-50 次 LLM 调用,默认按 API Key 计费;不接 LLM 供应商,跑起来不会有任何输出。
部署上不依赖外部服务,装完即可用,Docker 只是可选的部署方式。仓库地址 https://github.com/simonlin1212/TradingAgents-astock ,采用 Apache License 2.0,主要语言 Python,语言占比 99.8%。
用之前先准备好什么
- Python >= 3.10 的运行环境。
- 至少一个 LLM 供应商的凭据,可选 MiniMax、DeepSeek、智谱 GLM、通义千问、OpenAI、Anthropic、Kimi,或任意 OpenAI 兼容网关。
- 走 Kimi 时,
ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL两个都要设,只给 key 会把请求发到 Anthropic 官方并返回 401。ANTHROPIC_AUTH_TOKEN不认,那是 Claude Code CLI 的写法,本项目走 langchain。 - 要用 Google Gemini,需要额外装
langchain-google-genai、google-genai、httpx三个包,仓库没有把它放进默认 extra。 - 想让节点走个人 Claude Pro/Max 订阅额度,安装时要带
[agentsdk]extra。
主要功能
- 7 位分析师分工出研报。市场分析师负责 K 线形态、技术指标与量价,工具是
get_stock_data、get_indicators;舆情分析师看散户讨论热度;新闻分析师看行业新闻、公告与宏观事件;基本面分析师看财报三表与估值。此外新增三位 A 股特化角色:政策分析师(监管与产业政策)、游资追踪师(龙虎榜、大单流向、主力资金)、解禁监控师(限售股解禁、大股东减持、股权质押)。每位分析师的报告都会流入后续辩论。 - 多空辩论与研究经理研判。Bull Researcher 与 Bear Researcher 按配置的轮数对辩,之后由 Research Manager 综合成投资计划。
- A 股约束下的交易方案。Trader 节点在 T+1、涨跌停、最小手数的框架里给出方案。
- 三方风险辩论与最终决策。Aggressive、Conservative、Neutral 三方辩论后,Portfolio Manager 输出评级与理由。
- 双 LLM 分工。quick_think_llm 承担所有 Analyst、Researcher、Trader 和风险辩手;deep_think_llm 只给需要综合全局信息的 Research Manager 和 Portfolio Manager。
- 免费数据源直连。mootdx 走 TCP 7709 提供 OHLCV K 线、财务快照和 F10 文本;腾讯财经
qt.gtimg.cn给实时 PE/PB/市值/换手率;东方财富提供龙虎榜、限售解禁、板块行情、个股信息;新浪财经给 K 线历史和财报三表;同花顺给 EPS 一致预期;财联社给全球财经快讯;百度股市通给概念板块分类和资金流向。全部不需要 API Key。 - 东财节流。所有东财请求统一走
_em_get(),串行限流默认间隔 ≥1s 再加 0.1~0.5s 随机抖动,复用 Keep-Alive 会话。README 里给出的东财风控实测阈值是每秒超过 5 次、并发不低于 10、一分钟超过 200 次会触发封禁;mootdx、腾讯、新浪、同花顺、财联社、百度不受这套限流影响。 - Web UI 记住 LLM 配置。从 v0.5.17 起,侧栏选的供应商、快速/深度模型、API Base URL、订阅覆盖、自定义模型 ID 会在点「开始分析」时写入
~/.tradingagents/llm_config.json,页面加载时恢复;写盘失败只记 warning,不打断分析。
安装与最短示例
# Python >= 3.10
git clone https://github.com/simonlin1212/tradingagents-astock.git
cd tradingagents-astock
pip install -e .
在项目根目录建一个 .env,按你选的供应商填 key,例如 MiniMax:
MINIMAX_API_KEY=sk-xxx
然后在根目录跑:
uv run python main.py
根目录自带的 main.py 就是一个最小可运行示例,内部构造 TradingAgentsGraph(config=...) 并跑一次完整分析。Web 界面用 streamlit run web/app.py 启动,命令行入口是 tradingagents。README 里提示 config 不是仓库里的某个配置文件,而是传给 TradingAgentsGraph 的字典,只写要覆盖的项,其余取 tradingagents/default_config.py 里的默认值。
关键参数
llm_provider、quick_think_llm、deep_think_llm、output_language:README 的快速开始示例里出现的四个键,分别控制供应商、快速模型、深度模型和报告语言。llm_timeout:v0.5.19 新增,默认 150 秒,覆盖所有走 LangChain 客户端的 provider,以及订阅撞额度后的降级客户端。单轮按配置值计时,内部工具循环按允许轮数换算总预算。backend_url:指定端点,也可以改 Web 侧栏的 Base URL;glm 和 qwen 的默认端点在 v0.5.18 统一到国内站。data_cache_dir:数据缓存目录,TradingAgentsGraph.__init__会用它建目录。EM_MIN_INTERVAL:环境变量,批量场景设成 1.5~2 可以进一步降低东财请求频率,只影响东财。
结果在哪里看
- Web UI 页面里呈现分析过程与最终结论。
- CLI 方式在终端输出。
- PDF 报告。仓库里没有说明 PDF 具体落在哪个目录。
data_cache_dir指定的目录存放抓到的数据缓存。- Web UI 的 LLM 配置存在
~/.tradingagents/llm_config.json。
实际使用中的坑
- 没配 API Key 就运行,报
The api_key client option must be set either by passing,分析直接失败。这条 Issue 有 21 条评论,是目前反馈最多的一个,状态已解决。 - 用中文股票名当 ticker 会失败,报
ticker contains characters not allowed in a filesystem path: '福晶科技'。原因是标的会被拼进文件系统路径,中文名不合规,得用股票代码。该 Issue 11 条评论,已解决。 - 在 Ubuntu 上执行
pip install -e .时依赖解析进入死循环,用户怀疑是pyproject.toml里的 dependencies 有问题。这条 4 条评论,已解决。 - 生成 PDF 报告时中文字符渲染失败,报
fpdf.errors.FPDFUnicodeEncodingException: Character "股" … outside the range of characters supported by the font used: "helvetica",需要换 Unicode 字体。相关反馈还有fpdf.errors.FPDFException: Not enough horizontal space to render a single character,都在 7 条评论前后,状态已解决。
横向对照
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| TradingAgents-Astock | 想用 LLM 跑 A 股投研链路、并且接受自己配模型和 key 的研究型用户 | pip install -e . 安装,Docker 可选 | 依赖外部 LLM 供应商,每次分析 30-50 次调用;只覆盖 A 股;东财接口有节流,批量分析会变慢 | 你需要的是从数据抓取一路到评级输出的完整辩论链路时 | TradingAgents-Astock |
| simonlin1212/a-stock-data | 只要 A 股原始数据、自己写策略或喂给别的模型的量化研究者 | 未逐一核实 | 从仓库描述看它提供的是行情、财务、研报、资金面等数据类内容,不含多分析师辩论与决策链 | 你需要的是行情、逐笔、龙虎榜这些原始数据,不需要 LLM 辩论给出的结论时 | simonlin1212/a-stock-data |
| HKUDS/Vibe-Trading | 想用自然语言操作交易 Agent、不限定 A 股市场的个人用户 | 未逐一核实 | 仓库描述只有一句话,未列出 A 股制度适配(T+1、涨跌停)与政策、游资、解禁这三类 A 股特色角色,未逐一核实其具体能力边界 | 你关注的是通用的个人交易 Agent 形态,而不是 A 股制度下的投研辩论链路时 | HKUDS/Vibe-Trading |
只要数据、不要结论的话,a-stock-data 这类数据工具包比本项目省事:本项目把数据抓取和 LLM 辩论绑在一起,装完还得配 key,跑 30-50 次调用才出结果。反过来,如果你要的是一条从原始数据到评级、并且把 A 股交易制度写进决策流程的链路,纯数据工具包不提供后半段。
合规与授权边界
这个项目的数据来自第三方财经站点的公开接口,走 HTTP 或 TCP 直连,包括东方财富、新浪财经、腾讯财经、同花顺、财联社和百度股市通。项目侧做了节流处理,但那只是降低触发风控的概率,不代表上游站点授权了批量抓取。使用前请自行确认各数据源的服务条款,把请求频率控制在对方允许的范围内。
项目本身定位是研究与教学,输出不构成投资建议。如果要把它的结果用于任何真实的资金决策,风险和合规责任在使用者一侧。
适合谁
适合想研究多 Agent 辩论架构怎么落到具体市场的人,适合需要一条从 A 股数据抓取到评级输出完整链路的研究者,也适合已经把 LLM 供应商和 key 准备好、愿意照着 config 字典改参数的人。
不适合想直接拿到买卖信号的人,不适合不愿意配 API Key 或不愿承担每次 30-50 次调用成本的人,也不适合需要港美股覆盖的场景——这个仓库的数据源和角色都围绕 A 股设计。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.4 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 7.5 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 10.0 / 10 |
| 发布节奏(权重 10%) | 9.7 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
TradingAgents-Astock 把美股的多 Agent 辩论框架改写为 A 股版本,值得留存的地方在于它把 T+1、涨跌停、政策、游资、解禁这些制度变量真正写进决策链路,并交代了免费数据源、关键配置与东财节流口径。适合已有 LLM key、愿意照着 config 字典改参数的研究者。
文中功能、参数、版本号、东财节流阈值等来自作者 README 与仓库公开披露,诀.com 未独立验证;焚评分数由焚.com 授权引用,随其页面指标刷新;Issue 内容与状态来自 GitHub 公开数据。无独立实测,结果不保证复现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在配置与部署环节:API Key 未正确设置导致分析失败、用中文股票名当 ticker 触发路径报错、Ubuntu 上 pip install -e . 依赖解析卡住、mootdx 未安装、PDF 导出遇到中文字体与排版报错、最终建议输出英文,以及 get_news 的正则异常。多数提交者报告后标记为已解决;也有人反映 README 安装说明不够细,容器内还会碰到权限问题。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:simonlin1212(simonlin1212)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库