TradingAgents: A Multi-Agent LLM Framework for Market Research and Simulated Trading
TradingAgents coordinates specialized language-model agents for market research, debate, risk review, and simulated trading decisions.
At a glance
- What is it?
- TradingAgents is an open-source Python framework that coordinates specialized language-model agents across fundamental analysis, sentiment research, technical analysis, debate, risk review, and final trade decisions. It is designed for research into LLM-based trading workflows and carries an explicit disclaimer that it is not financial advice.
- Who is it for?
- TradingAgents is suited for researchers and engineers who want to study how LLM agent coordination affects simulated trading decisions, and for teams building custom financial analysis pipelines that can route data through specialized models. It is not suitable for anyone seeking a production trading system, an investment tool, or a service that makes real trades.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What TradingAgents Is and Its Research Scope
TradingAgents describes itself as a multi-agent trading framework that mirrors the dynamics of real-world trading firms. Rather than asking a single language model to evaluate a stock and produce a trade signal, the framework decomposes the task into a pipeline of specialized agents, each modeled after a distinct role in a trading firm.
The project page at arxiv.org/abs/2412.20138 is listed as the homepage in the repository metadata, indicating an academic origin. A second technical report, Trading-R1, is also referenced in the changelog. This academic framing is important: the framework is designed to support research into agent coordination and financial reasoning, and the README includes a direct disclaimer that it is not intended as financial, investment, or trading advice.
The primary audience is researchers studying multi-agent systems and financial language model applications, and engineers who want to build custom market analysis pipelines from composable LLM-powered components.
The Eight Specialized Agent Roles
The framework decomposes trading decisions across four analyst agents, two researcher agents, a trader agent, and a risk and portfolio management layer.
The Analyst Team consists of four agents. The Fundamentals Analyst evaluates company financials and performance metrics to identify intrinsic value signals and potential red flags. The Sentiment Analyst aggregates news headlines, StockTwits posts, and Reddit discussion into a single sentiment reading to gauge short-term market mood. The News Analyst monitors global news and macroeconomic indicators and interprets the impact of events on market conditions. The Technical Analyst applies indicators such as MACD and RSI to detect trading patterns and forecast price movements.
The Researcher Team comprises a bullish researcher and a bearish researcher who engage in structured debate over the analyst outputs, balancing potential gains against inherent risks. The Trader Agent then composes reports from both teams to make a trading decision, determining timing and magnitude. Finally, the Risk Management team continuously evaluates portfolio risk by assessing market volatility and liquidity, and submits an assessment report to the Portfolio Manager, who makes the final approval or rejection of each proposed transaction.
Installation and Configuration
TradingAgents is a Python package requiring Python 3.10 or higher. The pyproject.toml defines the package as:
[project]
name = "tradingagents"
version = "0.5.1"
requires-python = ">=3.10"Docker is the recommended deployment path for teams. The docker-compose.yml at the repository root defines the main service:
services:
tradingagents:
build: .
env_file:
- .env
volumes:
- tradingagents_data:/home/appuser/.tradingagents
tty: true
stdin_open: trueConfiguration is driven by environment variables. The repository root contains a .env.example file that shows the expected variables. The v0.2.5 changelog introduced TRADINGAGENTS_* environment variable configurability with API-key auto-detection. An optional bedrock extra is available for Amazon Bedrock support, declared in pyproject.toml as pip install "tradingagents[bedrock]". The CLI entry point is the tradingagents command, defined in pyproject.toml as cli.main:app.
LangGraph Orchestration and Provider Support
The agent workflow is orchestrated using LangGraph, with langgraph>=0.4.8 and langgraph-checkpoint-sqlite>=2.0.0 listed as core dependencies in pyproject.toml. LangGraph provides a graph-based execution model that allows the framework to route agent outputs through a defined sequence, support checkpoint-based resume when a run is interrupted, and maintain a persistent decision log.
The v0.4.0 changelog introduced look-ahead and point-in-time fixes across FRED macroeconomic data, social sentiment, and the decision-log memory. The v0.5.0 release added point-in-time integrity across every dated data path and SEC EDGAR fundamentals served as filed, which addresses a core research validity concern: ensuring that backtests do not use data that was unavailable at the decision time.
Supported LLM providers as of v0.5.1 include OpenAI (GPT-6 Sol and Luna as defaults), Anthropic, Google, Grok, NVIDIA, Kimi, Groq, Mistral, Bedrock, and any OpenAI-compatible endpoint. The v0.3.0 release established a verified data-access contract and an expanded provider registry. This breadth of provider support means a team can run the same agent graph against different backbone models to compare outputs.
Limitations: Non-Determinism, Data Costs, and Research-Only Design
The README explicitly states that trading performance may vary based on the chosen backbone language model, model temperature, trading periods, data quality, and other non-deterministic factors. This is a structural limitation: because the agents make decisions by generating text, the same market conditions processed twice will not necessarily produce the same trade signal.
The framework connects to multiple external data providers, including yfinance, FRED, Polymarket, Alpha Vantage, and StockTwits, each of which may require API keys and may charge usage fees. Running the framework at scale for backtesting across many tickers and date ranges can accumulate costs across these providers that are not capped by the framework itself.
The v0.5.0 backtesting feature introduced a ticker and date grid, enabling more systematic evaluation, but backtesting results are subject to the same non-determinism as live runs. The framework does not place real trades. Any interpretation of its output as actual investment advice contradicts its stated purpose and its homepage disclaimer.
TradingAgents Compared to Single-Model Trading Scripts
A common approach to LLM-based market analysis is to pass a stock ticker, some news, and a prompt to a single model and ask for a buy or sell signal. This is simpler to implement but does not separate the concerns of fundamental analysis, sentiment reading, technical analysis, and risk evaluation.
TradingAgents' architecture is deliberately more complex. The benefit is that each agent can be configured with a different model, temperature, or prompt, and the bull-versus-bear researcher debate introduces a structured adversarial review step before a decision is made. The cost is significantly higher LLM token consumption per decision, since each run involves at least eight agent calls plus any debate iterations.
For teams that need to evaluate a handful of tickers daily, this cost is manageable. For teams that want to screen hundreds of tickers simultaneously, the per-decision token cost makes the framework expensive to operate at scale, and the latency of sequential agent calls adds further overhead.
Version History, Maintenance, and License
The last push to TauricResearch/TradingAgents was on 2026-09-25, with v0.5.1 released on 2026-09-24. The project has moved through major version increments since 2026-02, adding multi-provider LLM support in v0.2.0, structured-output agents and Docker in v0.2.4, a verified data-access contract in v0.3.0, and point-in-time backtesting integrity in v0.5.0. The pace of releases indicates a project that is receiving regular attention from its maintainers.
The project is licensed under Apache-2.0, which permits use, modification, and distribution, including commercial use, with attribution. The license does not restrict research or internal deployment.
The bedrock optional dependency, available via pip install "tradingagents[bedrock]", keeps the core installation lean by making Amazon Bedrock support optional. This pattern suggests the maintainers are conscious of dependency weight for users who do not need AWS-specific features.
Editorial conclusion
TradingAgents is suited for researchers and engineers who want to study how LLM agent coordination affects simulated trading decisions, and for teams building custom financial analysis pipelines that can route data through specialized models. It is not suitable for anyone seeking a production trading system, an investment tool, or a service that makes real trades. Before running it against real market data, review your data provider API key costs carefully: the framework connects to multiple external services, and fees accumulate with each run.
Frequently asked questions
How do you use TradingAgents?
After installing the package and configuring a .env file with the required LLM provider API keys, the tradingagents CLI command starts an interactive session. Docker is the recommended deployment path using the docker-compose.yml at the repository root.
How do you install TradingAgents?
TradingAgents requires Python 3.10 or higher. The package name is tradingagents as defined in pyproject.toml. Amazon Bedrock support is available as an optional extra. The repository also includes a Dockerfile and docker-compose.yml for container-based installation.
Does TradingAgents make real trades or guarantee profitable results?
No. The README states explicitly that TradingAgents is designed for research purposes and is not intended as financial, investment, or trading advice. Trading performance depends on the backbone model, model temperature, trading period, and data quality, among other non-deterministic factors.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tauricresearch-tradingagents)
Community notes