What’s New

TradingAgents

AI

TradingAgents release notes.

Latest v0.3.1 · by TradingAgentsWebsiteTauricResearch/TradingAgents

Changelog

v0.3.1

TradingAgents v0.3.1

Added
  • Configurable LLM retry budget via llm_max_retries parameter and TRADINGAGENTS_LLM_MAX_RETRIES environment variable forwarded to every provider
  • Bedrock API-key authentication via AWS_BEARER_TOKEN_BEDROCK that takes precedence over ambient AWS_PROFILE
  • Latest Claude models including Claude Sonnet 5 (claude-sonnet-5) and Claude Fable 5 (claude-fable-5) with effort control coverage for the Claude 5 line
Fixed
  • Alpha Vantage look-ahead filter now runs because the fundamentals payload is JSON-serialized and the dict-only guard was skipped, allowing future-dated reports to leak into historical runs
  • News analyst prompt now matches the tool by accepting a ticker instead of advertising a free-text query parameter
  • Shared debate and risk routers no longer crash mid-run by providing every edge with the complete path map instead of returning more targets than mapped
  • Checkpoint resume now respects graph shape by folding thread id with selected analysts, debate/risk depth, and asset mode
  • Crypto sentiment sources now resolve by mapping crypto symbols correctly for StockTwits and Reddit using their respective formats
Summary

TradingAgents v0.3.1 is a correctness and stability patch on top of v0.3.0.

