Skip to main content

配置指南 (v0.1.7)

概述

TradingAgents-CN 提供了统一的配置系统,所有配置通过 .env 文件管理。本指南详细介绍了所有可用的配置选项和最佳实践,包括v0.1.7新增的Docker部署和报告导出配置。

🎯 v0.1.7 配置新特性

容器化部署配置

  • Docker环境变量: 支持容器化部署的环境配置
  • 服务发现: 自动配置容器间服务连接
  • 数据卷配置: 持久化数据存储配置

报告导出配置

  • 导出格式选择: 支持Word/PDF/Markdown格式配置
  • 导出路径配置: 自定义导出文件存储路径
  • 格式转换配置: Pandoc和wkhtmltopdf配置选项

LLM模型扩展

  • DeepSeek V3集成: 成本优化的中文模型
  • 智能模型路由: 根据任务自动选择最优模型
  • 成本控制配置: 详细的成本监控和限制

配置文件结构

.env 配置文件 (推荐)

# ===========================================
# TradingAgents-CN 配置文件 (v0.1.7)
# ===========================================

# 🧠 LLM 配置 (多模型支持)
# 🇨🇳 DeepSeek (推荐 - 成本低,中文优化)
DEEPSEEK_API_KEY=sk-your_deepseek_api_key_here
DEEPSEEK_ENABLED=true

# 🇨🇳 阿里百炼通义千问 (推荐 - 中文理解好)
DASHSCOPE_API_KEY=your_dashscope_api_key_here
QWEN_ENABLED=true

# 🌍 Google AI Gemini (推荐 - 推理能力强)
GOOGLE_API_KEY=your_google_api_key_here
GOOGLE_ENABLED=true

# 🤖 OpenAI (可选 - 通用能力强,成本较高)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_ENABLED=false

# 📊 数据源配置
FINNHUB_API_KEY=your_finnhub_api_key_here
TUSHARE_TOKEN=your_tushare_token

# 🗄️ 数据库配置 (Docker自动配置)
MONGODB_ENABLED=false
REDIS_ENABLED=false
MONGODB_HOST=localhost
MONGODB_PORT=27018
REDIS_HOST=localhost
REDIS_PORT=6380

# 📁 路径配置
TRADINGAGENTS_RESULTS_DIR=./results
TRADINGAGENTS_DATA_DIR=./data

配置选项详解

1. 路径配置

project_dir

  • 类型: str
  • 默认值: 项目根目录
  • 说明: 项目根目录路径,用于定位其他相对路径

results_dir

  • 类型: str
  • 默认值: "./results"
  • 环境变量: TRADINGAGENTS_RESULTS_DIR
  • 说明: 分析结果存储目录
config = {
"results_dir": "/path/to/custom/results", # 自定义结果目录
}

data_cache_dir

  • 类型: str
  • 默认值: "tradingagents/dataflows/data_cache"
  • 说明: 数据缓存目录

2. LLM 配置

llm_provider

  • 类型: str
  • 可选值: "openai", "anthropic", "google"
  • 默认值: "openai"
  • 说明: 大语言模型提供商
# OpenAI 配置
config = {
"llm_provider": "openai",
"backend_url": "https://api.openai.com/v1",
"deep_think_llm": "gpt-4o",
"quick_think_llm": "gpt-4o-mini",
}

# Anthropic 配置
config = {
"llm_provider": "anthropic",
"backend_url": "https://api.anthropic.com",
"deep_think_llm": "claude-3-opus-20240229",
"quick_think_llm": "claude-3-haiku-20240307",
}

# Google 配置
config = {
"llm_provider": "google",
"backend_url": "https://generativelanguage.googleapis.com/v1",
"deep_think_llm": "gemini-pro",
"quick_think_llm": "gemini-pro",
}

deep_think_llm

  • 类型: str
  • 默认值: "o4-mini"
  • 说明: 用于深度思考任务的模型(如复杂分析、辩论)

推荐模型:

  • 高性能: "gpt-4o", "claude-3-opus-20240229"
  • 平衡: "gpt-4o-mini", "claude-3-sonnet-20240229"
  • 经济: "gpt-3.5-turbo", "claude-3-haiku-20240307"

