2 月写过 TradingAgents-CN,4 月写过 ai-hedge-fund——一个是把多智能体框架汉化,一个是让 12 位投资大师开会吵架。

两篇的留言区里有同一个问题:这些 AI 分析师,懂 A 股吗?

说实话,不太懂。它们看 K 线、看财报、看新闻情绪,这套逻辑放美股成立。但 A 股散户每天真正盯的是另外三样东西:政策风向、龙虎榜上的游资、下个月谁要解禁。这三样,原版框架里一个都没有。

今天这个项目做的就是这件事:在 TradingAgents 的多智能体骨架上,新增 3 个 A 股原生分析师,把数据层整个换成免费直连的国内源,交易规则改成 T+1 + 涨跌停。

不是汉化,是特化

项目地址:https://github.com/simonlin1212/TradingAgents-astock

⭐ 2,593 Stars | 692 Forks | Python ≥3.10 | Apache 2.0 | 2026-07-24 仍在更新


它是什么?

TradingAgents-astock = 把 TradingAgents 论文框架,从美股移植到 A 股的工程实现

上游是 TauricResearch/TradingAgents(现在 9.4 万 Star,论文 arXiv 2412.20138)。这个 fork 的作者没有满足于换个数据源,而是从三个维度动了刀:

| 维度

|

原版

|

这个 Fork

数据源

Yahoo Finance / Alpha Vantage

|

mootdx + 东财 + 新浪 + 同花顺(全免费直连)

| | 分析师 |

4 个

| 7 个

(+ 政策 / 游资 / 解禁)

| | 交易规则 |

美股 T+0、无涨跌停

|

A 股 T+1、涨跌停、最小手数、交易时段

| | 输出语言 |

英文

|

中文报告(内部辩论仍走英文)

| | Alpha 基准 |

SPY

|

沪深 300

|

最后那行别小看。基准从 SPY 换成沪深 300,意味着它的"交易反思"模块(reflection)终于是在跟一个中国投资者真正的机会成本比较了。


核心差异:三个 A 股原生分析师

原版的 4 个分析师(市场 / 舆情 / 新闻 / 基本面)都保留并做了 A 股适配。真正新增的是这三位:

| 角色

|

职责

|

为什么 A 股必须有

🏛️ 政策分析师

|

监管政策、产业政策、窗口指导

|

A 股是政策市,一份文件决定板块轮动

| |

🔥 游资追踪师

|

龙虎榜、大单流向、主力资金动态

|

游资是 A 股短线定价的核心力量

| |

🔓 解禁监控师

|

限售股解禁、大股东减持、股权质押

|

解禁是 A 股独有的重大供给冲击

|

这三份报告不是附录,而是和原来 4 份一起流进后面的多空辩论和三方风控辩论——A 股特色因素贯穿整条决策链,而不是最后加一段"另外提醒您注意解禁"。

这是我看下来最值得肯定的设计。很多"A 股版"改造只是换了数据接口,Agent 的脑子还是美股的。

对应的代码目录很清楚:

<span leaf="">tradingagents/agents/analysts/</span><br><span leaf="">├── market_analyst.py</span><br><span leaf="">├── social_media_analyst.py</span><br><span leaf="">├── news_analyst.py</span><br><span leaf="">├── fundamentals_analyst.py</span><br><span leaf="">├── policy_analyst.py &nbsp; &nbsp; &nbsp; &nbsp;# A 股特化</span><br><span leaf="">├── hot_money_tracker.py &nbsp; &nbsp; # A 股特化</span><br><span leaf="">└── lockup_watcher.py &nbsp; &nbsp; &nbsp; &nbsp;# A 股特化</span><br>

完整决策链

这是上游论文的架构图(注意:图里的 Yahoo Finance、Reddit、Bloomberg、OpenAI o1 都是原版的配置,这个 fork 已经全换掉了,但骨架结构一样):

上游 TradingAgents 架构图

换成这个 fork 的实际流程,是这样一条链:

