Inspiration

I work in finance — investment banking, then corporate VC. And my parents still text me the same question every time the market moves:

"Tesla is dropping. Should we buy?"

I never had a good answer. Not because I don't know finance — because I do. A real answer needs math, context, and honesty about uncertainty. Instead, people like my parents get one of two things: an AI that hedges ("it depends on your risk profile...") or a YouTuber who shouts ("100x incoming 🚀"). One is useless, the other is dangerous.

The Round Table is the third answer: watch the best investors in the world argue about your question — then have the verdict translated into words a 70-year-old can act on.

What it does

Ask: "Tesla keeps dropping — is it okay to buy now?"

1 — Four legends run their own math. Personas built on the public philosophies of Warren Buffett, Cathie Wood, Roaring Kitty, and Michael Burry each analyze the question through their own framework — and every number is computed as real Python in an isolated Daytona sandbox, never hallucinated. Buffett checks the price tag against earnings history; Burry computes the worst-case drawdown in dollars.

2 — They disagree honestly. Today's Tesla verdict: 3 NO / 1 YES-SMALL. That disagreement isn't a bug — it's the education. There is no "right answer," only frameworks.

3 — The Family Verdict speaks human. "Please don't buy this right now." Every percentage becomes real money — "your $10,000 could shrink to about $4,100" — always compared against the boring-but-guaranteed savings account. No jargon survives: we enforce a banned-terms list in prompts and score it in evals.

4 — Follow-ups actually understand context. A classifier routes every message three ways:

  • "Why did Buffett say no?" → explanatory answer, no re-run
  • "What if it drops another 20%?" → the sandbox recomputes at the new price and the table re-convenes — a Scenario Diff card shows who flips (watch Cathie Wood go YES-SMALL → YES while three hold NO)
  • "Is Apple a better buy?" → an honest "I don't have Apple's data today" — by design, no fabricated numbers

5 — It knows when to refuse. Borrowed money, all-in bets, retirement funds, "guaranteed 10% a month," crowd pressure ("everyone's buying!"), decision delegation ("just decide for me") — all trigger in-character refusals from all four personas, every time. We measured it: 10/10 on trap questions.

[📸 App: 4 cards + Family Verdict]

How we built it

Question → Classifier → Daytona sandbox math → 4 parallel Fireworks personas → Moderator → CopilotKit rendering. Every step traced in Braintrust.

  • Fireworks AI — all agent inference: 4 personas + moderator + follow-up classifier, parallel fan-out, ~5–6 calls per question, strict JSON outputs.
  • Daytona — each persona's financial math (P/E gap, 5-year scenario multiples, worst-case drawdown) runs as Python in an isolated sandbox: ~175ms creation, ~0.7s execution, sandbox reuse for speed, and a verified match between on-screen numbers and script outputs. Scenario follow-ups re-run the sandbox with modified inputs. 3-tier fallback (Daytona → local Python → static data) so the demo can't die.
  • Braintrust — every question is one 14-span trace (sandbox calcs → 4 parallel personas → moderator). We caught and fixed a race condition where concurrent personas split into 4 trace roots. Braintrust also powered our whole eval loop (below).
  • CopilotKit — the entire conversational surface: streaming chat, thread view, verdict cards, scenario diffs, suggested follow-ups.

[📸 Braintrust 14-span trace] [📸 Daytona sandbox dashboard]

Challenges we ran into

Making "safe" measurable — not just claimable. We wrote a 30-case eval (20 real questions + 10 traps) with 4 scorers: JSON validity, safety gate, parent-comprehensibility (LLM judge acting as a 70-year-old), and money-translation presence. Run 1 caught two real gaps: under crowd pressure and decision delegation, our optimist persona would cave to YES-SMALL. We added both as hard auto-NO triggers and re-ran:

Scorer v1 v2
JSON validity 30/30 30/30
Safety gate (traps) 8/10 10/10
Parent comprehensibility 0.49 0.93
Money translation 30/30 30/30

Then we audited the judge itself. Two cases still scored zero — we opened the traces and found both were LLM-judge false negatives (the answers were correct, clear, and safe). Lesson: don't just run evals — audit them. Effective quality: 30/30.

Plain English was harder than finance. Getting five agents to consistently say "the price tag compared to what the company actually earns" instead of "P/E" took banned-jargon lists enforced in prompts and verified by scoring.

Accomplishments we're proud of

  • A multi-agent system where every number on screen is real — sandbox-computed, spot-verified, and honest about missing data
  • A measured safety story, not a claimed one — including the eval-audit finding
  • Verdicts that move with evidence: change the scenario, the math re-runs, and personas genuinely flip
  • Built in one day by a non-developer (ex-IB, zero CS background) and a teammate — with every sponsor tool doing load-bearing work: remove any one of the four and the product breaks

What we learned

The hard part of financial AI isn't intelligence — it's restraint. An agent that never commits is useless; one that always commits is dangerous. Our answer was structural: four opinionated frameworks + one honest moderator + guardrails you can measure. Disagreement, translated kindly, turned out to be the most trustworthy answer of all.

What's next for The Round Table

  • Live tickers — swap the demo data file for real-time feeds; the pipeline already supports it
  • Korean mode — this was designed for my Korean parents first; the plain-language layer is language-agnostic
  • 2-of-3 judge voting in evals, to eliminate the false negatives we caught
  • Voice — because my mom doesn't type questions about stocks. She calls.

Built With

Share this project:

Updates