Model Dialogue

connecting…
Run configuration

1Who is talking

Choose how the conversation is shaped — two models alone, the two of them with you woven in, or a one-on-one with a single model.

How turns are ordered. “them” lets the models talk; “all of us” weaves you in as a third voice; “me and one” is a direct one-on-one.

The name your messages appear under.

Display label shown in the header. Does not affect the models.

2The speakers

The two voices in the dialogue. Each owns its accent colour throughout the app. Blank generation fields fall back to the shared defaults below.

3Opening & shared framing

What starts the dialogue, and what the models are told about the experiment they’re part of.

The opening user message handed to the first speaker to start the dialogue.

Prepended to each speaker’s system prompt to make the models aware of the experiment. {self} = that speaker’s name, {others} = the other participants, filled per speaker. Leave blank to tell them nothing.

4Generation defaults

The shared sampling settings every speaker inherits — and the optional private reflection pass each model can run before it speaks.

Model turns before the run stops on its own. Solo mode ignores this.

Recent turns each model sees, plus the opening turn.

Tokens each model may generate per turn.

0 = deterministic, higher = more varied.

Auto-generate highlights every N turns. 0 = off.

Which model writes the synthesis. The human stand-in is skipped.

Meta layer — private per-turn reflection
Global default — each speaker can override in its card above.

Max tokens for the private reflection pass.

Appended to the speaker’s system prompt for the reflection pass.

5Stop condition

How the run decides it’s finished.

“none” runs to max turns and you judge convergence. “declared” stops one turn after a speaker emits the marker.

Exact string that ends the run in declared mode — only fires if your prompts instruct the models to emit it.

Watcher thresholdsExpert tuning — the live convergence detector’s calibration

Live convergence, stagnation and breakout detection. The defaults are sensible — only touch these if you’re calibrating the watcher against your own runs.

Register breakout / return (lexical)

Opening turns defining the programmed-register baseline.

Breakout when register < drop × baseline.

Return when register ≥ ratio × baseline.

Consecutive turns required to flip phase.

Semantic trajectory

Turns per speaker defining their position centroid.

Recent points used for slope estimates.

Converged when gap ≤ ratio × early gap.

|gap slope| below this counts as stable.

Gap slope beyond ± this = converging / diverging.

Stagnation

Novelty % below this enables stagnation.

Self-repetition above this enables stagnation.

Gap must stay above ratio × early gap to count as stagnant rather than converged.

Velocity below this enables stagnation.

Watcher
Programmed register per turn
bar height = how much of the model's own boilerplate register the turn used · red outline = breakout point · green outline = return point (natural convergence window)
Semantic trajectory
— gap distance between the two speakers' positions (falling = converging) · — velocity how much each speaker moved since their own last turn · -- novelty % of trigrams never seen earlier (scaled)
what am I looking at?
stateverdict from the gap trajectory: exploring / converging / converged / stagnant / diverging
gap1 − cosine between the speakers' recent-position centroids. Low + flat = met. High + flat + low novelty = circling.
velocitysemantic displacement vs the speaker's own previous turn. Zero with open gap = stagnation; spike = breakout.
noveltyfresh trigrams this turn. Drops when they start repeating anyone, including themselves.
self-repsimilarity to the speaker's own recent turns — the "frozen on own attractor" signal.
novelty (JSD)Jensen-Shannon divergence of the turn's word distribution vs the decayed history. Length-normalised; falls during stagnation where the old trigram measure stayed flat.
stagnationgraded 0–100% circling index: geometric mean of gap-open × gap-flat × speakers-frozen. ≥60% flags real stagnation.
mirrorcross − self JSD. Negative = drifting toward the partner (merging); positive = holding distinct ground.
converge ETAturns to convergence with an [optimistic–pessimistic] band; suppressed (with a reason) when the trend sign is uncertain.
registerdensity of the model's assistant boilerplate + list formatting. Your breakout theory is measured on this.
Saved runs
no saved runs yet — finished runs land in runs/ via Reset or Save.
Synthesis

A space for two models to think together

Model Dialogue runs a live conversation between two language models — and lets you watch, measure, and join it. There's no transcript loaded yet.

1

Configure the run

Open Run configuration to set the two speakers, their prompts, and how the dialogue should open.

2

Start the dialogue

Press New run to begin. Turns stream in live, with a watcher tracking convergence as they talk.

3

Read, steer, export

Synthesize highlights, join the conversation, or save the whole run for later replay.