Data & Analysis financial-tradingmarket-analysismulti-agent-debaterisk-assessmentportfolio-decisionslanggraphbacktestingsentiment-analysis

TradingAgents Financial Research Framework

Specialized agents collaborate on market research, trading decisions, and risk approval.

FollowAgents review · FARS-2.1
Recommended
76/ 100 5-point scale 3.8 / 5
1 2 3 4 5 6
1Trust18 / 29 · 3.1/5

The README clearly identifies external model and market-data providers, required credentials, remote endpoints, local persistence paths, simulated execution, and checkpoint behavior, earning strong data-flow transparency. Local Ollama and an optional Bedrock extra show some privilege minimization, but the base installation still carries many network-facing dependencies and no fine-grained permission model is shown. Secrets are supplied through environment variables or credential chains, and tests substitute placeholders; however, there is no guidance on rotation, log redaction, or dedicated secret storage. The CLI solicits initial choices and the portfolio manager approves simulated transactions, but there is no demonstrated user confirmation before each external request or persistent write. External API calls, an append-only decision log, and optional SQLite checkpoints are documented. Checkpoints can be cleared and are removed after success, while appended memory records have no documented undo. Dependencies use open-ended lower bounds without a lockfile or vulnerability-scanning evidence, so dependency security is thin. Paper authors and citation details provide attribution, although publisher identity remains unverified and the materials do not establish a legal maintainer identity.

2Reliability11 / 14 · 3.9/5

The README, package metadata, CI, and tests are strongly consistent about supported Python versions, entry points, dependencies, and core behavior. Focused regressions cover request timeouts, invalid-key classification, rate limits, and historical look-ahead leakage. CI spans Python 3.10–3.13, performs a clean-install import, and runs strict linting, adequately supporting ordinary dependency availability; open-ended versions and reliance on numerous third-party APIs prevent full credit. Tests demonstrate distinct Alpha Vantage configuration and rate-limit failures, and resume messages are documented, but consistent diagnostics and fallback behavior across the full provider graph are not shown.

3Adaptability16 / 18 · 4.4/5

The project clearly targets financial research and documents US, international-exchange, and crypto scenarios through CLI, Python, Docker, local-model, cloud-model, Azure, and Bedrock paths. Its research-only status, non-advice boundary, nondeterminism, live-data drift, and lack of guaranteed backtest returns are explicit. Users can precisely select ticker, date, provider, model, research depth, and debate rounds; however, the evidence does not fully define internal tool-selection, stopping, or refusal triggers. Python 3.10–3.13 support, environment-variable overrides, proxy-compatible endpoints, remote Ollama, and regional provider variants provide thorough environment fit.

4Convention16 / 18 · 4.4/5

The README has clear sections for architecture, roles, installation, CLI use, package integration, persistence, recovery, reproducibility, contribution, and citation. Installation and Docker instructions are concrete, and package, command, and configuration naming remains stable across the supplied files. Examples cover primary workflows, but there is no dedicated FAQ or systematic troubleshooting section. Known limitations are handled thoroughly, especially the research positioning, sampling variability, changing live data, and non-guaranteed returns. A complete Apache-2.0 license is present. Version 0.3.1 agrees between metadata and release news, with a referenced changelog, but the changelog itself was not supplied for verification. Community links, contribution guidance, and named paper authors provide an update path, while explicit maintainer duties, a security-reporting route, and support commitments are absent.

5Effectiveness9 / 13 · 3.5/5

Combining fundamental, sentiment, news, and technical analysis with adversarial research, trading, risk, and portfolio roles offers clear marginal value as a research scaffold. The README shows progressive CLI reporting and a Python API that returns a decision, but supplies neither a stable output schema nor a complete representative result, limiting downstream usability. Research depth and separate quick/deep models permit some resource tradeoff, yet there are no token, latency, request-volume, or monetary cost estimates, so cost-benefit handling is thin.

6Verifiability6 / 8 · 3.8/5

