# Tradingagents Astock

> Deploy and run TradingAgents-AStock, an A-share multi-agent investment research framework (fork of TauricResearch/TradingAgents, 65K stars) with 7 AI analysts, bull/bear debate, risk assessment and portfolio manager decision. Trigger when user asks to set up, run, or troubleshoot A-share AI investment research, multi-agent stock analysis, TradingAgents deployment, LLM-driven stock debate analysis, or Web UI/CLI usage of the tradingagents-astock system.

- Skill: `cctvgh/tradingagents-astock` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add cctvgh/tradingagents-astock`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cctvgh/tradingagents-astock/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: cctvgh (https://skillmd.com/u/cctvgh)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cctvgh/tradingagents-astock

---


# TradingAgents-AStock A股多Agent投研系统

## Overview

TradingAgents-AStock 是基于 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents)（65K⭐）的 A 股深度特化 fork，Apache 2.0 开源。用 LLM 模拟一家投研公司：7 位分析师（含 A 股特化的政策/游资/解禁监控）并行生成研报 → 多空研究员辩论 → 研究经理综合研判 → 交易员出方案 → 激进/保守/中立三方风控辩论 → 基金经理最终决策（评级+理由）。

数据层全免费直连：mootdx（通达信 TCP）+ 腾讯财经 + 东方财富 + 新浪 + 同花顺 + 财联社 + 百度股市通，零 API Key、零积分墙、零外部服务。

本项目为**研究与教学用途**，不构成投资建议。

## 本地部署（Windows，参照 AUGUR 处理方式）

项目源码已部署在 `D:\TradingAgents-AStock`，虚拟环境 `D:\TradingAgents-AStock\venv`。

### 首次部署（新机器）

```powershell
# 1. 克隆项目
git clone https://github.com/simonlin1212/TradingAgents-astock.git D:\TradingAgents-AStock
cd D:\TradingAgents-AStock

# 2. 创建虚拟环境并安装（Python >= 3.10）
python -m venv venv
.\venv\Scripts\python.exe -m pip install --upgrade pip
.\venv\Scripts\python.exe -m pip install -e .
# 可选：如需 Gemini 模型，见 README「Gemini / langchain-google-genai」

# 3. 配置 LLM API Key（项目根目录建 .env）
```

### 配置 .env（LLM）

在 `D:\TradingAgents-AStock\.env` 中按实际使用的供应商填写（**用各自的环境变量，不是 OPENAI_API_KEY**）：

```ini
# 方案A：MiniMax（推荐，国内直连，性价比高）
MINIMAX_API_KEY=sk-xxx

# 方案B：DeepSeek
DEEPSEEK_API_KEY=sk-xxx

# 方案C：智谱 GLM
ZHIPU_API_KEY=xxx

# 方案D：通义千问 Qwen
DASHSCOPE_API_KEY=sk-xxx

# 方案H：任意 OpenAI 兼容网关（9Router / AI Router / 自建代理）
OPENAI_COMPATIBLE_API_KEY=sk-xxx
BACKEND_URL=https://your-relay.example/v1
```

### 启停脚本（Windows）

| 脚本 | 作用 |
|------|------|
| `scripts/StartTradingAgents-AStock.ps1` | 启动 Web UI（Streamlit，端口 8501）并打开浏览器 |
| `scripts/StopTradingAgents-AStock.ps1` | 结束 streamlit 进程 |

> 脚本为 PowerShell 格式（.ps1），右键「用 PowerShell 运行」即可，或命令行执行：`powershell -ExecutionPolicy Bypass -File scripts/StartTradingAgents-AStock.ps1`

也可以手动运行：

```powershell
cd D:\TradingAgents-AStock
.\venv\Scripts\tradingagents-web.exe    # 方式一：Web UI（推荐）
.\venv\Scripts\streamlit.exe run web/app.py  # 方式二
```

打开浏览器访问 `http://localhost:8501`。

## 使用方式

### 1. Web UI（适合不写代码的用户）

侧边栏选择 LLM 供应商和模型（支持 MiniMax/DeepSeek/Qwen/GLM/OpenAI/Anthropic/Google/xAI/OpenRouter/Ollama + OpenAI 兼容自定义 base_url），输入 6 位 A 股代码 + 分析日期，点击「开始分析」。12 阶段 pipeline 实时显示进度，完成后可查看信号卡片（Buy/Hold/Sell）、7 份分析师报告、多空辩论、风控评估，并可导出 Markdown/PDF。

> **⚠️ Web UI 默认供应商是 MiniMax，不读 .env**：即使 .env 中配了 DEEPSEEK_API_KEY 或 ZHIPU_API_KEY，Web UI 侧边栏仍默认 MiniMax。必须手动展开「⚙️ 模型配置」→ 切换 LLM 供应商下拉框为实际使用的供应商，否则会报 "未找到 minimax 的 API Key"。切换后选择会持久化到 `~/.tradingagents/llm_config.json`，重启后保持。

> **启动时序**：Streamlit 需约 30 秒才能监听 8501 端口。健康检查 `Invoke-WebRequest http://localhost:8501 -UseBasicParsing` 返回 200 即就绪。`tradingagents-web` 命令内部调用 `python -m streamlit run web/app.py`。

### 2. Python 脚本方式

项目根目录自带 `main.py`，或参考 `examples/run_cases.py`：

