No. 02 · Established 2026 · Iffeldorf, DE
Forezai
TradingAgents · LLM Multi-Agent Stock Research
Apache-2.0 · Fork of TauricResearch/TradingAgents · Paper-trading by design
⚠ Research project — paper-trading by default. If you enable a live broker, real orders are placed and real money can be lost. Not financial advice.

Stock research run by a committee of LLMs.

Forezai · TradingAgents is a fork of TauricResearch/TradingAgents with an autonomous paper-trading loop bolted on top. 13 LLM agents — analysts, bull/bear debate, a three-voice risk team, and a portfolio-manager decision layer — vote on a 5-tier rating per ticker. A scheduler fires daily across a watchlist; an auto-trader maps ratings to paper orders; a position manager exits on take-profit, stop-loss, or max-hold.

Everything is paper by default. The Alpaca live endpoints are hard-refused at multiple layers — you have to deliberately override that to risk real money. 510+ passing tests across the engine, services, and HTTP routes.

LANGCHAIN · LANGGRAPH · FASTAPI · REACT · CODEX OAUTH · APACHE-2.0
§ 01 — What it is

An open-source committee of LLM analysts.

Each run pushes a ticker through five parallel analyst agents (market structure, news, fundamentals, social sentiment, and a Kronos price-forecast analyst). Their outputs feed a bull/bear debate, which feeds a trader synthesis, which feeds a three-voice risk team (aggressive · conservative · neutral). A portfolio manager arbitrates the entire stack into a final 5-tier rating with a price target and a time horizon. The Forezai fork wraps that pipeline in an autonomous loop so research, decision, execution, and exit happen on a schedule without human approval — paper-trading only by default.

⚠ Editorial note — read this carefully

Multi-agent LLM systems are not oracles. Each agent has its own biases — recency bias on news, sentiment-anchoring on social, anchoring on prior earnings on fundamentals, and most of all model hallucination. The bull/bear debate and three-voice risk team are explicitly designed to expose those biases; the system does not promise to eliminate them.

The autonomous loop's job is to make the system's output measurable, not to make it trustworthy by default. Every rating, every order, every exit is written to an append-only audit log. Every closed trade is journaled with realised P&L and alpha versus a benchmark (SPY for equities, BTC-USD for crypto). When the system loses money, the journal makes it impossible to pretend it didn't.

The Kronos analyst is honesty in practice. Kronos is a financial foundation model we first tested in the sibling Polybot project — where, as a probability forecaster, it tied but did not beat a century-old Brownian formula and was not deployed. Its directional signal was the part that held up, so here it appears as a 5th analyst that contributes a vote to the debate — explicitly not trusted for calibrated odds, only for direction. A model that failed one job is used narrowly for the one thing it does well, and the committee can outvote it.

If you are looking for a strategy you can switch on with real money, this is not it. If you are looking for an honest research platform to investigate whether multi-agent LLM committees can do something useful, you may find it useful.

13
Agent roles
analysts + debate + risk + decision
5
Analyst tools
market · news · fundamentals · social · kronos
3
Risk voices
aggressive · conservative · neutral
5
Rating tiers
Buy / Over / Hold / Under / Sell
510+
Unit tests
engine + services + HTTP
$0
LLM cost floor
free via Codex OAuth + ChatGPT Pro
§ 02 — How it works

Four layers. One audit log each.

TradingAgents' autonomous loop is intentionally split into four loosely-coupled layers — each with its own JSONL audit file. A bug in one layer cannot silently corrupt another. Real-money safety features (cooldown gate, sector cap, per-position cap, kill switch, live-endpoint refusal) sit in the auto-trader layer, where they belong.

01

Engine

Per-run LangGraph orchestration in tradingagents/graph/trading_graph.py. Walks the ticker through five analysts in parallel, the bull/bear debate, the trader synthesis, the three-voice risk team, and finally the portfolio manager. Output: a 5-tier rating with a price target and a time horizon — plus a structured report.

