TradingAgents
TL;DR
TradingAgents is a Python framework from Tauric Research that simulates a trading firm with LLM agents on LangGraph: analysts, bull and bear researchers, a trader, risk debaters and a portfolio manager reach a decision for one ticker and date. It is specific to financial trading research; the README says it is for research and is not financial advice.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Python |
| License | Apache-2.0 |
| Pricing model | Open source, free |
| Orchestration pattern | Crew / roles |
| GitHub stars | 109,321 (as of 2026-09-30) |
| GitHub forks | 20,996 |
| Last push | 2026-09-29 |
| Latest release | v0.5.2 |
| Repository | TauricResearch/TradingAgents |
| Website | tauric.ai |
| Last verified | 2026-09-30 |
Key features
- Role agents mirror a trading firm: Fundamentals, Sentiment, News and Technical analysts, bullish and bearish researchers, a trader, risk-management debaters and a portfolio manager who approves or rejects the proposal. (source)
- The selected analysts run at the same time, and the researcher debate starts once all their reports are in (parallel analysts since v0.5.2). (source)
- The graph is built with LangGraph: analysts, a bull and bear debate loop, a Research Manager, a Trader, aggressive, neutral and conservative risk debaters, then the Portfolio Manager. (source)
- Debate length is configurable (
max_debate_rounds, risk-discussion rounds) and each analyst's tool calls are capped bymax_tool_rounds. (source) - Point-in-time data handling: US statements come from SEC EDGAR as filed, and a run dated in the past reads them as they stood that day; sources that cannot date data are withheld. (source)
- Providers include OpenAI, Google, Anthropic, xAI, DeepSeek, Qwen, GLM, MiniMax, OpenRouter, Ollama and any OpenAI-compatible endpoint, plus AWS Bedrock as an extra. (source)
- A memory log records each decision and, on the next run for the same ticker, adds realised return and a reflection to the Portfolio Manager's prompt; opt-in LangGraph checkpoints resume interrupted runs. (source)
tradingagents backtestruns the pipeline over a ticker and date grid and scores decisions on alpha against a regional benchmark. (source)
Architecture and orchestration pattern
Pattern: Crew / roles
TradingAgents is a Python package (Python 3.11 or later) with a Typer and Rich command line and a TradingAgentsGraph class. propagate(ticker, date) runs one LangGraph pipeline and returns the final state and a rating. The domain is financial trading research: agents call data tools for prices, indicators, fundamentals, news, social posts and macro series, and the output is a report tree plus a decision for the simulated exchange.
The graph has fixed roles. Selected analysts run in parallel, each with its own tools. A Bull and a Bear Researcher debate for a configured number of rounds, a Research Manager decides, and a Trader drafts a proposal. Aggressive, Neutral and Conservative risk analysts then discuss it, and a Portfolio Manager approves or rejects it. Agents talk through shared graph state, not free chat.
State is LangGraph state per run, optional SQLite checkpoints per ticker, and an append-only Markdown memory log under ~/.tradingagents/memory that feeds past decisions and reflections into later runs for the same ticker. Two model tiers are configured: a quick-thinking model for routine steps and a deep-thinking model for research and portfolio decisions.
Human in the loop
unknown for approvals during a run: the README documents no human approval or interrupt step inside the agent graph; the Portfolio Manager is an agent that approves or rejects the proposal and sends an order to a simulated exchange. Humans choose the ticker, date, analysts, provider, models and debate rounds in the interactive CLI or by flags and TRADINGAGENTS_* variables, can supply a portfolio file so agents work against a real book, and can enable checkpoint resume after a crash.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Unknown | Not mentioned in the README or CHANGELOG; GitHub code search for mcp in the repository returned nothing. |
| A2A | Unknown | Not mentioned in the README or CHANGELOG; GitHub code search for a2a and agent2agent returned nothing. |
| AG-UI | Unknown | Not mentioned in the README or CHANGELOG; GitHub code search for ag-ui returned nothing, and TradingAgents is not in the AG-UI README integration list. |
Best for
- Researching how role-based LLM agents with debates behave on market analysis, with fixed roles and reproducible reports. (shortlist)
- Back-testing a multi-agent analysis pipeline over a ticker and date grid, with point-in-time data handling.
- Comparing LLM providers and local models (Ollama, vLLM, LM Studio) on the same financial-analysis workflow.
- Studying how portfolio context and memory of past decisions change agent outputs.
Not for
- Live trading or investment decisions; the README says it is designed for research purposes and is not intended as financial, investment or trading advice.
- General-purpose multi-agent applications; the roles, data tools and outputs are specific to trading analysis.
- Runs that must be exactly repeatable; the README says results vary with model sampling and live data.
Quickstart
pip install . git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
python -m venv .venv && source .venv/bin/activate # Python 3.11 or later
pip install .
export OPENAI_API_KEY=<your-key> # or another provider's key
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai"
config["max_debate_rounds"] = 1
ta = TradingAgentsGraph(debug=True, config=config)
state, decision = ta.propagate("NVDA", "2026-09-01") # ticker, analysis date
print(decision)
Common pitfalls
- Needs Python 3.11 or later; install from a clone with
pip install .(Bedrock needspip install ".[bedrock]"). - A provider API key is required (for example OPENAI_API_KEY); the default models are GPT-6 Sol and Luna. Alpha Vantage, FRED and TypeSafe keys are optional.
- v0.5.1 reorganised the package layout and moved import paths, so code written for earlier versions may need imports updated.
- SEC asks for a contact address: set
SEC_EDGAR_USER_AGENTto your own. - Runs vary between executions because of model sampling and live news and social data; reasoning models largely ignore temperature.
- Past-dated runs withhold data sources that cannot date their figures (for example Yahoo statements and insider trades).
Pros
- Fixed, inspectable role structure (analysts, debates, manager, trader, risk team) makes agent contributions easy to trace in the saved reports. (source)
- Point-in-time handling and a backtest command support evaluating decisions over historical dates. (source)
- Many LLM providers and local endpoints work behind one configuration key. (source)
- Checkpoint resume and a persistent decision log are built in. (source)
- Apache-2.0 licensed and released frequently, with a per-release CHANGELOG. (source)
Cons
- The project's statement: the framework is designed for research purposes and is not intended as financial, investment or trading advice; its disclaimer says the Research is for research and educational purposes only. (source)
- The README says two runs of the same ticker and date can differ because of model sampling and live data, and that backtest results are not guaranteed to match any published figure. (source)
- The v0.5.1 release moved import paths, a breaking change for code written against earlier versions. (source)
- Roles, tools and outputs are specific to financial analysis, so the framework does not transfer to other domains without rewriting. (source)
- No documentation of MCP, A2A or AG-UI support was found in the README or CHANGELOG. (source)
Alternatives
FAQ
What is TradingAgents for?
Researching multi-agent LLM analysis of financial markets. Agents with roles such as analyst, researcher, trader, risk debater and portfolio manager produce a decision for a ticker and date, which is sent to a simulated exchange.
Can I use it for real trading or investment advice?
The project says no: the README states it is designed for research purposes and not intended as financial, investment or trading advice, and its disclaimer says the Research is for research and educational purposes only.
Does TradingAgents use LangGraph?
Yes. The README says it was built with LangGraph, and pyproject.toml lists langgraph and langchain packages as dependencies.
Does it support MCP, A2A or AG-UI?
No support was found in the README, CHANGELOG or repository code search, so all three are recorded as unknown.