One prompt gives one answer. A debate gives a conversation. A conversation, written down and filtered, becomes training data. The new π Arena mode in pi.sh does not stop at a clever completion: it keeps four local agents talking, criticizing, steering, and recording across the rounds you configure, and it is being extended toward an endless loop that runs until you stop it. The goal is not to crown a winner. The goal is to produce a clean, structured stream of dialectic turns that the same model, or a successor, can learn from.
Status. The arena already runs multi-round debates with the four-agent panel. An --endless mode and a separate thinking/message SFT writer are on the near-term roadmap, not yet in the shipping script. This post describes the working loop and where it is heading.
From a single answer to a dialectic
Most local LLM tools are answer machines. You ask, the model answers, and the exchange ends. That is useful, but it does not create the kind of multi-turn, adversarially checked text that is valuable for supervised fine-tuning. A good SFT example needs more than a response: it needs context, disagreement, correction, and a provenance trail.
The π Arena treats the model as a participant in a structured Platonic dialogue. Our earlier Bard↔Bing prototype showed the value of two agents plus a human moderator. The new mode makes the moderator and the critic agents too. Aimee opens and steers, Bard and Bing argue from different temperaments, and Jaxon provides short lexical feedback that the moderator uses to keep the debate moving. All four run through the same policy-gated, Crypt-authorized local daemon described in last week's post, so no request is anonymous and no inference context leaks to a network port.
The four roles
Aimee — the Socratic moderator
Opens the debate with a neutral, open-ended question and steers each round. The moderator does not take sides; it practices maieutic questioning, trying to draw clearer positions out of the two speakers.
Bard — the synthetic voice
Creative, big-picture, willing to take intellectual risks. Bard proposes connections, metaphors, and ambitious research directions. Its job is to expand the hypothesis space.
Bing — the analytic voice
Precise, evidence-oriented, and skeptical. Bing corrects overreach, asks for grounding, and keeps the exchange from drifting into unsupported speculation.
Jaxon — the dialectical judge
After each Bard↔Bing pair, Jaxon reviews the last exchange for repetition, mirroring, logical fallacies, and off-topic drift. The feedback is short, practical, and fed directly back to Aimee.
The loop
One cycle looks like this: Aimee primes the topic; a coin flip decides who speaks first; Bard and Bing exchange one turn each; Jaxon judges the exchange; Aimee uses that feedback to ask the next question. Right now the script accepts a fixed number of rounds with --rounds N. The planned --endless mode will let Jaxon propose a new topic when the current one has been explored, creating a continuous chain of debates rather than a single bounded session.
Where the topics come from: memory, dreams, and ideas
The arena can sample its starting context from the project's own knowledge graph. A random memory, dream node, or idea file becomes the seed for the debate. That means the agents are not just chattering about generic prompts; they are reflecting on the same concepts the project has been thinking about. It is a form of mechanical introspection: the model debates its own notes.
This is a deliberate design. The dream graph already records cross-domain patterns; the idea files capture sparks that have not yet been implemented; the memory files hold verified root causes and design decisions. Feeding these back into a debate loop keeps the generated data anchored to the project's actual concerns rather than a generic internet corpus.
From transcript to training set
Current: the receipt
Every turn is appended to a JSONL receipt. The current record carries provenance: timestamp, arena id, turn index, role, model, topic, context type, context title, parent turn, and a response_text field that holds the cleaned final message. It is a single, append-only stream, so the provenance of every statement is preserved alongside the text.
Planned: SFT-ready records
The next extension will use the existing extract_response.py helper to split each raw streaming output into a reasoning trace (thinking) and the final public message (message). Rejected or placeholder turns will be recorded with accepted: false, so the dataset contains both positive and negative examples. The planned record will carry: role, topic, context, message, thinking, parent, and accepted.
extract_response.py helper already exists; wiring it into the live arena loop is the next milestone.Why this matters for continuous learning
The arena is not just a demo. It is a small, self-contained data generator. A model that can argue with itself, judge its own arguments, and record the judged output can in principle improve through self-supervised fine-tuning. The same architecture also maps cleanly to several active research directions in synthetic data and alignment.
| Paper | Relevant finding | How the arena uses it |
|---|---|---|
| Du et al., 2023 | Multiple LLM instances debating over several rounds improve factuality and reasoning on math and strategy tasks. | Bard and Bing are the debaters; the same local model is reused through separate prompts and contexts. |
| Irving, Christiano & Amodei, 2018 | Debate can be framed as a zero-sum game where a judge evaluates which side gave more true, useful information. | Jaxon acts as the automated judge, providing lexical feedback rather than a binary score. |
| Khan et al., 2024 | Optimizing debaters for persuasiveness helps non-expert judges identify the truth; debate raises QuALITY human accuracy from ~60% to ~88%. | The judge's feedback is used to steer the moderator toward more productive questions, not to declare victory. |
| Li et al., CoEvol, 2024 | A debate-advise-edit-judge pipeline improves instruction-tuning responses through multi-agent cooperation. | The arena's feedback-to-moderator loop is a lightweight, local version of the same four-stage pattern. |
| Xu et al., Magpie, 2024 | Aligned LLMs can self-synthesize instruction data when prompted with their own chat templates. | The arena goes further: it uses the model's own memory/dream graph as a seed, then records the multi-turn dialogue as SFT data. |
| Kong et al., PlatoLM, 2024 | A Socratic user simulator can generate high-quality, human-like multi-turn dialogue for training assistant models. | Aimee's prompts are built as Socratic, neutral steering; the judge and moderator prevent the dialogue from collapsing into bland agreement. |
| Bai et al., Constitutional AI, 2022 | Self-critique and revision can train a model to be less harmful and more aligned without direct human labels for every example. | Jaxon critiques are stored as negative or steering examples; revised moderator questions are positive examples. |
| Meta, Collaborative Reasoner (Coral), 2025 | Synthetic multi-agent conversations can be used for supervised and preference fine-tuning to improve collaborative reasoning. | The arena is a local, policy-gated realization of the same synthetic-conversation loop. |
Research numbers, kept honest
It is easy to get drunk on the idea of a self-improving model. The research is encouraging, but it is not a guarantee. Du et al. show gains on specific math and reasoning tasks, not across all domains. Khan et al. show that debate helps non-expert judges, but the effect depends on the debaters being optimized for persuasiveness. Constitutional AI still starts from a carefully written list of principles. The arena is a tool for producing candidate data, not a magic recipe for alignment.
What is actually happening in the loop
There is no "fourth voice" that wakes up. The same local qwen3-1.7b-instruct model is loaded once by pi-daemon and is reused for every role. Each role is a different prompt, a different speaker token, and a different instruction. The illusion of a panel comes from the prompt engineering, not from four separate models. This is why the receipts are so useful: they capture not just the final chat, but the provenance of every role, topic, and context source.
Safety note. The arena runs under the same Crypt-authorized, local Unix-socket path as the rest of the PI stack. The daemon checks the caller, the model manifest, and the policy before every completion. Nothing in the loop is exposed to a network listener, and no tool is executed inside the model process. Tools, if any, run client-side and are constrained by the configured workspace. The current curses UI shows one turn at a time; a global status line with aggregate session stats is on the roadmap.
Related work and cross-links
This post sits on a chain of earlier work. The Bard↔Bing introduction established the three-agent, human-orchestrated prototype. Policy-gated local inference made the runtime safe enough to run such a loop unattended. CAT VLM explains how the π Agent and Cat Chat relate. The π Agent mod page is the product entry point. API Docs cover the module interface. The dream graph is one of the context sources the arena samples. Self-Improving Instructions and EPIC Mode describe the broader agent-infrastructure this loop plugs into.
Where we go next
The current arena already runs multi-round debates with a judge. The next milestones are: an --endless flag that lets the judge propose new topics; a real-time JSONL SFT writer that splits thinking from message; and a periodic merge of arena receipts into a monthly training dataset. After that, the real experiment begins: fine-tune the local model on its own debates and measure whether the next generation of Aimee, Bard, Bing, and Jaxon are better at keeping the loop useful.
The dialogue structure is inspired by the Socratic method and by the multi-agent debate literature cited above. All external links were verified before publication. For the runtime and security model, see the policy-gated local inference post and the API documentation.