Fixed
  • Alpha Vantage look-ahead filter now runs. The fundamentals payload is a JSON string, so the dict-only guard silently skipped filtering and future-dated reports leaked into historical runs. (#1115, @zachthebird)
  • News analyst prompt matches the tool. It advertised get_news(query, ...) while the tool takes a ticker, so the model hallucinated free-text query calls. (#1116, @shcheuk)
  • Shared debate/risk routers can't crash mid-run. Both routers returned more targets than any one edge mapped; every edge now shares the complete path map. (#1088, @Fr3ya, @sa7an7, @Sushanth012)
  • Checkpoint resume respects graph shape. The thread id folds in selected analysts, debate/risk depth, and asset mode, so a resume under different choices no longer continues the wrong graph. (#1089, @bossjoker1, @Ghraven)
  • Crypto sentiment sources resolve. StockTwits lists crypto as <BASE>.X (Yahoo's BTC-USD 404s) and Reddit needs the base symbol; the social path now maps crypto for both. (#1113, @suremadoreai)
Added
  • Configurable LLM retry budget. llm_max_retries / TRADINGAGENTS_LLM_MAX_RETRIES, forwarded to every provider so a transient 429 burst doesn't abort a run. (#1091, @yanggaome)
  • Bedrock API-key auth. AWS_BEARER_TOKEN_BEDROCK authenticates Amazon Bedrock without AWS access keys and takes precedence over an ambient AWS_PROFILE. (#1103, @praxstack)
  • Latest Claude models. Added Claude Sonnet 5 (claude-sonnet-5) and Fable 5 (claude-fable-5); effort control now covers the Claude 5 line.

See CHANGELOG.md for the full list.

v0.3.0

TradingAgents v0.3.0

Added
  • Symbol normalization runs on every vendor path (identity, returns, CLI, news)
  • Typed VendorError taxonomy for failure reporting
  • OpenAI-compatible providers register behind a single spec with generic openai_compatible endpoint covering vLLM, LM Studio, and relays
  • Support for NVIDIA NIM, Kimi (Moonshot), Groq, and Mistral providers
  • Native Amazon Bedrock client
  • FRED macro indicators surfaced to news and macro analysts
  • Polymarket event probabilities surfaced to news and macro analysts
  • Configurable reasoning depth via TRADINGAGENTS_OPENAI_REASONING_EFFORT, TRADINGAGENTS_GOOGLE_THINKING_LEVEL, and TRADINGAGENTS_ANTHROPIC_EFFORT environment variables
  • GitHub Actions CI runs pytest suite across Python 3.10-3.13 with strict ruff and clean-install smoke tests
  • TradingAgentsGraph.save_reports() method writes report tree for headless and API runs
Changed
  • Configured vendor list is the exact resolution chain with no silent fallback to unselected vendors
  • News windows are look-ahead-safe
  • Stale OHLCV is rejected instead of reported as current
  • yfinance fetches now include the requested end date
  • Model catalog refreshed to current-generation lineups across providers
  • Explicit TRADINGAGENTS_* values or CLI flags now win over interactive defaults for debate and risk round counts, checkpoint settings, and Docker provider profile
  • Invalid boolean environment values fail loudly
  • Analyst prompts lead with the current date so tool-call date ranges anchor to the run date
  • Optional vendors degrade to a no-data sentinel instead of aborting a run
Fixed
  • Deterministic ticker-to-company resolution stops wrong-company hallucination
Removed
  • Retired gpt-4.1, Claude Sonnet 4.5, and Gemini 2.5 line from model catalog
Summary

TradingAgents v0.3.0 is a stabilization and extensibility release: a verified data-access contract, an expanded provider and data-vendor registry, a current-generation model catalog, and a CI gate.

Verified Data-Access Contract

Symbol normalization now runs on every vendor path (identity, returns, CLI, news). The configured vendor list is the exact resolution chain (no silent fallback to unselected vendors), and failures surface through a typed VendorError taxonomy. News windows are look-ahead-safe, stale OHLCV is rejected instead of reported as current, and yfinance fetches include the requested end date. A verified market-data snapshot grounds price and indicator claims, and deterministic ticker-to-company resolution stops the wrong-company hallucination.

Provider Registry

OpenAI-compatible providers register behind a single spec, and a generic openai_compatible endpoint covers vLLM, LM Studio, and relays. Adds NVIDIA NIM, Kimi (Moonshot), Groq, and Mistral, plus a native Amazon Bedrock client.

Data Vendors

FRED macro indicators and Polymarket event probabilities are surfaced to the news and macro analysts. Optional vendors degrade to a no-data sentinel instead of aborting a run.

Model Catalog

Refreshed to current-generation lineups across providers; retired gpt-4.1, Claude Sonnet 4.5, and the Gemini 2.5 line. Reasoning depth is configurable via TRADINGAGENTS_OPENAI_REASONING_EFFORT, TRADINGAGENTS_GOOGLE_THINKING_LEVEL, and TRADINGAGENTS_ANTHROPIC_EFFORT, each gated to the models that accept it.

Configuration and CLI

An explicit TRADINGAGENTS_* value or CLI flag now wins over interactive defaults for debate and risk round counts, --checkpoint / --no-checkpoint, and the Docker provider profile; invalid boolean env values fail loudly. Analyst prompts lead with the current date so tool-call date ranges anchor to the run date.

Tooling

GitHub Actions runs the pytest suite across Python 3.10-3.13, strict ruff, and a clean-install smoke that imports the package and CLI. TradingAgentsGraph.save_reports() writes the same report tree the CLI produces, for headless and API runs.

See CHANGELOG.md for the full list, including contributor acknowledgments.

v0.2.5

TradingAgents v0.2.5

Added
  • MiniMax provider support with full M2.x catalog (204K context) and dual-region configuration via MINIMAX_API_KEY and MINIMAX_CN_API_KEY
  • Dual-region Qwen and GLM support with separate keys per region (DASHSCOPE_* and ZHIPU_*) selectable via secondary region prompt
  • Structured output support for DeepSeek V4/reasoner and MiniMax M2.x by automatically skipping tool_choice in the binding flow
  • TRADINGAGENTS_* environment variables that override DEFAULT_CONFIG keys with type-aware coercion for llm_provider, model IDs, backend_url, output_language, debate-round counts, checkpoint flag, and benchmark ticker
  • API key auto-detection and persistence to .env when a selected provider's key is missing, allowing CLI to continue without restart
  • Remote Ollama support via OLLAMA_BASE_URL for both CLI and programmatic usage with resolved endpoint display and malformed input warnings
  • Custom model ID option for Ollama to select any pulled model
  • News-fetch parameters (per-ticker article limit, macro headline limit, lookback window, macro search queries) now exposed via DEFAULT_CONFIG for strategy-specific tuning
Changed
  • Sentiment Analyst now reads real Yahoo News, StockTwits, and Reddit data before generating its report instead of potentially fabricating social posts
  • Model catalog refresh across all providers including GPT-5.5, Claude Opus 4.7, Gemini 3.1 Flash-Lite GA, Grok 4.20, and Qwen 3.6 line
  • Alpha computation now uses regional benchmarks for non-US tickers (.NS for ^NSEI, .T for ^N225, .HK for ^HSI, .L for ^FTSE, .TO for ^GSPTSE, .AX for ^AXJO, .BO for ^BSESN) to eliminate FX drift in alpha figures
  • output_language setting now propagates to all user-facing agents including researchers, risk debators, research manager, and trader for complete localization
Fixed
  • pip install . installations now pick up the project .env when running the CLI as a console script
  • Reports save end-to-end with streamed chunks no longer dropped from complete_report.md
  • Ticker prompt now preserves exchange suffixes (.SH, .SZ, .SS, .HK, .T, etc.)
  • Docker permission errors no longer block first-run write to ~/.tradingagents/
  • Config state no longer leaks between runs when sub-dicts are mutated
  • max_recur_limit config now applies to the propagator
  • Missing-API-key error now names the exact environment variable to set
Security
  • Add ticker path-traversal validation at every filesystem-path site
Summary

TradingAgents v0.2.5 ships the grounded Sentiment Analyst, Qwen/GLM/MiniMax dual-region support, `TRADINGAGENTS_*` env-var configurability with API-key auto-detection, remote Ollama support, configurable alpha benchmarks for non-US tickers, and a ticker path-traversal fix.

Sentiment Analyst

The renamed Sentiment Analyst now reads real Yahoo News, StockTwits, and Reddit data before generating its report, replacing the prior flow that could fabricate social posts under prompt pressure. The new name flows through the CLI dropdown, status panel, and final reports; `AnalystType.SOCIAL = "social"` is kept for saved-config back-compat.

Provider Coverage
  • MiniMax with the full M2.x catalog (204K context), plus dual-region Global (`MINIMAX_API_KEY`) and China (`MINIMAX_CN_API_KEY`).
  • Dual-region Qwen and GLM with separate keys per region (`DASHSCOPE_`, `ZHIPU_`), chosen via a secondary region prompt so the main provider dropdown stays clean.
  • Catalog refresh across every provider: GPT-5.5 frontier, Claude Opus 4.7, Gemini 3.1 Flash-Lite GA, Grok 4.20, Qwen 3.6 line. Versioned IDs only; auto-shifting aliases moved to a "Custom model ID" option.
  • Structured output now works on DeepSeek V4 / reasoner and MiniMax M2.x — those providers reject `tool_choice`; the binding flow now skips it automatically.
Configuration via Environment

`TRADINGAGENTS_*` env vars override `DEFAULT_CONFIG` keys with type-aware coercion (string / int / bool) — `llm_provider`, deep/quick model IDs, `backend_url`, `output_language`, debate-round counts, the checkpoint flag, and the benchmark ticker. When a selected provider's API key is missing, the CLI prompts for it and persists the value to `.env` so the run continues without restart.

Ollama

`OLLAMA_BASE_URL` makes remote `ollama-serve` first-class for both the CLI and programmatic users. The CLI prints the resolved endpoint after selecting Ollama and warns on common malformed inputs. A new "Custom model ID" option lets users pick any model they have pulled via `ollama pull`.

Reflection

Alpha is now computed against a regional benchmark for non-US tickers — `.NS` (^NSEI), `.T` (^N225), `.HK` (^HSI), `.L` (^FTSE), `.TO` (^GSPTSE), `.AX` (^AXJO), `.BO` (^BSESN), SPY for US listings. Eliminates FX drift dominating the alpha figure for non-USD listings. `benchmark_ticker` overrides the suffix map when set explicitly.

News-fetch parameters (per-ticker article limit, macro headline limit, lookback window, macro search queries) are now exposed via `DEFAULT_CONFIG` for strategy-specific tuning.

Multi-language

`output_language` now propagates to every user-facing agent — researchers, risk debators, research manager, and trader — ending the previous partial-localization reports where only analysts and the portfolio manager respected the setting.

Fixes
  • Security: ticker path-traversal validation at every filesystem-path site.
  • `pip install .` installations now pick up the project `.env` when running the CLI as a console script.
  • Reports save end-to-end — streamed chunks were previously dropped from `complete_report.md`.
  • Ticker prompt preserves exchange suffixes (`.SH`, `.SZ`, `.SS`, `.HK`, `.T`, etc.).
  • Docker permission errors no longer block first-run write to `~/.tradingagents/`.
  • Config state no longer leaks between runs when sub-dicts are mutated.
  • `max_recur_limit` config actually applies to the propagator.
  • Missing-API-key error names the exact env var to set.
  • Quieter startup — suppressed the noisy upstream langgraph-checkpoint deprecation warning.

See CHANGELOG.md for the full per-item list with PR / issue references.

v0.2.4

TradingAgents v0.2.4

Added
  • Structured-output decision agents using llm.with_structured_output(Schema) for Research Manager, Trader, and Portfolio Manager that return typed Pydantic instances
  • Automatic selection of each provider's native structured-output mode (json_schema for OpenAI/xAI, response_schema for Gemini, tool-use for Anthropic, function-calling for OpenAI-compatible providers)
  • Opt-in checkpoint resume via --checkpoint flag with per-ticker SQLite databases under ~/.tradingagents/cache/checkpoints/
  • Persistent decision log that stores decisions automatically and resolves prior pending entries with realised return, alpha vs SPY, and reflection on next same-ticker run
  • DeepSeek, Qwen (Alibaba DashScope), GLM (Zhipu), and Azure OpenAI providers
  • Dynamic OpenRouter model selection
  • Docker support with multi-stage build for cross-platform deployment
Changed
  • Five-tier rating scale (Buy / Overweight / Hold / Underweight / Sell) used consistently across Research Manager, Portfolio Manager, signal processor, and memory log
  • Default backend_url is now None so each provider client falls back to its native endpoint instead of using OpenAI URL
  • Cache and log directories moved to ~/.tradingagents/ to resolve Docker permission issues
  • SignalProcessor reads rating from rendered Portfolio Manager markdown via deterministic heuristic instead of extra LLM call per analysis
  • OpenAI structured-output calls default to method="function_calling" to avoid noisy Pydantic serialization warnings
Fixed
  • Empty memory no longer triggers fabricated past-lessons due to redesigned memory layer
  • Windows users no longer hit UnicodeEncodeError by making all file I/O pass explicit encoding="utf-8"
  • Tool-call logging processes every chunk message and memory score normalization handles empty arrays
Removed
  • Per-agent BM25 memory replaced by persistent decision log
Summary

TradingAgents v0.2.4 ships structured-output decision agents, opt-in checkpoint resume, a persistent decision log with outcome-grounded reflections, four new LLM providers, and a Docker image.

Structured-Output Decision Agents
  • Research Manager, Trader, and Portfolio Manager use llm.with_structured_output(Schema) on their primary call and return typed Pydantic instances.
  • Each provider's native structured-output mode is selected automatically (json_schema for OpenAI / xAI, response_schema for Gemini, tool-use for Anthropic, function-calling for OpenAI-compatible providers).
  • Render helpers preserve the existing markdown shape, so memory log, CLI display, and saved reports keep working unchanged.
  • Five-tier rating scale (Buy / Overweight / Hold / Underweight / Sell) used consistently across Research Manager, Portfolio Manager, signal processor, and the memory log.
Persistence & Recovery
  • LangGraph checkpoint resume via --checkpoint. State is saved after each node so crashed or interrupted runs resume from the last successful step. Per-ticker SQLite databases under ~/.tradingagents/cache/checkpoints/.
  • Persistent decision log replaces the per-agent BM25 memory. Decisions are stored automatically at the end of every analysis; the next same-ticker run resolves prior pending entries with realised return, alpha vs SPY, and a one-paragraph reflection.
  • Optional memory_log_max_entries config caps resolved entries; pending entries are never pruned.
Provider Coverage
  • DeepSeek, Qwen (Alibaba DashScope), GLM (Zhipu), and Azure OpenAI providers added.
  • Dynamic OpenRouter model selection.
  • Default backend_url is now None so each provider client falls back to its native endpoint instead of leaking the OpenAI URL into Gemini and other clients.
Cross-Platform & Deployment
  • Docker support with multi-stage build for cross-platform deployment.
  • Cache and log directories moved to ~/.tradingagents/ to resolve Docker permission issues.
  • All file I/O passes explicit encoding="utf-8", so Windows users no longer hit UnicodeEncodeError.
Stability
  • Empty memory no longer triggers fabricated past-lessons; the redesigned memory layer makes this structurally impossible.
  • SignalProcessor reads the rating from the rendered Portfolio Manager markdown via a deterministic heuristic, eliminating an extra LLM call per analysis.
  • OpenAI structured-output calls default to method="function_calling" to avoid noisy Pydantic serialization warnings from langchain-openai's Responses-API parse path.
  • Tool-call logging processes every chunk message; memory score normalization handles empty arrays.
  • Pytest fixtures (lazy LLM client imports plus placeholder API keys) so the test suite runs cleanly without credentials.
Acknowledgments

We thank the community contributors who shaped this release. The full list is in the CHANGELOG.

v0.2.3

TradingAgents v0.2.3

Added
  • Output language selection in CLI with support for 11 languages and custom input
  • Support for GPT-5.4 Mini and GPT-5.4 Nano models
  • Proxy and custom base URL support for Google and Anthropic clients
  • Model validation warnings for unrecognized model names
Changed
  • Analyst reports and final decision are rendered in the selected output language
  • Unified model catalog as single source of truth for CLI and validation
  • Date-aware data fetching across all OHLCV, fundamentals, and news endpoints for backtesting
  • Shared caching per symbol for efficient batch backtesting
  • Unified api_key parameter across all providers (Google, Anthropic, OpenAI)
  • CLI step reordering for improved user flow
Fixed
  • Rate limit retry coverage for yfinance news endpoints
  • Graceful handling of invalid indicator names in tool calls
Summary

TradingAgents v0.2.3 adds multi-language output, GPT-5.4 family models, and improved backtesting fidelity.

Multi-Language Support
  • Output language selection in CLI (Step 3) with 11 languages and custom input
  • Analyst reports and final decision rendered in the selected language
  • Internal agent debate remains in English for reasoning quality
Model Coverage
  • GPT-5.4 Mini and GPT-5.4 Nano support
  • Unified model catalog as single source of truth for CLI and validation
  • Model validation warnings for unrecognized model names
Backtesting Fidelity
  • Date-aware data fetching across all OHLCV, fundamentals, and news endpoints
  • Shared caching per symbol for efficient batch backtesting
Provider Integration
  • Unified api_key parameter across all providers (Google, Anthropic, OpenAI)
  • Proxy and custom base URL support for Google and Anthropic clients
  • Graceful handling of invalid indicator names in tool calls
Stability
  • Rate limit retry coverage for yfinance news endpoints
  • CLI step reordering for improved user flow
v0.2.2

TradingAgents v0.2.2

Added
  • Five-tier rating scale with Buy, Overweight, Hold, Underweight, and Sell categories including structured executive summary and investment thesis
  • Portfolio manager as the standardized final decision agent
  • OpenAI Responses API support across all native models
  • Anthropic effort level control for Claude 4.5+ and 4.6
  • Exchange-qualified ticker support including CNC.TO, 7203.T, and 0700.HK formats
Changed
  • Unified response normalization across OpenAI, Google, and Anthropic providers
  • Consolidated dependency management
  • CLI progress tracking and portability improvements
Fixed
  • Cross-platform UTF-8 consistency
Summary

TradingAgents v0.2.2 introduces a professional five-tier rating framework, unified LLM provider integration, and improved system reliability.

Decision Framework
  • Five-tier rating scale (Buy / Overweight / Hold / Underweight / Sell) with structured executive summary and investment thesis
  • Portfolio manager as the standardized final decision agent
Provider Integration
  • OpenAI Responses API support across all native models
  • Anthropic effort level control for Claude 4.5+ and 4.6
  • Unified response normalization across OpenAI, Google, and Anthropic
  • Exchange-qualified ticker support (e.g. CNC.TO, 7203.T, 0700.HK)
Reliability
  • Cross-platform UTF-8 consistency
  • Consolidated dependency management
  • CLI progress tracking and portability improvements
v0.2.1

TradingAgents v0.2.1

Added
  • OpenAI GPT-5.4 and GPT-5.4 Pro support with 1M token context
  • Anthropic Claude Opus 4.6 and Sonnet 4.6 support
  • Google Gemini 3.1 Pro and 3.1 Flash Lite support
Changed
  • Streamlined model selection with intuitive ordering in CLI
Fixed
  • Resilient stock data parsing with automatic handling of malformed CSV and NaN values
  • Robust indicator tool that gracefully handles comma-separated inputs from LLMs
  • Complete debate state initialization preventing KeyError in edge-case configurations
  • Configurable debate rounds now correctly passed through to ConditionalLogic
  • Cross-platform UTF-8 file encoding for Windows compatibility
  • Fixed pip install package metadata
Removed
  • Deprecated model entries
Security
  • Dependency vulnerability patched (CVE-2026-22218)
Summary

TradingAgents v0.2.1 brings expanded model coverage, improved robustness, and security hardening.

Model Coverage
  • OpenAI GPT-5.4 and GPT-5.4 Pro support with 1M token context
  • Anthropic Claude Opus 4.6 and Sonnet 4.6 support
  • Google Gemini 3.1 Pro and 3.1 Flash Lite support
  • Streamlined model selection with intuitive ordering in CLI
Robustness
  • Resilient stock data parsing with automatic handling of malformed CSV and NaN values
  • Robust indicator tool that gracefully handles comma-separated inputs from LLMs
  • Complete debate state initialization preventing KeyError in edge-case configurations
  • Configurable debate rounds now correctly passed through to ConditionalLogic
  • Cross-platform UTF-8 file encoding for Windows compatibility
Security
  • Dependency vulnerability patched (CVE-2026-22218)
Maintenance
  • Triaged 93 open PRs, closing resolved and stale submissions
  • Cleaned up deprecated model entries
  • Fixed pip install package metadata
v0.2.0

TradingAgents v0.2.0

Added
  • Multi-provider LLM support with factory pattern supporting OpenAI, Google, Anthropic, xAI, OpenRouter, and Ollama
  • Provider-specific thinking and reasoning configurations
  • Post-analysis report saving with organized subfolder structure
Changed
  • Replace ChromaDB with BM25 for memory retrieval
  • Rename risky and safe agents to aggressive and conservative to align with industry standard
Fixed
  • Streaming display truncation and message deduplication
Summary

TradingAgents v0.2.0 introduces multi-provider LLM support and system architecture improvements.

Features
  • Multi-provider LLM support with factory pattern (OpenAI, Google, Anthropic, xAI, OpenRouter, Ollama)
  • Provider-specific thinking/reasoning configurations
  • Post-analysis report saving with organized subfolder structure
Improvements
  • Fixed streaming display truncation and message deduplication
  • Replace ChromaDB with BM25 for memory retrieval
  • Renamed risky/safe agents to aggressive/conservative aligning with industry standard
  • Codebase cleanup and documentation updates