Several important claims are traceable to package configuration, CI, and focused regression tests, including the version, Python support, installation entry point, timeouts, error classification, and look-ahead filtering. Broader claims about agent capability, verified data, and correctness remain largely README assertions. README, pyproject, CI, and tests cross-corroborate installation and selected reliability claims, but the omitted changelog, implementation modules, and wider test suite prevent thorough corroboration. The source carefully separates described mechanisms from expected nondeterminism, moving live inputs, and unsupported inferences about fixed investment returns, earning full credit for fact-inference separation.

Evidence confidence: Low Reviewed Aug 14, 2026 Reviewed revision a33fd4c0f134
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • This is a non-executed static review; trading-decision quality, runtime safety, and third-party service behavior were not verified.
  • The tool sends queries to multiple external model and data providers; review each provider's retention, privacy, and regional-compliance terms before using real data.
  • The decision log is written locally by default and reused in later prompts; it may contain sensitive research, while encryption, redaction, and automatic retention controls are not documented.
  • Dependencies have open-ended minimum versions and no lockfile or software bill of materials; pin and scan the resolved environment before deployment.
  • Outputs are research artifacts and should not directly control real-money trading; the README explicitly disclaims guaranteed performance and reproducibility.
Review evidence [1][2][3][4][5][6][7][8]
See the full review method →

What does this agent do, and when should you use it?

TradingAgents is a LangGraph-based financial research framework organized like a trading firm, with analyst, researcher, trader, risk-management, and portfolio-manager roles. It consumes company fundamentals, prices and technical indicators, news, macroeconomic information, and sentiment from StockTwits and Reddit before bullish and bearish researchers debate the evidence. A Trader Agent synthesizes the reports into a proposed action, while the risk team evaluates factors such as volatility and liquidity and the Portfolio Manager approves or rejects the proposal; approved orders execute on a simulated exchange. Users can run it through an interactive CLI, call `TradingAgentsGraph.propagate()` from Python, or deploy it with Docker. It supports numerous hosted model providers, local Ollama models, and arbitrary OpenAI-compatible endpoints, with a persistent decision log and optional LangGraph checkpoint recovery. The project is a research scaffold rather than financial advice, and its outputs and backtests can vary with model sampling, live data, dates, and data quality.

During a run, the Fundamentals Analyst examines financial statements and performance metrics; the Sentiment Analyst aggregates headlines, StockTwits, and Reddit discussion; the News Analyst interprets global news and macroeconomic indicators; and the Technical Analyst uses indicators such as MACD and RSI. Bullish and bearish researchers then conduct a structured debate over the analyst reports. The Trader Agent combines their work into a decision covering trade direction, timing, and magnitude. The risk-management team assesses volatility, liquidity, and other risks before the Portfolio Manager gives final approval or rejection; an approved order is executed by the simulated exchange. In Python, users instantiate TradingAgentsGraph and call propagate("NVDA", "2026-01-15"); the tradingagents and python -m cli.main commands expose ticker, analysis-date, provider, and research-depth choices interactively. Completed decisions are appended to ~/.tradingagents/memory/trading_memory.md, and later runs can incorporate realized raw return, alpha versus SPY, and historical reflections. With --checkpoint, node state is stored in per-ticker SQLite databases so interrupted graph executions can resume.

  1. A quantitative or financial researcher comparing language models on the same security can pin an analysis date and vary the deep model, quick model, temperature, and debate rounds.
  2. An investment-research team prototyping a fundamentals, technical, news, and sentiment workflow can reuse the supplied analyst roles, bull-versus-bear debate, and risk-approval graph.
  3. A Python developer embedding collaborative market analysis in a research application can call TradingAgentsGraph.propagate() for a specified ticker and date.
  4. A researcher studying non-US securities or cryptocurrency can use Yahoo Finance formats such as 0700.HK, 7203.T, 600519.SS, and BTC-USD.
  5. A user running lengthy or failure-prone analyses can enable checkpoint recovery and use the persistent decision log to carry prior same-ticker outcomes and cross-ticker lessons into later work.
  6. A team avoiding dependence on one model vendor can configure hosted adapters, AWS Bedrock, local Ollama, or an OpenAI-compatible vLLM, LM Studio, or llama.cpp server.