02

Scheduler

Daily fires across a configured watchlist. Equities use the NYSE calendar; crypto bypasses it for 24/7 coverage. Skips fundamentals-analyst on crypto (no balance sheets to analyse). Every fire writes to scheduler_audit.jsonl; the dashboard shows the schedule as a calendar.

03

Auto-trader

Maps the engine's rating to a target % allocation. Filters by allow-list, cooldown gate (24 h per ticker by default), sector cap (30 % default via GICS), cash check, then places a paper order. Every decision — including skips and rejections — lands in auto_trader_audit.jsonl. Live broker endpoints are hard-refused at save and at init.

04

Position manager

Every 60 seconds, evaluates every open position for take-profit (8 % default), stop-loss (4 % default), and max-hold (10 days default). Exits via paper SELL, then writes a closed-trade entry with realised P&L, exit reason, and alpha vs SPY (or BTC-USD for crypto). All exits land in position_manager_audit.jsonl + closed_trades.jsonl.

§ 03 — The committee

Four kinds of voice, one decision.

The engine's design choice is structural: rather than ask one LLM "should we buy this?", route the question through specialised roles whose biases differ, then make those biases argue in public. The portfolio-manager agent only sees the arguments, never the raw data, which forces the committee to articulate its reasoning rather than rely on what a single context window happens to recall.

Role 01

Analysts

Four agents in parallel. Market analyst on structure + momentum. News analyst on the recent flow + insider activity. Fundamentals analyst on the balance sheet + earnings. Social-media analyst on community sentiment. Each writes a short structured report.

Role 02

Bull / Bear debate

Two researchers argue opposing theses from the analyst reports. A research-manager agent arbitrates and writes a single "research direction" output — the synthesis the trader will execute against. This is where weak analyst conclusions get tested.

Role 03

Risk team

Three risk debators — aggressive (looks for upside, accepts variance), conservative (looks for downside, protects capital), neutral (balances). Forces the system to explicitly articulate downside before any order is placed.

Role 04

Decision layer

Two-stage final call. The trader agent produces a 3-tier proposal (Buy / Hold / Sell). The portfolio manager synthesises everything into the final 5-tier rating (Buy · Overweight · Hold · Underweight · Sell) with a price target and time horizon. Output is structured Pydantic for deterministic downstream handling.

§ 3½ — The findings, charted

What the committee actually did.

Every number below is from the autonomous loop's real closed-trades journal (~/.tradingagents/closed_trades.jsonl) — actual paper trades the 13-agent committee decided, executed, and exited on its own. No illustrative or placeholder data. Like Polybot, the honest result is uncomfortable.

53
closed paper trades
28%
win rate (15 wins / 38 losses)
−$884
total realized P&L (paper)
−1.27%
average return per trade
Where the money went — by exit reason
Stop-losses dominate the damage; four take-profits and a flat batch of time-stops can't offset them.
$0 stop-loss · 25 −$1,313.80 max-holding · 24 +$20.56 (flat) take-profit · 4 +$408.94
Both directions lost — by entry rating
The committee's bullish and bearish calls were both net-negative. Conviction did not translate into edge.
$0 OVERWEIGHT · 41 −$624.90 · 32% WR UNDERWEIGHT · 12 −$259.39 · 17% WR
The honest read

A 13-agent LLM committee — five analysts including a Kronos forecast, a bull/bear debate, a three-voice risk team, and a portfolio manager — produced a 28% win rate and −$884 over 53 real paper trades. The same conclusion Polybot reached by a different route: sophisticated machinery does not, by itself, beat the market. The committee makes the failure measurable and auditable — which is the actual product. This is research, not an income tool, and it is not encouraged for real-money use.

§ 04 — What the Forezai fork adds

Beyond the upstream framework.

The upstream TauricResearch/TradingAgents ships the agent graph. The Forezai fork adds everything needed to run that graph on autopilot, observe its results honestly, and never accidentally trade real money — plus a few quality-of-life additions for cost-conscious operators.

