Back to build
Shipped Multi-agent A2A Protocol

🤖 Debate Arena

Two AI agents argue opposite sides of any topic. A conscience agent keeps them honest. A judge picks a winner.


Product notes

Most AI tools converge — they hedge, equivocate, and land somewhere in the middle. Debate Arena does the opposite: it forces two agents into direct opposition on any topic and makes them stay in character for three rounds. The output isn't an answer. It's a structured argument you can actually weigh.

The problem
Getting a language model to argue a position it nominally "disagrees" with — without breaking character, collapsing into caveats, or repeating the same point — required careful prompt architecture. The default behaviour is always to hedge. The Conscience agent exists specifically to catch that and push the argument back.
The simplify pivot
The original design included a live human judge UI with sliders and a scoring panel. I cut it. The debate transcript itself is the value — adding a scoring layer was complexity for its own sake. Removing it reduced scope by ~40% and made the demo cleaner. The judge agent now renders a verdict automatically, which is more interesting anyway.

Technical discussion

Built on the Agent-to-Agent (A2A) protocol. Each debater runs as an independent agent with a fixed persona prompt, a turn counter, and read-only access to the prior turn's output. There's no shared state between agents — the Conscience agent intercepts every draft before it enters the debate feed and can flag or rewrite arguments that go off-topic, repeat, or attack the opponent rather than the argument.

Debates are pre-generated offline via a Python script that calls the Anthropic API, then serialised to debates.json and shipped statically. Zero API calls at demo time — the front-end just plays back the cached JSON. This keeps hosting cost at zero and removes the BYOK friction for visitors.

Pro Agent
Argues for the proposition each round. Only sees the topic and prior debate history — no knowledge of the Con agent's system prompt.
Con Agent
Argues against. Always responds after Pro, creating a deliberate first-mover asymmetry that the judge accounts for in scoring.
Conscience Agent
Reviews every draft before it enters the debate. Rewrites arguments that repeat, go off-topic, or attack the opponent personally.
Judge Agent
Reads the full transcript and all conscience interventions, then declares a winner. Must pick a side — no draws.
Claude 3.5 Sonnet A2A Protocol Python (generation) Static HTML/JS Vercel