```python
from tradingagents.graph.trading_graph import TradingAgentsGraph

config = {
    "llm_provider": "deepseek",
    "deep_think_llm": "deepseek-chat",
    "quick_think_llm": "deepseek-chat",
    "output_language": "Chinese",
}
ta = TradingAgentsGraph(debug=True, config=config)
final_state, decision = ta.propagate("688017", "2026-05-12")
print(decision)
```

### 3. CLI 方式

```bash
tradingagents            # 交互式 CLI
tradingagents analyze    # 分析
tradingagents performance  # 决策绩效统计（方向正确率等）
```

### 4. 批量分析多只股票

```bash
cd D:\TradingAgents-AStock
.\venv\Scripts\python.exe examples\run_cases.py 688017   # 单只
```

## 配置要点

| 参数 | 默认值 | 说明 |
|------|--------|------|
| `llm_provider` | `"minimax"` | minimax/deepseek/qwen/glm/openai/anthropic/google/xai/ollama/openai_compatible |
| `deep_think_llm` | MiniMax-M2.7 | Research Manager + Portfolio Manager 用模型 |
| `quick_think_llm` | MiniMax-M2.7-highspeed | 所有 Analyst / Researcher / Trader 用模型 |
| `backend_url` | None | 自定义 API 端点 / 第三方中转网关 |
| `output_language` | "Chinese" | 报告输出语言 |
| `max_tokens` | None | 单次回复最大输出 token（报告中断先调这个） |

完整配置见 `tradingagents/default_config.py` 与 README「配置说明」章节。

## 常见问题排错

| 问题 | 解决 |
|------|------|
| 报 `OpenAIError: api_key client option must be set` | 用各自供应商的环境变量（DEEPSEEK_API_KEY / DASHSCOPE_API_KEY / ZHIPU_API_KEY / MINIMAX_API_KEY），配后**重启**程序 |
| 接 Kimi 报 `401 invalid x-api-key` | 光给 key 没给端点，`ANTHROPIC_API_KEY`+`ANTHROPIC_BASE_URL=https://api.kimi.com/coding/` 两个都要设 |
| 报告写到一半断 | 输出上限，config 设 `max_tokens: 16000` 或环境变量 `TRADINGAGENTS_MAX_TOKENS=16000` |
| 部分分析师报告空白 | 模型 tool-call 能力弱，换 deepseek-chat/通义/GLM-4/Claude/GPT 等 tool-call 稳的模型 |
| 导出 PDF 报 `UnicodeEncodeError latin-1` | 装了旧版 fpdf（pyfpdf）冲突，`pip uninstall -y fpdf && pip install "fpdf2>=2.8.6"` |
| 东财数据被封 IP | 内置 `_em_get()` 串行限流（默认 ≥1s+随机抖动），批量场景设 `EM_MIN_INTERVAL=1.5~2` |
| **企业内网防火墙拦截数据源** | 天融信/深信服等安全设备常拦截 mootdx TCP 7709、东财/财联社/新浪 HTTPS 请求。表现为分析师阶段卡住 5-10 分钟、游资追踪/解禁监控报告为空。系统有超时跳过机制，但整体分析从 3-5 分钟延长至 20-30 分钟。**无法根治**，可接受降级结果或换外网环境运行 |
| **API Key 认证失败（401）** | 启动分析前先直接调 API 验证 Key 有效性（见下方「API Key 预检」），避免分析跑到一半才报 401。常见原因：Key 含星号遮蔽、粘贴截断、Key 已过期 |
| **.env 编辑后 Key 位置错误** | 用户用记事本编辑 .env 时常把 Key 粘到首行注释上方而非 `XXX_API_KEY=` 后面。编辑后务必读取 .env 确认 `XXX_API_KEY=<非空值>` 格式正确再重启 |
| Docker 报 `File does not exist: web/app.py` | 用 `docker compose up web` 或本地跑用 `tradingagents-web`（按 `__file__` 解析路径） |

## API Key 预检（启动分析前必做）

直接用 PowerShell 调供应商 API 验证 Key，避免分析跑到一半才报 401：

```powershell
# 智谱 GLM
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$headers = @{ 'Authorization' = 'Bearer YOUR_KEY'; 'Content-Type' = 'application/json' }
$body = '{"model":"glm-4-flash","messages":[{"role":"user","content":"hi"}]}'
Invoke-RestMethod -Uri 'https://open.bigmodel.cn/api/paas/v4/chat/completions' -Method Post -Headers $headers -Body $body -TimeoutSec 20

# DeepSeek
$headers = @{ 'Authorization' = 'Bearer YOUR_KEY'; 'Content-Type' = 'application/json' }
$body = '{"model":"deepseek-chat","messages":[{"role":"user","content":"hi"}]}'
Invoke-RestMethod -Uri 'https://api.deepseek.com/v1/chat/completions' -Method Post -Headers $headers -Body $body -TimeoutSec 20
```

返回正常回复即 Key 有效；返回 401 则 Key 无效或过期，需重新申请。

## 项目信息

- **GitHub 上游**: https://github.com/simonlin1212/TradingAgents-astock（Apache 2.0）
- **论文**: [TradingAgents: Multi-Agents LLM Financial Trading Framework](https://arxiv.org/abs/2412.20138)
- **Python**: >= 3.10 | **本地路径**: `D:\TradingAgents-AStock`
- **数据源**: mootdx（TCP）/腾讯/东财/新浪/同花顺/财联社/百度股市通（全免费直连）

> 本项目仅用于研究与教学，不构成投资建议；投资决策请咨询持牌专业机构。股市有风险，投资需谨慎。
