Skip to content
← All coverage

Coverage note · Markets & Research · Investment Research · Agentic AI

DELPHI — Multi-Agent Equity Research

Seven agents argue over every name: four specialists, an adversary with objection rights, an auditor with a veto. Only what survives gets published.

Personal projectHugging Face SpacesDemo being restored · live from Hugging Face

Key metrics

Debate panel7 agents · Director, 4 specialists, Adversary with objection rights, Auditor with veto
Convictiontransparent formula · base agreement − standing objection weights − citation penalty
Calculation boundarydeterministic engine, zero LLM · DCF, comps, DuPont/Altman/Piotroski, sensitivity + Monte Carlo; 68 pytest tests
CoverageUS + European listed names · keyless SEC EDGAR, Yahoo, FRED, StockTwits; 6 offline fixtures

1. Agents make judgments; engines make calculations: every figure in a note comes from the deterministic engine (DCF with CAPM WACC, comps with winsorization, ratio suite, sensitivity grids and Monte Carlo; 68 pytest tests over engine + data layer), never from the LLM. The Compliance Auditor enforces citations and verifies numbers against the fact store before publication, with one revision loop; conviction = base agreement − standing objection weights − citation penalty.

The problem

The way large language models fail at finance is specific: a confident model recalls a plausible but wrong figure, and nothing in a single-pass pipeline exists to catch it. Real sell-side research solved this problem long before AI did, structurally: specialists draft, a skeptic challenges, and compliance gates what gets published.

DELPHI replicates that adversarial workflow as architecture. A Research Director scopes the engagement, four specialists (fundamentals, valuation, sentiment, macro) research in parallel against real document sets, an Adversary files weighted objections the specialists must rebut with engine reruns and primary-source citations, and a Compliance Auditor holds a veto over publication.

Architecture

  1. 01

    Data layer, keyless and cached

    Adapter-pattern providers: SEC EDGAR submissions, yfinance market data, FRED macro series, StockTwits sentiment — every source free or free-tier, behind a sqlite TTL cache, with six rich offline fixtures (NVDA, TSLA, MSFT, AAPL, AMZN, GOOGL) guaranteeing the demo works with zero connectivity.

  2. 02

    Deterministic engine, zero LLM

    DCF (FCF build, CAPM WACC, Gordon + exit-multiple terminal value), comps with winsorization, ratio suite (DuPont, Altman Z, Piotroski F, cash-conversion cycle), sensitivity grids, tornado and Monte Carlo — pytest-covered, 68 tests over engine and data layer.

  3. 03

    The debate protocol

    A state machine, not a prompt: PLAN -> PARALLEL_RESEARCH -> ADVERSARY_ROUND_1 -> REBUTTAL -> ADVERSARY_ROUND_2 (max two rounds) -> SYNTHESIS -> AUDIT -> PUBLISH or one REVISE loop. Streamed live over SSE into a debate theater UI.

  4. 04

    Conviction as arithmetic

    conviction = base agreement across specialists − Σ(standing objection weights) − citation penalty. A transparent formula, recomputed every round — not a vibe the model reports.

  5. 05

    The audit gate

    A Compliance Auditor enforces citations and verifies every number in the draft against the fact store before publication; failure loops back exactly once for revision.

  6. 06

    Dual research note

    Machine-readable JSON plus a rendered editorial page: football field, scenario surface, Monte Carlo distribution, global exposure map, debate transcript and risk register.

Key tradeoffs

Agents make judgments; engines make calculations — the boundary between the two is the architecture.

WhyThe LLM never produces a number, so a hallucinated figure structurally cannot reach a published note. Every figure traces to a deterministic, tested engine run.

An Adversary with formal objection rights, and conviction scored by a transparent formula.

WhySilent consensus is the failure mode of committee AI. Objections carry weights, rebuttals require engine reruns and citations, and unresolved objections mechanically lower conviction.

Simulation mode is the default: data-grounded personas, no API key required.

WhyEvery figure still comes from the real engine run and objections fire from rule triggers on the actual numbers — so NVDA argues about terminal-value dependence while TSLA argues about margin compression, fully offline, in about 45 seconds.

Honest coverage boundaries on free data.

WhyCoverage means publicly listed companies (US plus European exchanges via keyless EDGAR/Yahoo sourcing); domicile geography is labeled honestly where segment disclosure is not parsed, and FX is converted into the quote currency, pence included.

Eval results

68 tests
Engine test suite

pytest over the deterministic engine and data layer: DCF, comps, ratios, scenarios, providers and cache; the engine is the only source of numbers in any note.

citation + numeric verification
Publication audit

The Compliance Auditor checks every claim for a citation and every figure against the fact store before publish; one revision loop on failure.

transparent formula
Conviction scoring

base agreement − standing objection weights − citation penalty, recomputed each debate round and shown in the note.

~45 s
Full debate runtime

Simulation mode on offline fixtures, end to end from PLAN to PUBLISH.

Production proof

The artifact that keeps the numbers honest: the eval harness and monitoring gates that run in CI, not a one-off notebook result.

Numbers from engines, publication behind an audit

CI · PASSING
Figures from the deterministic engineengine-only numbers
Audit before publishcitations + fact-store verification
Adversary roundsobjections priced into conviction

Research-workflow demonstration on public data — not investment advice, and conviction is a process score, not a return forecast.

Brings the structure that makes human equity research trustworthy — specialists, a skeptic with standing, a compliance gate — to agentic AI, so what gets published has survived an argument and a numeric audit on keyless public data.

Request coverage

I am focused on finance AI: credit risk, RegTech, AML, and agentic investment research. Open to roles, mentorship, and collaborators in fintech, quant, and bank AI.