4.7 KiB
4.7 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
语言规则
- 用中文回答用户的问题
项目概述
TradingAgents 是一个基于 LangGraph 的多智能体 LLM 金融交易框架,模拟真实交易公司的运作模式。通过部署专业化的 LLM 智能体(基本面分析师、情绪分析师、技术分析师、交易员、风险管理团队)协作评估市场状况并做出交易决策。
常用命令
# 激活环境
source env312/bin/activate
# CLI 交互模式(推荐)
python -m cli.main
# 单股分析(编程方式)
python -c "from tradingagents.graph.trading_graph import TradingAgentsGraph; ta = TradingAgentsGraph(debug=True); _, decision = ta.propagate('NVDA', '2026-01-15'); print(decision)"
# 运行测试
python -m pytest orchestrator/tests/
# Orchestrator 回测模式
QUANT_BACKTEST_PATH=/path/to/quant_backtest python orchestrator/examples/run_backtest.py
# Orchestrator 实时模式
QUANT_BACKTEST_PATH=/path/to/quant_backtest python orchestrator/examples/run_live.py
核心架构
工作流程
分析师团队 → 研究员辩论 → 交易员 → 风险管理辩论 → 组合经理
关键组件
tradingagents/ - 核心多智能体框架
agents/- LLM智能体实现 (分析师、研究员、交易员、风控)dataflows/- 数据源集成,通过interface.py路由到 yfinance/alpha_vantage/china_datagraph/- LangGraph 工作流编排,trading_graph.py是主协调器llm_clients/- 多Provider LLM支持 (OpenAI, Anthropic, Google, xAI, OpenRouter, Ollama)default_config.py- 默认配置(LLM provider、模型选择、数据源路由、辩论轮数)
orchestrator/ - 量化+LLM信号融合层
orchestrator.py- 主协调器,融合 quant 和 LLM 信号quant_runner.py- 量化信号获取llm_runner.py- LLM 信号获取(调用 TradingAgentsGraph)signals.py- 信号合并逻辑backtest_mode.py/live_mode.py- 回测/实时运行模式contracts/- 配置和结果契约定义
cli/ - 交互式命令行界面
main.py- Typer CLI 入口,实时显示智能体状态和报告
配置系统
TradingAgents 配置 (tradingagents/default_config.py)
运行时可覆盖的关键配置:
llm_provider: "openai" | "google" | "anthropic" | "xai" | "openrouter" | "ollama"deep_think_llm: 复杂推理模型(本地默认MiniMax-M2.7-highspeed)quick_think_llm: 快速任务模型(本地默认MiniMax-M2.7-highspeed)backend_url: LLM API endpointdata_vendors: 按类别配置数据源 (core_stock_apis, technical_indicators, fundamental_data, news_data)tool_vendors: 按工具覆盖数据源(优先级高于 data_vendors)max_debate_rounds: 研究员辩论轮数max_risk_discuss_rounds: 风险管理辩论轮数output_language: 输出语言("English" | "中文")
Orchestrator 配置 (orchestrator/config.py)
quant_backtest_path: 量化回测输出目录(必须设置才能使用 quant 信号)trading_agents_config: 传递给 TradingAgentsGraph 的配置quant_weight_cap/llm_weight_cap: 信号置信度上限llm_batch_days: LLM 运行间隔天数cache_dir: LLM 信号缓存目录llm_solo_penalty/quant_solo_penalty: 单轨运行时的置信度折扣
A股特定配置
- 数据源: yfinance (akshare 财务 API 已损坏)
- 股票代码格式:
300750.SZ(深圳),603259.SS(上海),688256.SS(科创板) - MiniMax API: Anthropic 兼容,Base URL:
https://api.minimaxi.com/anthropic - 本地默认模型:
MiniMax-M2.7-highspeed
数据流向
1. 工具调用 (agents/utils/*_tools.py)
↓
2. 路由层 (dataflows/interface.py)
- 根据 config["data_vendors"] 和 config["tool_vendors"] 路由
↓
3. 数据供应商实现
- yfinance: y_finance.py, yfinance_news.py
- alpha_vantage: alpha_vantage*.py
- china_data: china_data.py (需要 akshare,当前不可用)
↓
4. 返回数据给智能体
重要实现细节
LLM 客户端
llm_clients/base_client.py- 统一接口llm_clients/model_catalog.py- 模型目录和验证- 支持 provider-specific thinking 配置 (google_thinking_level, openai_reasoning_effort, anthropic_effort)
信号融合 (Orchestrator)
- 双轨制:quant 信号 + LLM 信号
- 降级策略:单轨失败时使用另一轨,应用 solo_penalty
- 缓存机制:LLM 信号缓存到
cache_dir,避免重复 API 调用 - 契约化:使用
contracts/定义的结构化输出
测试
orchestrator/tests/- Orchestrator 单元测试tests/- TradingAgents 核心测试- 使用 pytest 运行:
python -m pytest orchestrator/tests/