What are this agent's strengths and limitations?

Pros
  • The role design covers an explicit end-to-end decision chain: four analyst specialties, opposing researchers, a trader, a risk team, and a final portfolio manager.
  • Provider and deployment coverage is broad, including major hosted APIs, Azure OpenAI, AWS Bedrock, local Ollama, and OpenAI-compatible services such as vLLM, LM Studio, and llama.cpp.
  • It offers an interactive CLI, a Python package interface, and Docker deployment, supporting both experimentation and programmatic integration.
  • Its state features suit extended research: the decision log records outcomes and reflections, while optional checkpoints resume from the latest successful LangGraph node.
  • It accepts international and cryptocurrency symbols covered by Yahoo Finance and resolves company identity and the alpha benchmark per market.
Limitations
  • It is a research framework, not financial advice or a strategy with guaranteed returns; backtests are not promised to match published figures.
  • Runs for the same ticker and date can differ because model calls are nondeterministic, and reasoning-oriented models may ignore temperature controls.
  • News, StockTwits, and Reddit inputs change over time, so pinning a historical analysis date does not freeze every input.
  • Hosted models and some data vendors require separate credentials, network access, and potentially paid usage; supporting many providers adds configuration overhead.
  • Approved proposals execute only on a simulated exchange; the supplied material does not document live brokerage connectivity.

How do you install or deploy this agent?

Python 3.12 is documented. Run:

git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
conda create -n tradingagents python=3.12
conda activate tradingagents
pip install .

Configure credentials for the selected model and data services. For an OpenAI setup, set OPENAI_API_KEY, and configure ALPHA_VANTAGE_API_KEY when using Alpha Vantage. Alternatively, run cp .env.example .env and fill in the required keys. Anthropic, Google, xAI, DeepSeek, Qwen, GLM, MiniMax, and OpenRouter use the provider-specific environment variables documented in the supplied source. For AWS Bedrock, install pip install ".[bedrock]", configure AWS credentials and AWS_DEFAULT_REGION, and select a Bedrock model ID. For Docker, populate .env and run docker compose run --rm tradingagents; the Ollama profile is launched with docker compose --profile ollama run --rm tradingagents-ollama.

How do you use this agent?

For a first interactive run, execute tradingagents or run python -m cli.main from the source tree, then select a ticker, analysis date, LLM provider, and research depth.

A minimal Python invocation is:

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)

A copied configuration can set llm_provider, deep_think_llm, quick_think_llm, max_debate_rounds, and temperature. For local Ollama, use llm_provider: "ollama"; its default endpoint is http://localhost:11434/v1. For vLLM, LM Studio, llama.cpp, or a custom relay, select llm_provider: "openai_compatible" and configure backend_url or TRADINGAGENTS_LLM_BACKEND_URL. Run tradingagents analyze --checkpoint to enable recovery, or tradingagents analyze --clear-checkpoints to remove all saved checkpoints before a run.

FAQ

Will it place trades with real money?
No live execution is documented. Approved proposals are sent to a simulated exchange, and the source provides no evidence of a real-broker integration.
Is OpenAI required?
No. Supported paths include OpenAI, Google, Anthropic, xAI, DeepSeek, Qwen, GLM, MiniMax, OpenRouter, Azure OpenAI, AWS Bedrock, local Ollama, and arbitrary OpenAI-compatible endpoints.
What determines operating cost?
The source states no fixed price. Cost depends on the selected hosted model and data services, research depth, debate rounds, and call volume. Local models reduce reliance on hosted inference but still require compute and data access.
Can an interrupted run resume?
Recovery is opt-in. With --checkpoint or checkpoint_enabled, LangGraph saves state after each node and resumes from the last successful step. Checkpoints are cleared automatically after successful completion.
Are results fully reproducible?
No. A fixed date stabilizes the price and indicator window, and a lower temperature may reduce variation for models that honor it, but model sampling and changing news or social inputs can still alter results.

Related agents