quick_think_llm

  • 类型: str
  • 默认值: "gpt-4o-mini"
  • 说明: 用于快速任务的模型(如数据处理、格式化)

3. 辩论和讨论配置

max_debate_rounds

  • 类型: int
  • 默认值: 1
  • 范围: 1-10
  • 说明: 研究员辩论的最大轮次
# 不同场景的推荐配置
config_scenarios = {
"quick_analysis": {"max_debate_rounds": 1}, # 快速分析
"standard": {"max_debate_rounds": 2}, # 标准分析
"thorough": {"max_debate_rounds": 3}, # 深度分析
"comprehensive": {"max_debate_rounds": 5}, # 全面分析
}

max_risk_discuss_rounds

  • 类型: int
  • 默认值: 1
  • 范围: 1-5
  • 说明: 风险管理讨论的最大轮次

max_recur_limit

  • 类型: int
  • 默认值: 100
  • 说明: 递归调用的最大限制,防止无限循环

4. 工具配置

online_tools

  • 类型: bool
  • 默认值: True
  • 说明: 是否使用在线数据工具
# 在线模式 - 获取实时数据
config = {"online_tools": True}

# 离线模式 - 使用缓存数据
config = {"online_tools": False}

高级配置选项

1. 智能体权重配置

config = {
"analyst_weights": {
"fundamentals": 0.3, # 基本面分析权重
"technical": 0.3, # 技术分析权重
"news": 0.2, # 新闻分析权重
"social": 0.2, # 社交媒体分析权重
}
}

2. 风险管理配置

config = {
"risk_management": {
"risk_threshold": 0.8, # 风险阈值
"max_position_size": 0.1, # 最大仓位比例
"stop_loss_threshold": 0.05, # 止损阈值
"take_profit_threshold": 0.15, # 止盈阈值
}
}

3. 数据源配置

config = {
"data_sources": {
"primary": "finnhub", # 主要数据源
"fallback": ["yahoo", "alpha_vantage"], # 备用数据源
"cache_ttl": {
"price_data": 300, # 价格数据缓存5分钟
"fundamental_data": 86400, # 基本面数据缓存24小时
"news_data": 3600, # 新闻数据缓存1小时
}
}
}

4. 性能优化配置

config = {
"performance": {
"parallel_analysis": True, # 并行分析
"max_workers": 4, # 最大工作线程数
"timeout": 300, # 超时时间(秒)
"retry_attempts": 3, # 重试次数
"batch_size": 10, # 批处理大小
}
}

环境变量配置

必需的环境变量

# OpenAI API
export OPENAI_API_KEY="your_openai_api_key"

# FinnHub API
export FINNHUB_API_KEY="your_finnhub_api_key"

# 可选的环境变量
export ANTHROPIC_API_KEY="your_anthropic_api_key"
export GOOGLE_API_KEY="your_google_api_key"
export TRADINGAGENTS_RESULTS_DIR="/custom/results/path"

.env 文件配置

# .env 文件
OPENAI_API_KEY=your_openai_api_key
FINNHUB_API_KEY=your_finnhub_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
GOOGLE_API_KEY=your_google_api_key
TRADINGAGENTS_RESULTS_DIR=./custom_results
TRADINGAGENTS_LOG_LEVEL=INFO

配置最佳实践

1. 成本优化配置

# 低成本配置
cost_optimized_config = {
"llm_provider": "openai",
"deep_think_llm": "gpt-4o-mini",
"quick_think_llm": "gpt-4o-mini",
"max_debate_rounds": 1,
"max_risk_discuss_rounds": 1,
"online_tools": False, # 使用缓存数据
}

2. 高性能配置

# 高性能配置
high_performance_config = {
"llm_provider": "openai",
"deep_think_llm": "gpt-4o",
"quick_think_llm": "gpt-4o",
"max_debate_rounds": 3,
"max_risk_discuss_rounds": 2,
"online_tools": True,
"performance": {
"parallel_analysis": True,
"max_workers": 8,
}
}

3. 开发环境配置

# 开发环境配置
dev_config = {
"llm_provider": "openai",
"deep_think_llm": "gpt-4o-mini",
"quick_think_llm": "gpt-4o-mini",
"max_debate_rounds": 1,
"online_tools": True,
"debug": True,
"log_level": "DEBUG",
}