Add 01

Codex OAuth

Runs the engine on your ChatGPT Pro subscription via the Codex OAuth backend. Zero marginal LLM cost if you already have ChatGPT Pro. Token stored encrypted locally; falls back to the OpenAI API if you'd rather pay per token.

Add 02

Shadow broker

Three paper-broker modes: local (yfinance fills, JSON-persisted), Alpaca paper (real Alpaca paper account), and shadow (mirrors both in parallel, exposes a divergence view). Live Alpaca endpoints are hard-refused at multiple layers.

Add 03

Multi-channel alerts

Slack · Discord · SMTP email. Configurable filter on rating events and order fills. Append-only history at ~/.tradingagents/alerts_history.jsonl. Webhook URLs masked in API responses for screenshot safety.

Add 04

Performance dashboard

FastAPI + React (via CDN, no Node toolchain). SVG equity curve, rolling-peak drawdown, top winners / losers tables, win-rate by rating / ticker / model, exit-reason breakdown, LLM cost vs realised P&L joined by run_id. Time-range pills: 1D / 1W / 1M / 3M / All.

Add 05

MCP plug-ins

Registry for adding Anthropic FSI MCP servers (Kensho, Aiera, FactSet, Morningstar, LSEG, etc.) as additional analyst tools. Each plug-in advertises its category (fundamentals / news / market / social). Probe endpoint tests credentials + lists available tools.

Add 06

Sector overlay

GICS sector classification with Defense / ETF / Crypto carve-outs. max_sector_pct cap (default 30 %) prevents the auto-trader from concentrating into one sector. Sector-distribution view in the dashboard.

Add 07

24/7 crypto loop

Crypto tickers bypass the NYSE calendar. Fundamentals-analyst is skipped (no balance sheet). Benchmark is BTC-USD instead of SPY. Asset-class routing is automatic — no manual flag per ticker.

Add 08

Disclaimer + traceability

Every report prepends "Research, not advice" and appends a footer with version · commit · provider · models · run-id · cost. Closed trades carry the same metadata, so a result can always be traced back to the exact code + model that produced it.

§ 05 — Open source

Built in the open. Apache-2.0.

TradingAgents is a fork of TauricResearch/TradingAgents — the upstream's Apache-2.0 license is preserved in this fork. The Forezai additions live alongside the upstream code, fully audit-loggable, with 510+ passing unit tests covering the engine, services, and HTTP routes. The whole stack runs locally — no cloud, no data-leak surface, no usage telemetry sent home.

§ 06 — About

Who's behind this.

Thorsten Meyer
Munich · Iffeldorf, Bavaria
Germany

ThorstenMeyerAI.com

Full address & contact details
are listed on the Imprint page
(legally required, deliberate).

Thorsten Meyer is a Munich-based futurist, post-labor economist, and recipient of OpenAI's 10 Billion Token Award. He spent two decades managing €1B+ portfolios in enterprise ICT before deciding that writing about the transition was more useful than managing quarterly slides through it. More at ThorstenMeyerAI.com.

TradingAgents is the second product under the Forezai umbrella, alongside Polybot (the prediction-markets bot). Built with explicit credit to TauricResearch/TradingAgents upstream; the Forezai fork adds the autonomous loop, the web UI, the multi-broker abstraction, and the operational scaffolding around it.

Companion projects: ThorstenMeyerAI.com (essays on the post-labor transition) and DojoClaw (the AI content engine behind 450+ magazines).

Read this before you run anything against a live broker

TradingAgents is paper-trading by design. Alpaca's live endpoints are hard-refused at multiple layers — save-time, broker-init time, and per-order time. To actually risk real money you must deliberately override all three. If you do, real orders are placed and real money can be lost — to LLM hallucination, model bias, market drift between decision and fill, exchange outages, or simple operator error. The software is provided as is with no warranty. This is research, not investment advice; no one on this site is a licensed financial advisor.