<span leaf="">7 个 Analyst 出研报</span><br><span leaf="">&nbsp; Market → Social → News → Fundamentals → Policy → HotMoney → Lockup</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; ↓</span><br><span leaf="">Bull vs Bear 投研辩论(可设轮数)</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; ↓</span><br><span leaf="">Research Manager 综合研判(深度思考 LLM)</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; ↓</span><br><span leaf="">Trader 出交易方案(受 A 股约束:T+1 / 涨跌停 / 手数)</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; ↓</span><br><span leaf="">Aggressive ←→ Conservative ←→ Neutral 三方风险辩论</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; ↓</span><br><span leaf="">Portfolio Manager 最终评级 + 理由(深度思考 LLM)</span><br>

双 LLM 设计是个省钱细节:

  • quick_think_llm

     → 所有 Analyst、Researcher、Trader、风险辩手(调用量大)

  • deep_think_llm

     → 只给 Research Manager 和 Portfolio Manager(需要综合全局)

也就是说,你可以把便宜的快模型堆在前面 30 多次调用上,只在最后两个决策节点上用贵的。


数据源:一个 Key 都不用申请

这部分是我最喜欢的。全部免费直连,没有积分墙

| 来源

|

协议

|

提供内容

mootdx

TCP 7709

|

OHLCV K 线、财务快照、F10 文本

| | 腾讯财经 |

HTTP

|

PE / PB / 市值 / 换手率(实时)

| | 东方财富 |

HTTP

|

龙虎榜、限售解禁、板块行情、个股信息

| | 新浪财经 |

HTTP

|

K 线历史、财报三表

| | 同花顺 |

HTTP

|

EPS 一致预期

| | 财联社 |

HTTP

|

全球财经快讯

| | 百度股市通 |

HTTP

|

概念板块分类、资金流向

|

对比一下我之前写过的方案:

  • Tushare

    (14.9K Star)→ 强,但很多接口卡积分

  • AKShare

    (写过,最自由)→ 免费,但要自己拼装数据层

  • efinance

     → 只覆盖东财

这个项目相当于把 AKShare 那套"免费拼装"的活,按投研 Agent 的需要预先做完了,还带一层防封逻辑。

一个真正的工程细节:东财防封

作者在 v0.2.11 做了件很实在的事——所有东财请求统一走内置节流入口 _em_get():串行限流(默认间隔 ≥1s + 0.1~0.5s 随机抖动)+ 复用 Keep-Alive 会话。

因为多 Agent 跑批量分析时,东财风控实测阈值是:每秒 >5 次 / 并发 ≥10 / 1 分钟 ≥200 次就临时封 IP。批量场景还可以设环境变量降速:

<span leaf="">EM_MIN_INTERVAL=1.5 &nbsp;&nbsp;</span><span><span leaf=""># 或 2,进一步降速</span></span><br>

而且只限流东财,mootdx / 腾讯 / 新浪 / 同花顺 / 财联社 / 百度都不受影响。这种"被封过才写得出来"的代码,是判断一个数据项目靠不靠谱的最好信号。


怎么跑起来

下面的命令按官方 README 整理。我在本机没有跑完整条分析链(要挂自己的 API Key 并烧 Token),安装与配置部分照抄官方文档,请以仓库最新 README 为准

1. 安装

<span><span leaf=""># Python &gt;= 3.10</span></span><br><span leaf="">git&nbsp;</span><span><span leaf="">clone</span></span><span leaf="">&nbsp;https://github.com/simonlin1212/tradingagents-astock.git</span><br><span><span leaf="">cd</span></span><span leaf="">&nbsp;tradingagents-astock</span><br><span leaf="">pip install -e .</span><br><br><span><span leaf=""># 只有要用 Google Gemini 才需要这行(会引入 httpx 冲突,见下文局限性)</span></span><br><span leaf="">pip install -e&nbsp;</span><span><span leaf="">".[google]"</span></span><br>

装完即可用,不用 Docker。 Docker 只是可选部署方式。

2. 配置 LLM

必须用 API Key,不能用 Claude / ChatGPT 的订阅账号——每次分析要 30~50 次 LLM 调用,只有 API 模式撑得住。

在项目根目录建 .env,按你的供应商选一个:

