Overview

Multi-agent systems for solving mathematical problems

  1. Architecture. What exactly are the agents, their responsibilities, and the rules governing communication?
  2. Visualization. How can you see both what the agents did and how mathematical conclusions depend on their work?
  3. Audit. How can you establish that the system is operating correctly, independently of whether its proposed mathematics is correct? (Audit)

The run record

Agents and messages

(agent, root, message)

  1. Agent. One language-model session with its own context: it reads text, may run tools, and writes text. A run has agents \(\mathcal A=\{R,A_1,\dots,A_N\}\).
  2. Root. \(R\) is an agent of the same kind as the \(A_i\), not a script and not an oracle. Only its role differs: it fixes the problem, writes the briefs, reads every return, and writes the registry and verdict steps.
  3. Messages. A brief (or a continuation) goes \(R\to A_i\); a return goes \(A_i\to R\). Agents never message each other: \(A_i\) sees another agent's work only through \(R\), quoted in a brief or in a return file \(R\) has saved.
Message chart of satake-two-levels: R briefs A1 to A6 at 02:03 and A7, A8 at 02:56; ten returns go back to R between 02:40 and 04:16; A7 returns three times and is continued twice
Every message of the worked example: 10 sent by \(R\), 10 returned, none between agents.

The run Satake generation at two levels: 8 agents, 02:02–04:17 UTC.

Definition 1 in the literature.
part of Definition 1sourcethe same idea there
agent = model that reads, acts with tools, writesReAct [Yao et al. 2023]reasoning traces interleaved with tool actions
private context, communication only by messagesactors [Hewitt–Bishop–Steiger 1973]an actor has private state and acts only by sending messages
root briefs workers and reads their returnsorchestrator–workers [Anthropic 2024, 2025]a lead model splits the task, delegates to subagents, synthesizes
language-model agents that converseAutoGen [Wu et al. 2023]; survey [Guo et al. 2024]conversable agents; centralized vs. decentralized communication
a run as processes exchanging messages in time[Lamport 1978]processes, events, send and receive

Steps and the record

(step, record)

  1. Step. One labelled claim, written by one agent: $$s=\big(\text{id},\ \lane(s),\ t(s),\ \kind(s),\ \st(s),\ \text{statement},\ \text{argument},\ \text{parents}(s)\big),$$ with fields as in .
  2. Record. The directed graph $$G=(V,E),\qquad V=\text{all steps},\qquad u\to v\in E\iff u\in\text{parents}(v).$$
The fields of a step, with the step A7-22.
fieldvaluesA7-22on whose word
idagent name and a counter: A7-22 is the 22nd step of \(A_7\), R-4 the 4th step of \(R\)A7-22
\(\lane(s)\)the prefix of the id, in \(\mathcal A\)\(A_7\)checkable: \(s\) is in \(A_7\)'s return file
\(t(s)\)UTC time \(\lane(s)\) read from its clock when it began writing \(s\)03:47:54self-reported
\(\kind(s)\)what sort of step ()check\(\lane(s)\)
\(\st(s)\)proved, open, heuristic, partial, blocked, refuted, supersededproved\(\lane(s)\)'s claim; trusted only if a step \(w\) with \(\lane(w)\ne\lane(s)\) checks it
statementthe claimA5-5 holds; Lemmas 1–3 of A5-6 hold\(\lane(s)\)
argumentthe proof as numbered steps, or the computationline-by-line check; the \(m=3\) table recomputed over \(\mathbb F_2[[t]]\), \(\mathbb F_3[[t]]\)\(\lane(s)\)
\(\text{parents}(s)\)ids of the steps \(s\) usesA5-5, A5-6declared, not inferred: an uncited dependence is invisible
The eight kinds, and how often each occurs among the 110 steps of the worked example.
\(\kind(s)\)the step issteps
ideaa direction, not yet a claim6
lemmaa statement with a proof or a labelled gap36
computationan explicit calculation, with its script13
checka verification of cited steps, with the outcome30
objectiona reason a cited step fails or needs a hypothesis9
blockeda dead end naming the missing lemma1
verdictthe agent's conclusion for its target14
redirect\(R\) only: a change of direction between rounds1

\(\kind\) and \(\st\) are independent: a lemma may be open, a check may be refuted. \(\st(s)\) is what \(\lane(s)\) asserts about \(s\), not a property of \(s\); the verdict is \(R\)'s claim.

Role of a step. A step is the unit of citation: a return carries 6–19 steps, and a later step cites the one lemma it uses, not the whole return. Support, checks and every audit invariant are statements about steps and their parents.

Definition 2 in the literature: graphs like \(G\), and who adds their edges.
graphvertexedge \(u\to v\)added by
Structured proof [Lamport 1995]numbered step\(v\) cites \(u\) in its justificationthe author
Lean blueprint [Massot]definition, lemma\(v\) uses \(u\)the author; Lean checks formalized vertices
Provenance [W3C PROV]entity, attributed to an agent, generated at a time\(v\) was derived from \(u\)the recording system
Polymath [Gowers–Nielsen]comment, wiki entryreply, summaryparticipants; a moderator summarizes, as \(R\) does
Tree of Thoughts [Yao et al.]partial solution\(v\) extends \(u\)a search program; the model scores vertices
Graph of Thoughts [Besta et al.]model output\(v\) generated or merged from \(u\)a controller program
Argumentation [Dung]argument\(u\) attacks \(v\)the modeller; acceptance is computed
Happens-before [Lamport 1978]eventsame process, or send → receivethe system's clocks

