217 lines
5.8 KiB
Markdown
217 lines
5.8 KiB
Markdown
# Configuration Guide
|
|
|
|
TradingAgents supports configuration through multiple methods with the following priority:
|
|
|
|
**Priority (highest to lowest):**
|
|
1. Environment variables
|
|
2. `config.ini` file
|
|
3. Built-in defaults
|
|
|
|
## Quick Start
|
|
|
|
### Option 1: Using config.ini (Recommended)
|
|
|
|
1. Copy the example configuration:
|
|
```bash
|
|
cp config.example.ini config.ini
|
|
```
|
|
|
|
2. Edit `config.ini` with your preferences:
|
|
```ini
|
|
[llm]
|
|
provider = openai
|
|
deep_think_llm = o1-mini
|
|
quick_think_llm = gpt-4o-mini
|
|
|
|
[analysis]
|
|
research_depth = 1
|
|
default_analysts = market,news,social
|
|
|
|
[data]
|
|
global_news_limit = 15
|
|
```
|
|
|
|
3. Run the CLI - it will use your defaults and skip prompting for configured values:
|
|
```bash
|
|
uv run python -m cli.main
|
|
```
|
|
|
|
### Option 2: Using Environment Variables
|
|
|
|
Set environment variables in your shell or `.env` file:
|
|
|
|
```bash
|
|
export LLM_PROVIDER=openai
|
|
export DEEP_THINK_LLM=o1-mini
|
|
export QUICK_THINK_LLM=gpt-4o-mini
|
|
export RESEARCH_DEPTH=1
|
|
export GLOBAL_NEWS_LIMIT=20
|
|
```
|
|
|
|
## Configuration Options
|
|
|
|
### LLM Settings
|
|
|
|
| Config Key | Env Variable | Description | Default |
|
|
|------------|--------------|-------------|---------|
|
|
| `provider` | `LLM_PROVIDER` | LLM provider (openai, anthropic, google, ollama) | `openai` |
|
|
| `backend_url` | `LLM_BACKEND_URL` | API endpoint URL | `https://api.openai.com/v1` |
|
|
| `deep_think_llm` | `DEEP_THINK_LLM` | Model for complex analysis (gpt-5, o1, o3, etc.) | `o1-mini` |
|
|
| `quick_think_llm` | `QUICK_THINK_LLM` | Model for simple tasks (gpt-5, gpt-4o-mini, etc.) | `gpt-4o-mini` |
|
|
|
|
### Analysis Settings
|
|
|
|
| Config Key | Env Variable | Description | Default |
|
|
|------------|--------------|-------------|---------|
|
|
| `research_depth` | `RESEARCH_DEPTH` | Depth level (1=shallow, 2=medium, 3=deep) | `1` |
|
|
| `default_analysts` | `DEFAULT_ANALYSTS` | Comma-separated list of analysts | `market,news,social` |
|
|
|
|
### Data Settings
|
|
|
|
| Config Key | Env Variable | Description | Default |
|
|
|------------|--------------|-------------|---------|
|
|
| `global_news_limit` | `GLOBAL_NEWS_LIMIT` | Number of global news articles to fetch | `15` |
|
|
| `commodity_news_limit` | `COMMODITY_NEWS_LIMIT` | Number of commodity news articles | `50` |
|
|
|
|
### Data Vendors
|
|
|
|
Configure which data sources to use:
|
|
|
|
| Config Key | Env Variable | Description | Options |
|
|
|------------|--------------|-------------|---------|
|
|
| `stock` | `DATA_VENDOR_STOCK` | Stock price data | yfinance, alpha_vantage |
|
|
| `indicators` | `DATA_VENDOR_INDICATORS` | Technical indicators | yfinance, alpha_vantage |
|
|
| `fundamentals` | `DATA_VENDOR_FUNDAMENTALS` | Fundamental data | alpha_vantage, openai |
|
|
| `news` | `DATA_VENDOR_NEWS` | News data | alpha_vantage, openai, google |
|
|
| `commodity` | `DATA_VENDOR_COMMODITY` | Commodity data | alpha_vantage |
|
|
|
|
## Examples
|
|
|
|
### Example 1: Minimal config.ini for quick daily use
|
|
|
|
```ini
|
|
[llm]
|
|
provider = openai
|
|
deep_think_llm = o1-mini
|
|
quick_think_llm = gpt-4o-mini
|
|
|
|
[analysis]
|
|
research_depth = 1
|
|
default_analysts = market,news
|
|
```
|
|
|
|
**Result:** When you run the CLI, you'll **only be prompted for**:
|
|
- ✅ Ticker symbol
|
|
- ✅ Analysis date
|
|
|
|
**Auto-configured (no prompts)**:
|
|
- ✅ LLM provider (OpenAI)
|
|
- ✅ Models (o1-mini & gpt-4o-mini)
|
|
- ✅ Research depth (Shallow)
|
|
- ✅ Analysts (Market & News)
|
|
|
|
Everything else uses your configured defaults!
|
|
|
|
### Example 2: Using GPT-5
|
|
|
|
```ini
|
|
[llm]
|
|
provider = openai
|
|
deep_think_llm = gpt-5
|
|
quick_think_llm = gpt-5
|
|
|
|
[analysis]
|
|
research_depth = 2
|
|
default_analysts = market,news,social
|
|
```
|
|
|
|
### Example 3: Power user with custom news limits
|
|
|
|
```ini
|
|
[llm]
|
|
provider = anthropic
|
|
deep_think_llm = claude-3-5-sonnet-20241022
|
|
quick_think_llm = claude-3-5-haiku-20241022
|
|
|
|
[analysis]
|
|
research_depth = 3
|
|
default_analysts = market,news,social,fundamentals
|
|
|
|
[data]
|
|
global_news_limit = 30
|
|
commodity_news_limit = 100
|
|
|
|
[vendors]
|
|
news = openai
|
|
stock = alpha_vantage
|
|
```
|
|
|
|
### Example 4: Using environment variables
|
|
|
|
```bash
|
|
# In your ~/.zshrc or ~/.bashrc
|
|
export LLM_PROVIDER=openai
|
|
export DEEP_THINK_LLM=o1-mini
|
|
export QUICK_THINK_LLM=gpt-4o-mini
|
|
export GLOBAL_NEWS_LIMIT=20
|
|
```
|
|
|
|
## Configuration Priority Example
|
|
|
|
If you have:
|
|
- `config.ini` with `global_news_limit = 15`
|
|
- Environment variable `GLOBAL_NEWS_LIMIT=30`
|
|
|
|
The system will use **30** (environment variable wins).
|
|
|
|
## How It Works
|
|
|
|
When you run the CLI with a `config.ini` file, you'll see output like this:
|
|
|
|
```
|
|
Step 1: Ticker Symbol
|
|
Enter the ticker symbol to analyze
|
|
> AAPL
|
|
|
|
→ Detected asset class: Equity
|
|
|
|
Step 2: Analysis date
|
|
Enter the analysis date (YYYY-MM-DD)
|
|
> 2025-01-15
|
|
|
|
→ Using configured analysts: market, news, social
|
|
→ Using configured research depth: Shallow
|
|
→ Using configured LLM provider: OPENAI (https://api.openai.com/v1)
|
|
→ Using configured models:
|
|
Quick thinking: gpt-4o-mini
|
|
Deep thinking: o1-mini
|
|
```
|
|
|
|
The `→` lines show values being used from your config, skipping the prompts!
|
|
|
|
## Tips
|
|
|
|
1. **Start with config.ini** - Easier to manage than environment variables
|
|
2. **Use env vars for secrets** - Keep API keys in environment variables, not config files
|
|
3. **Version control** - Add `config.ini` to `.gitignore`, commit `config.example.ini`
|
|
4. **Test changes** - Run CLI after changing config to verify your settings work
|
|
5. **Partial config is OK** - You can configure only some values; the rest will be prompted
|
|
|
|
## Troubleshooting
|
|
|
|
**CLI still prompts for everything:**
|
|
- Check that `config.ini` exists in the TradingAgents directory
|
|
- Verify the file has the correct structure (see `config.example.ini`)
|
|
- Check for typos in section names and keys
|
|
|
|
**Wrong model being used:**
|
|
- Check priority: env vars override config.ini
|
|
- Verify model names match your provider's API exactly
|
|
- Check logs for which config values are being loaded
|
|
|
|
**News limit not working:**
|
|
- Limits are read from config on each run
|
|
- Clear Python cache: `find . -type d -name "__pycache__" -exec rm -rf {} +`
|
|
- Check the tool logs to see what limit is actually being used
|
|
|