Support different LLM providers/models per agent for true multi-model debate
The problem
TradingAgents supports multiple LLM providers and API keys, but the current configuration uses a single llm_provider and only separates models into quick_think_llm and deep_think_llm.
As a result, agents that are supposed to debate each other are usually powered by the same underlying model.
For example:
- Bull Researcher → quick_thinking_llm
- Bear Researcher → quick_thinking_llm
- Aggressive Analyst → quick_thinking_llm
- Neutral Analyst → quick_thinking_llm
- Conservative Analyst → quick_thinking_llm
This means the debate is mainly different prompts/personas of the same model, rather than independent reasoning from different LLMs.
For a multi-agent framework, it would be useful to allow different agents to use different models and even different providers.
For example:
- Bull Researcher → OpenAI / GPT
- Bear Researcher → Anthropic / Claude
- Research Manager → DeepSeek
- Aggressive Analyst → Gemini
- Conservative Analyst → Qwen
- Portfolio Manager → OpenAI / GPT
Different model families have different reasoning styles, biases, strengths, and weaknesses. Allowing heterogeneous LLMs could make the debate more diverse and potentially reduce correlated reasoning errors.
Proposed change
Support optional per-agent or per-role LLM configuration, while keeping the current llm_provider, quick_think_llm, and deep_think_llm behavior as the default for backward compatibility. The goal is to allow different agents participating in the same workflow to use different LLM providers and models. For example, the Bull Researcher could use OpenAI, the Bear Researcher could use Anthropic, the Research Manager could use DeepSeek, and the risk debate agents could each use different model families. This should apply especially to debate-oriented roles such as Bull vs. Bear researchers and Aggressive vs. Neutral vs. Conservative risk analysts. When multiple providers are configured, users should be able to assign them independently instead of forcing all debate participants to share the same underlying model. A simple configuration layer could allow users to select a provider and model for each agent or role. If no custom assignment is provided, TradingAgents should continue using the existing quick-thinking and deep-thinking model configuration exactly as it does today. This would preserve the current simple setup for most users while enabling true multi-agent, multi-model debate for users who configure multiple LLM providers. Since TradingAgents already supports multiple LLM providers and API keys, this feature could reuse the existing provider abstraction without requiring new provider integrations.
Alternatives considered
No response
Source: TauricResearch/TradingAgents