<span><span leaf=""># 方案 A:MiniMax(官方推荐,国内直连)</span></span><br><span leaf="">MINIMAX_API_KEY=sk-xxx</span><br><br><span><span leaf=""># 方案 B:DeepSeek</span></span><br><span leaf="">DEEPSEEK_API_KEY=sk-xxx</span><br><br><span><span leaf=""># 方案 C:智谱 GLM</span></span><br><span leaf="">ZHIPU_API_KEY=xxx</span><br><br><span><span leaf=""># 方案 D:通义千问</span></span><br><span leaf="">DASHSCOPE_API_KEY=sk-xxx</span><br><br><span><span leaf=""># 方案 E:任意 OpenAI 兼容网关(自建代理 / 中转)</span></span><br><span leaf="">OPENAI_COMPATIBLE_API_KEY=sk-xxx</span><br><span leaf="">BACKEND_URL=https://your-relay.example/v1</span><br>

⚠️ 最高频的坑:每个供应商用各自的环境变量,不是所有都填 OPENAI_API_KEY。用 DeepSeek 却只设了 OPENAI_API_KEY,会报 OpenAIError: The api_key client option must be set。v0.2.12 起缺 key 会直接提示该用哪个变量名。

3. 跑一次分析

<span><span leaf="">from</span></span><span leaf="">&nbsp;tradingagents.graph.trading_graph&nbsp;</span><span><span leaf="">import</span></span><span leaf="">&nbsp;TradingAgentsGraph</span><br><br><span leaf="">config = {</span><br><span><span leaf="">"llm_provider"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"minimax"</span></span><span leaf="">,</span><br><span><span leaf="">"deep_think_llm"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"MiniMax-M2.7"</span></span><span leaf="">, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span><span leaf=""># 决策节点用好模型</span></span><br><span><span leaf="">"quick_think_llm"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"MiniMax-M2.7-highspeed"</span></span><span leaf="">, &nbsp;&nbsp;</span><span><span leaf=""># 分析师用快模型</span></span><br><span><span leaf="">"output_language"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"Chinese"</span></span><span leaf="">,</span><br><span><span leaf="">"max_debate_rounds"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">1</span></span><span leaf="">, &nbsp; &nbsp; &nbsp; &nbsp;</span><span><span leaf=""># 多空辩论轮数,加大更烧 Token</span></span><br><span><span leaf="">"max_risk_discuss_rounds"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">1</span></span><span leaf="">, &nbsp;</span><span><span leaf=""># 三方风控辩论轮数</span></span><br><span leaf="">}</span><br><br><span leaf="">ta = TradingAgentsGraph(debug=</span><span><span leaf="">True</span></span><span leaf="">, config=config)</span><br><br><span><span leaf=""># 代码换成你自己要研究的标的。这里沿用官方文档的示例代码,</span></span><br><span><span leaf=""># 仅演示接口用法,不构成任何推荐。</span></span><br><span leaf="">final_state, decision = ta.propagate(</span><span><span leaf="">"688017"</span></span><span leaf="">,&nbsp;</span><span><span leaf="">"2026-05-12"</span></span><span leaf="">)</span><br><span><span leaf="">print</span></span><span leaf="">(decision)</span><br>

换 DeepSeek 只改三行:

<span leaf="">config = {</span><br><span><span leaf="">"llm_provider"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"deepseek"</span></span><span leaf="">,</span><br><span><span leaf="">"deep_think_llm"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"deepseek-chat"</span></span><span leaf="">,</span><br><span><span leaf="">"quick_think_llm"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"deepseek-chat"</span></span><span leaf="">,</span><br><span><span leaf="">"output_language"</span></span><span leaf="">:&nbsp;</span><span><span leaf="">"Chinese"</span></span><span leaf="">,</span><br><span leaf="">}</span><br>

4. 不写代码的路子

<span leaf="">tradingagents &nbsp; &nbsp; &nbsp; &nbsp;</span><span><span leaf=""># 交互式 CLI</span></span><br><span leaf="">tradingagents-web &nbsp; &nbsp;</span><span><span leaf=""># Streamlit Web UI,默认 http://localhost:8501</span></span><br>

长什么样

Web UI 欢迎页,侧栏输代码 + 日期,右边写清了整条链路:

Web UI 欢迎页

Web 端的几个实用点:

  • 12 阶段 pipeline 实时进度

    ,已完成的每一阶段报告都能展开看

  • 10 个 LLM 供应商侧栏切换

    ,外加一档"OpenAI 兼容(自定义 base_url)“接任意网关

  • 导出 Markdown 或 PDF

    (PDF 自动适配 Win/macOS/Linux 中文字体)

  • 历史记录自动保存

CLI 跑起来是这个样子——左上角是 Agent 流水线状态,右上角是工具调用与推理流,下方是当前报告(这张是上游截图,标的是 SPY,A 股版布局相同、内容是中文):

CLI 运行界面

要批量跑多只标的,看 examples/run_cases.py,它复用 CLI 的 save_report_to_disk(),每只标的输出 complete_report.md(分析师 / 研究 / 交易 / 风险 / 组合五个分区)+ 一份 summary.json

<span leaf="">uv run python examples/run_cases.py &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span><span leaf=""># 跑全部</span></span><br><span leaf="">uv run python examples/run_cases.py 688017 &nbsp;&nbsp;</span><span><span leaf=""># 跑单只</span></span><br>

和写过的同类项目比

| 对比

| 本项目 |

ai-hedge-fund

|

TradingAgents-CN

|

上游 TradingAgents

⭐ Stars

2.6K

|

62.4K

|

30.6K

|

94.4K

| | 市场 | A 股 |

美股

|

A / 港 / 美

|

美股

| | Agent 数 |

7 分析师 + 辩论 + 风控

|

12 大师 + 6 分析师

|

9 类角色

|

4 分析师

| | A 股原生角色 |

✅ 政策 / 游资 / 解禁

|

|

|

| | 数据要不要 Key |

✅ 全免费直连

|

❌ 部分要付费

|

⚠️ Tushare 有积分墙

|

❌ 要 API

| | 许可证 |

✅ Apache 2.0

|

MIT

|

⚠️ 自定义(GitHub 识别为 NOASSERTION)

|

Apache 2.0

| | 部署 |

pip 即跑,Docker 可选

|

Poetry

|

推荐 Docker

|

pip

| | 适合谁 |

想研究 A 股特色因子怎么进 Agent

|

想学 12 种投资哲学

|

想要开箱即用的中文界面

|

想读论文原实现

|

<span leaf="">一句话区分:</span><br><span leaf="">上游 TradingAgents &nbsp;→ 论文原型,美股</span><br><span leaf="">TradingAgents-CN &nbsp; &nbsp;→ 汉化 + 中文界面,全市场</span><br><span leaf="">ai-hedge-fund &nbsp; &nbsp; &nbsp; → 12 位大师开会,美股</span><br><span leaf="">本项目 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→ 唯一给 A 股加了原生角色的那个 ✅</span><br>

Star 数它是最少的(2.6K vs 上游 9.4 万)。但在"懂不懂 A 股"这个维度上,它目前是这几个里最深的


一个值得单独说的设计

作者在 README 里写了一段话,我读到的时候愣了一下:

不产出可执行价位:框架内没有建仓价 / 止损位 / 仓位 / 目标价这类输出——不是默认关闭,是代码里就没有。Trader 与 Portfolio Manager 只给方向、评级与理由。

这是一个非常清醒的决定。

绝大多数 AI 炒股项目的演示截图都在秀"目标价 XX 元、止损 XX 元、建议仓位 15%"——那些数字看着最专业,其实最不可信,因为它们是 LLM 从文本里"编"出来的,没有任何风险模型支撑。

同时,在国内提供带具体价位的证券投资建议是有牌照门槛的。作者把这条线画在代码层面而不是免责声明层面,顺带把自己和使用者都摘出来了。

顺着说清账号的一贯观点:用 AI 预测股价基本是伪命题。 LLM 生成的分析报告,本质是对公开信息的重新组织,天然带幻觉和过拟合风险——它会把噪音讲成逻辑,而且讲得比人还流畅。

这类框架的正确用法,我认为是:

  • ✅ 信息处理:7 个角度把公告、龙虎榜、解禁表一次扫完,省的是你翻资料的时间

  • ✅ 看分歧:多空辩论里两边的论据,比最后那个评级有价值得多

  • ✅ 做因子研究素材:把结构化输出存下来,回头验证哪类因子真有效

  • ❌ 不要把它的评级当买卖信号


局限性

| 局限

|

说明

必须 API Key

一次分析 30~50 次 LLM 调用,订阅版账号用不了

| | Token 消耗不小 |

7 分析师 + 两轮辩论 + 风控,辩论轮数调大成正比增长

| | 弱模型会出空报告 |

部分轻量模型 tool-call 不稳,情绪/新闻/政策/游资/解禁报告可能空白

| | 数据源是爬来的 |

免费的代价是接口随时可能变,东财还要靠节流躲风控

| | 装 [google] 有依赖冲突 |

mootdx 要 httpx<0.26、google-genai 要 >=0.28,互斥

| | 不能实盘交易 |

只出分析和评级,不接券商通道

| | Star 基数还小 |

2.6K,社区和 issue 沉淀不如上游厚

|

三个已知坑的解法

① 报告空白 → 不是数据源坏了,是模型 tool-call 能力弱。换 deepseek-chat / 通义 / GLM-4 / Claude / GPT 这类调用稳的,或者直接重试。

② PDF 导出报 UnicodeEncodeError: 'latin-1' codec can't encode → 你环境里装了旧版 fpdf(pyfpdf),和项目用的 fpdf2 抢同一个导入名:

<span leaf="">pip uninstall -y fpdf &amp;&amp; pip install&nbsp;</span><span><span leaf="">"fpdf2&gt;=2.8.6"</span></span><br>

实在不行改用"下载 Markdown”,零依赖永远可用。

③ 装 Gemini 后 httpx 冲突 → mootdx 取行情走 TCP、运行时根本不调 httpx,所以可以让 httpx 升到满足 google-genai 的版本,pip 那条 incompatible 只是警告(作者实测 mootdx 0.11.7 在 httpx 0.28.1 下取数正常)。或者干脆别装 [google],用国内直连模型就没这问题。


小结

<span leaf="">TradingAgents-astock:</span><br><span leaf="">- 2.6K Star,上游 TradingAgents(9.4 万)的 A 股深度特化 fork</span><br><span leaf="">- 7 个分析师,其中政策 / 游资 / 解禁三个是 A 股原生新增</span><br><span leaf="">- 三个新报告直接进多空辩论和风控辩论,不是附录</span><br><span leaf="">- 数据全免费直连,一个 Key 都不用申请,无 Tushare 积分墙</span><br><span leaf="">- 东财请求内置节流防封,批量跑不封 IP</span><br><span leaf="">- T+1 / 涨跌停 / 手数写进 Trader 约束,基准换成沪深 300</span><br><span leaf="">- 双 LLM 设计:快模型跑分析师,好模型只给两个决策节点</span><br><span leaf="">- 全 Apache 2.0,pip install 即跑,不用 Docker</span><br><br><span leaf="">最大价值:它是我写过的几个多智能体投研框架里,</span><br><span leaf="">唯一真的把"A 股是政策市 + 游资市 + 有解禁"这件事</span><br><span leaf="">写进 Agent 脑子里的那个。</span><br><br><span leaf="">最该看的地方:不是它给的评级,是多空辩论里两边的论据。</span><br>

⚠️ 免责声明:本文仅为技术分享/教育目的,不构成任何投资建议。回测收益不等于实盘收益,历史表现不代表未来。投资有风险,入市需谨慎。


下期继续——a-stock-data:同一个作者的 A 股全栈数据工具包,7.7K Star、10 层架构、43 个端点,行情/研报/资金面/筹码/公告/打板/ETF 期权全都有,把这篇的数据层单独拆出来做成了轮子。


#TradingAgents #A股 #多智能体 #AI投资 #量化投资 #LangGraph #龙虎榜 #GitHub #开源