Multi-agent demos you can actually reproduce
Description and use
Separating personas, run logic, and UI in the Séance template yields deterministic, testable multi‑agent demos. Property‑based tests uncovered and fixed a scoring bug, and the template supports multiple domains without engine changes.
Problem
Multi-agent demos often entangle persona definition, run logic, and UI rendering, making testing, replaying, and updates difficult.
Outcome
By separating personas, run logic, and UI, the author achieved deterministic, testable multi-agent demos. Property-based testing uncovered a scoring bug, which was fixed by adjusting the formula. The template supports multiple domains without engine changes.
Workflow
- Define personas in YAML files.
- Implement runRoom({artifact, personas, seed}) as a pure function that returns a Transcript.
- Render the Transcript in the UI.
- Use a seed to control wording without randomness or I/O.
- Run property-based tests with fast-check to validate invariants.
- Fix scoring bug by using a capacity independent of findings.
- Deploy the template with two demo apps without modifying the engine.
- Re-run demos with a new seed to see voice changes without changing evidence.
Evidence
Séance splits them: personas are YAML, the run is a pure function, the UI takes a transcript.
No Math.random(), no Date.now(), no crypto.randomUUID() inside seance-core.
The score could go down when you pointed at a new risk.
- Record date: 2026-11-02T04:58:59.663Z