A step is a PROV entity whose attribution, generation time and derivations are \(\lane(s)\), \(t(s)\), \(\text{parents}(s)\). As in a structured proof or a blueprint, the author of \(v\) declares every edge into \(v\); no program adds edges and nothing checks a vertex.

Graph creation

(arrival time, record at time \(\tau\))

A step of an agent enters \(G\) when the return carrying it reaches \(R\); a step of \(R\) enters when \(R\) writes it:

$$\tau(s)=\begin{cases} r(\rho), & s \text{ in the return } \rho,\ \ r(\rho)=\text{arrival time of }\rho,\\ t(s), & \lane(s)=R,\end{cases}$$ $$G_\tau=(V_\tau,E_\tau),\qquad V_\tau=\{s:\tau(s)\le\tau\},\qquad E_\tau=\{u\to v:\ v\in V_\tau,\ u\in\text{parents}(v)\},\qquad G=G_{\text{end}}.$$
The life of a step \(s\).
stagewho actswhen\(s\) is visible to
1 write\(\lane(s)\), inside its session: reads its clock, writes the fields, names the parents\(t(s)\)\(\lane(s)\) only
2 return\(\lane(s)\) ends or pauses its session; the return, with all its steps, reaches \(R\)\(\tau(s)\)\(R\)
3 record\(R\) saves the return verbatim and copies its steps into \(G\)\(\tau(s)\)any agent briefed or continued later
4 fixednobody: \(s\) and \(\text{parents}(s)\) never change; later steps may cite \(s\)after \(\tau(s)\)

So the edges into \(v\) appear all at once, at \(\tau(v)\), and \(G_\tau\) only grows. Two consequences, both satisfied by the worked example (106 agent steps, 113 edges between agents):

$$t(s)\le\tau(s),\qquad\qquad u\to v,\ \lane(u)\ne\lane(v)\ \Longrightarrow\ \tau(u)\le t(v).$$

\(\tau\) is known exactly (the harness writes returns/<agent>.returned); \(t\) only on the agent's word: A5-5…A5-10 all carry \(t=\)03:32:17, and reached \(R\) at \(\tau=\)03:42:56.

Record of satake-two-levels, frame 1 of 8

Support

(support, solved)

$$\supp(v)=\{\,u\in V:\ u\to\cdots\to v\,\}.$$

The run solves the problem when its verdict \(v^\ast\) has \(\st(v^\ast)=\text{proved}\) and every \(u\in\supp(v^\ast)\) is correct, as judged by a reader outside the run.

Six steps with v = A5-7: its support A5-1, A5-5, A5-6 is outlined in blue; A5-6 is red (found wrong later); A5-9 and A7-22 are greyed out
A5-7 is marked proved, but its support contains the wrong step A5-6, so it does not count as solved.

heuristic If each step were wrong independently with probability \(\varepsilon\):

$$\Pr\big[\supp(v^\ast)\ \text{error-free}\big]=(1-\varepsilon)^{|\supp(v^\ast)|},\qquad \hat\varepsilon=\tfrac{15}{110},\ |\supp(\text{R-4})|=105\ \Rightarrow\ \approx 2\cdot10^{-7}.$$

Worked example: 13 of the 105 steps below R-4 were later found wrong. So a run needs a way to find its errors.

1 · Architecture

The four designs on these pages.
Vanilla multiagent
rounds=1 verifier=off
Check rounds
verifier=check
Paired verifiers
verifier=paired
… with memory
/solve-maths-mem (proposal)
agents\(R\) + \(N\le 9\)\(R\) + \(N\) solvers + \(N\) checkers\(R\) + \(N\le 4\) pairs \((S_i,V_i)\)\(R\) + \(N\le 9\)
mathematics checkedneverwhole returns, after each roundevery step, as writtenas /solve-maths
process checkedafter the runafter the runat every checkpoint, by scriptas /solve-maths
run state\(R\)'s context\(R\)'s context + registry\(R\)'s contextcontext + recall + archive

Topologies

Six communication graphs: star (one orchestrator joined to five workers); fully connected (debate); a ring (sparse debate); layered (two layers of three agents feeding one aggregator); a chain; shared memory, drawn as /solve-maths: R and four agents joined only to the registry.
Who may read whom. /solve-maths is closest to shared memory.

Agents never read each other, but every return is saved to the registry, and a later round's brief points its checkers and solvers there; only \(R\) writes to it.

How the literature studies topology.
studytopologiesfinding
Smith 1980; Erman et al. 1980contract net (a manager delegates); blackboardthe two classical designs: delegation, and a shared store
Yin et al. 2023memory, report, relay, debatea hub spreads information fastest but loads one node
Li et al. 2024fully connected vs sparse debate, incl. MATH, GSM8Ksparse matches or beats full, at lower cost
Wang et al. 2024layered (Mixture-of-Agents)diverse proposers help an aggregator
Qian et al. 2024DAGs up to 1000+ agentsquality logistic in \(N\); irregular graphs beat regular
Zhuge et al. 2024; Zhang et al. 2025learned edgesoptimize the graph per task; fewer tokens
Kim et al. 2025independent, centralized, decentralized, hybridhelps parallelizable tasks, hurts sequential ones
Cemri et al. 20257 frameworks, traces14 failure modes; verification is one family

None of these counts wrong proofs; Experiment 1 varies the number of agents and whether half of them verify, and counts the mistakes.

2 · Visualization

What the agents did: (messages) and (steps), with time across and the agent down; a step appears when its return arrives. How the conclusion depends on it: the last frame, \(\supp(v^\ast)\).