4. 生产环境配置

# 生产环境配置
prod_config = {
"llm_provider": "openai",
"deep_think_llm": "gpt-4o",
"quick_think_llm": "gpt-4o-mini",
"max_debate_rounds": 2,
"max_risk_discuss_rounds": 1,
"online_tools": True,
"performance": {
"parallel_analysis": True,
"max_workers": 4,
"timeout": 600,
"retry_attempts": 3,
},
"logging": {
"level": "INFO",
"file": "/var/log/tradingagents.log",
}
}

配置验证

配置验证器

class ConfigValidator:
"""配置验证器"""

def validate(self, config: Dict) -> Tuple[bool, List[str]]:
"""验证配置的有效性"""
errors = []

# 检查必需字段
required_fields = ["llm_provider", "deep_think_llm", "quick_think_llm"]
for field in required_fields:
if field not in config:
errors.append(f"Missing required field: {field}")

# 检查LLM提供商
valid_providers = ["openai", "anthropic", "google"]
if config.get("llm_provider") not in valid_providers:
errors.append(f"Invalid llm_provider. Must be one of: {valid_providers}")

# 检查数值范围
if config.get("max_debate_rounds", 1) < 1:
errors.append("max_debate_rounds must be >= 1")

return len(errors) == 0, errors

# 使用示例
validator = ConfigValidator()
is_valid, errors = validator.validate(config)
if not is_valid:
print("Configuration errors:", errors)

动态配置更新

运行时配置更新

class TradingAgentsGraph:
def update_config(self, new_config: Dict):
"""运行时更新配置"""

# 验证新配置
validator = ConfigValidator()
is_valid, errors = validator.validate(new_config)

if not is_valid:
raise ValueError(f"Invalid configuration: {errors}")

# 更新配置
self.config.update(new_config)

# 重新初始化受影响的组件
self._reinitialize_components()

def _reinitialize_components(self):
"""重新初始化组件"""
# 重新初始化LLM
self._setup_llms()

# 重新初始化智能体
self._setup_agents()

通过合理的配置,您可以根据不同的使用场景优化 TradingAgents-CN 的性能和成本。

🐳 Docker部署配置 (v0.1.7新增)

Docker环境变量

# === Docker特定配置 ===
# 数据库连接 (使用容器服务名)
MONGODB_URL=mongodb://mongodb:27017/tradingagents
REDIS_URL=redis://redis:6379

# 服务端口配置
WEB_PORT=8501
MONGODB_PORT=27017
REDIS_PORT=6379
MONGO_EXPRESS_PORT=8081
REDIS_COMMANDER_PORT=8082

📄 报告导出配置 (v0.1.7新增)

导出功能配置

# === 报告导出配置 ===
# 启用导出功能
EXPORT_ENABLED=true

# 默认导出格式 (word,pdf,markdown)
EXPORT_DEFAULT_FORMAT=word,pdf

# 导出文件路径
EXPORT_OUTPUT_PATH=./exports

# Pandoc配置
PANDOC_PATH=/usr/bin/pandoc
WKHTMLTOPDF_PATH=/usr/bin/wkhtmltopdf

🧠 LLM模型路由配置 (v0.1.7新增)

智能模型选择

# === 模型路由配置 ===
# 启用智能路由
LLM_SMART_ROUTING=true

# 默认模型优先级
LLM_PRIORITY_ORDER=deepseek,qwen,gemini,openai

# 成本控制
LLM_DAILY_COST_LIMIT=10.0
LLM_COST_ALERT_THRESHOLD=8.0

最佳实践 (v0.1.7更新)

1. 安全性

  • 🔐 API密钥保护: 永远不要将 .env 文件提交到版本控制
  • 🔒 权限控制: 设置适当的文件权限 (600)
  • 🛡️ 密钥轮换: 定期更换API密钥

2. 性能优化

  • 模型选择: 根据任务选择合适的模型
  • 💾 缓存策略: 合理配置缓存TTL
  • 🔄 连接池: 优化数据库连接池大小

3. 成本控制

  • 💰 成本监控: 设置合理的成本限制
  • 📊 使用统计: 定期查看Token使用情况
  • 🎯 模型优化: 优先使用成本效益高的模型

最后更新: 2025-07-13 版本: cn-0.1.7