Skip to content
← back to profile

OpenAI: ten thousand agents on a Navier-Stokes result

What was actually claimed and what was not, the shape of a ten thousand agent run, the message and token economics, and why a Lean proof settles less than it appears to.

dissecting
On the Navier-Stokes Millennium Prize Problem
OpenAI · 8 September 2026

Worth dissecting for the orchestration rather than the mathematics: it is the most detailed public account of running agents at this scale, and the caveats OpenAI states about it are as instructive as the result.

01

What was claimed, and what was not

intermediate

Start here, because the headline version of this story is wrong in a way that matters. The claim is that a proof was produced showing that the three-dimensional incompressible Navier-Stokes equations can develop a singularity in finite time, with a smooth forcing term applied. Not the unforced equations. The forcing term is in the statement, and leaving it out is the difference between a specific technical result and a claim about one of the seven Millennium Prize Problems.

The distinction is not a quibble, and the reason is in how the Clay Mathematics Institute wrote the problem. Fefferman's official description offers four statements, any one of which would qualify: two assert existence and smoothness, and two assert breakdown. The breakdown statements permit a forcing term subject to decay conditions, which is why this result targets those rather than being outside the problem entirely. So the honest description is that it addresses a recognised route to the prize, and whether the formal statement satisfies the conditions Fefferman specified is exactly what is under review.

OpenAI is explicit that it does not intend to claim the prize, and the process explains why that is not modesty. The Clay rules require publication in a peer-reviewed mathematics journal, followed by at least two years, followed by general acceptance in the community. None of those has happened. A published manuscript and a machine-checked formalisation are evidence offered for scrutiny, and the scrutiny is the part that has not begun.

What was published is a manuscript of around 166 pages, titled after finite-time blowup, together with a formalisation in Lean. That is a substantially more checkable artefact than a claim on its own, and it is the right thing to have released. It is also not the same as a verified solution to the Millennium Problem, and the gap between those two things is the subject of the last topic in this card.

The reason to open a technical dissection with a section on framing is that this is the engineering lesson, not a disclaimer attached to one. A system that produces a result also produces a claim about that result, and the claim is where almost all of the failures live: too strong, insufficiently scoped, or stated in a way that invites a reader to hear something the evidence does not support. Getting the scope of a claim right is part of the work, and it is the part that is easiest to skip when the result is exciting.

why this choice

The forcing term is the whole distinction between a specific result and a solved Millennium Problem, and every summary that dropped it produced a claim the evidence does not support. The transferable point is that the scope of a claim is part of the deliverable: a system that generates a result and a system that states what the result means are the same system, and the second half is where the errors concentrate.

in practice

This is the same discipline as a benchmark that names its conditions. A latency figure without the percentile, the concurrency and the hardware is not a measurement, it is an advertisement, and the honest version is longer and less quotable. Anyone publishing a result from an automated system inherits this problem, because the system will produce numbers faster than anyone can qualify them.

check yourself

What did OpenAI publish alongside the announcement?

as statedas reportedtargets theserequires all threenone has happenedThe resultfinite-time blowup,3D Navier-StokesWith smooth forcingwhat was actuallyprovedWithout forcingnot what was provedClay C and Dbreakdown, forcingpermittedJournal, two yearsthen generalacceptancePrize not claimedOpenAI states this
ClientData storeServiceExternaldashed = asynchronousconsidered, not chosen
The claim, the conditions on it, and the process that has not run yet
evidence · 3 sources
  1. 01
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    The claim as stated, that the dynamics can develop a singularity in finite time, the accompanying writeup and Lean formalisation, and that OpenAI does not intend to claim the prize.

  2. 02
    Fefferman, Existence and smoothness of the Navier-Stokes equation (Clay Mathematics Institute)

    The four qualifying statements, and that the breakdown statements permit a forcing term subject to decay conditions while the existence statements require it to vanish.

  3. 03
    Clay Mathematics Institute, rules for the Millennium Prizes

    That a solution must be published in a peer-reviewed journal and have general acceptance in the mathematics community after at least two years.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.
02

The shape of a ten thousand agent run

advanced

The system is described as coordinating agents running on an internal model, subdivided into groups, with agents able to communicate with others in their own group. The Navier-Stokes work involved on the order of ten thousand concurrent agents. The two structural details worth extracting are that the population was partitioned rather than flat, and that communication was scoped to the partition rather than global.

Both of those are the obvious engineering answer to the obvious problem, which is that a flat population of ten thousand communicating peers is not a system, it is a broadcast storm.

Communication cost between n participants who can all talk to each other grows with the square of n, so ten thousand peers is on the order of fifty million possible channels and no useful signal in any of them. Partitioning into groups makes the cost linear in the number of groups and quadratic only within one, which is the same argument as sharding, and the same argument as a service mesh preferring a hierarchy to a full graph.

Cross-group communication then needs a deliberate mechanism, and the account names one: Codex was used to consolidate promising intermediate ideas from different groups. That is a reduce step. Groups explore independently, something reads across them and pulls out what is worth propagating, and the result seeds further work. It is map-reduce with a language model as the reducer, and the shape is much older than the tooling.

There is an earlier phase reported that is more instructive than the headline, because it shows the resource allocation being managed rather than simply spent. Nearly a hundred agents worked for about fifty hours on the related Euler equations before resources were redirected. That is a bet placed, evaluated and abandoned, which is what a search over an expensive space has to look like: run cheap exploratory arms, decide, and concentrate the budget on the one that is moving.

The timeline gives the whole thing a scale. Training of the model began on 28 August, agents were launched on 1 September, and the result was reached on 5 September, about 88 hours after the first agents started. Then a further 17 hours of formalisation and checking. So the compute is enormous and the wall-clock is four days, which is the trade being demonstrated: an embarrassingly parallel search converts money into elapsed time at a rate no individual can match.

why this choice

Partitioning with scoped communication is the load-bearing decision, because all-to-all messaging between ten thousand participants is quadratic and produces no usable signal. Groups make the exploration parallel and the coordination affordable, and a separate consolidation step is then required to move an insight between them. The earlier hundred-agent arm that was abandoned after fifty hours is the part worth copying: an expensive search needs explicit reallocation, not just scale.

in practice

The topology is the one every large-scale search converges on, whichever era it belongs to. Genetic algorithms use island models with occasional migration for the same reason: fully mixed populations lose diversity and cost too much to synchronise. Distributed hyperparameter search runs independent trials with a scheduler that kills the unpromising ones, which is the same reallocation decision. The scoped-communication-plus-consolidation shape is not novel here, and that is what makes it credible.

check yourself

What does the abandoned Euler arm demonstrate?

partitionedpartitionedpartitionedthe naive shapepromising ideaspromising ideasseeds further workbudget redirectedThe problemone target, hugesearch spaceGroupagents talk within itGroupagents talk within itGroup~10,000 agents intotalOne flat populationquadratic, no signalConsolidationCodex reads acrossgroupsEuler arm abandoned~100 agents, ~50hoursResult at 88 hoursthen 17 hours in Lean
ClientServiceEdge / CDNExternaldashed = asynchronousconsidered, not chosen
Groups explore in parallel; a consolidation step moves ideas between them
evidence · 2 sources
  1. 01
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    That agents were subdivided into groups able to communicate within them, that the Navier-Stokes group involved roughly ten thousand concurrent agents, and the timeline of 88 hours to the result plus 17 hours of formalisation.

  2. 02
    VentureBeat, OpenAI solves longstanding math problem with a 10,000-agent swarm

    The reported detail of the earlier phase, nearly a hundred agents working about fifty hours on the related Euler equations before resources were redirected, and that Codex was used to consolidate ideas across groups.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.
03

2.7 million messages and 130 billion tokens

advanced

The reported figures are unusually specific and worth doing arithmetic on, because the arithmetic is where the intuition comes from. Across all of the mathematical problems attempted, the agents exchanged 4.9 million messages and generated roughly 300 billion output tokens. The Navier-Stokes work alone accounted for 2.7 million messages and approximately 130 billion output tokens. Divide those by the population and the picture sharpens considerably. Ten thousand agents and 2.7 million messages is about 270 messages per agent across the run. Ten thousand agents and 130 billion output tokens is about 13 million output tokens each. Over 88 hours that is roughly 150,000 output tokens per agent per hour, or on the order of 40 per second, sustained, per agent, for the better part of four days.

Two things follow from those numbers. The first is that this is not a chat workload, it is a batch compute workload that happens to be expressed in tokens, and it should be reasoned about the way any large batch job is: total throughput, cost per unit of work, and whether the result justified the spend. The second is that the message count is small relative to the token count, about 48,000 output tokens per message, which says the agents were producing substantial artefacts rather than conversing. That is the right shape. An agent population whose token budget goes into coordination rather than into work is a population doing very little.

The ratio between the two problems is also informative: Navier-Stokes took roughly 55 per cent of the messages and 43 per cent of the output tokens of the whole programme, so it was the largest single consumer but not the only one. That is what a portfolio looks like rather than a single bet, and it is consistent with the earlier arm being abandoned: several things were being tried and the accounting reflects it.

The honest caveat is that output tokens are not the cost. Input tokens are not reported, and in an agent system they usually dominate, because every step re-reads context, tool results and other agents' messages. A system generating 130 billion output tokens is plausibly reading many times that, which is why the public figure is a lower bound on the work rather than a measure of it. Anyone estimating the cost of something like this from the output count alone will be out by a large multiple, and the direction of the error is always the same.

why this choice

The useful move is to divide the totals by the population, because the aggregates are unintuitive and the per-agent numbers are not: roughly 270 messages and 13 million output tokens each, which is about 40 output tokens per second sustained for four days. That reframes the run as a batch compute job rather than a conversation. The ratio matters too: 48,000 output tokens per message means the budget went into producing artefacts rather than into coordination, which is the shape a working agent population should have.

in practice

The lower-bound problem is the one to carry into any estimate. Output tokens are the visible number and input tokens are usually the larger one, because agent steps re-read context, tool output and each other's messages, and caching changes the price of that without removing it. Anyone sizing an agent system from a published output-token figure should expect to be low by a multiple, which is the same error as sizing a database from its write volume while ignoring reads.

check yourself

What does the split between the two figures indicate about the programme?

the largest single armdivide by 10,000divide by 88 hourstokens per messagea lower bound on the workWhole programme4.9M messages, ~300Boutput tokensNavier-Stokes2.7M messages, ~130BtokensPer agent~270 messages, ~13MtokensPer agent, per sec~40 output tokens,for 88 hours~48k per messageproducing, notchattingInput unreportedusually the largernumber
ClientData storeServiceExternaldashed = asynchronousconsidered, not chosen
Divide by the population, and it stops being a conversation
evidence · 2 sources
  1. 01
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    The figures quoted here, that the Navier-Stokes work accounted for 2.7 million messages and roughly 130 billion output tokens.

  2. 02
    VentureBeat, OpenAI solves longstanding math problem with a 10,000-agent swarm

    The programme-wide totals of 4.9 million messages and roughly 300 billion output tokens across all problems attempted, which is what the Navier-Stokes share is computed against.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.
04

Tools: running code, and a cached internet

intermediate

The agents are described as having two capabilities beyond talking to each other: they could run code, and they could consult a cached version of the internet. Both choices are more interesting than they sound, and the second is the one worth pausing on.

Code execution is what makes a search over mathematics tractable rather than merely fluent. A conjecture can be tested numerically, a counterexample can be looked for by brute force, an algebraic manipulation can be checked by a computer algebra system, and a candidate construction can be simulated. That converts a large class of questions from things an agent asserts into things an agent finds out, and the difference in reliability between those two is the entire reason tool use exists.

A cached internet rather than a live one is a deliberate constraint and it buys three things at once. Reproducibility: ten thousand agents hitting live sources would each see a slightly different web, so the corpus would not be a fixed input and the run would not be repeatable. Rate limiting: ten thousand concurrent agents making live requests is a denial of service against whatever they are reading, and would be blocked within minutes. And determinism of the boundary: with a snapshot, the question of what the system had access to has an answer, which matters enormously for a claim about novelty and matters again for the provenance dispute this card returns to later.

That last point is worth stating as a general principle, because it applies well outside this. Freezing an external dependency turns an unbounded question into a bounded one. What did the system know is unanswerable against a live internet and answerable against a snapshot, and any system whose output will be scrutinised for originality wants that property before it produces anything rather than after. The pairing is also the standard shape for this kind of work, and recognising it is more useful than treating it as novel. A generator proposes, a cheap checker rejects most proposals, and only what survives is worth an expensive step. Code execution is the cheap checker here and Lean is the expensive one, and the whole run is a funnel with those two filters in it. Without a checker, scaling a generator up just produces more unverified output, which is not progress in any direction.

why this choice

A cached corpus is the choice that does the most work: it makes the run reproducible, prevents ten thousand agents from behaving as a denial of service against live sources, and gives the question of what the system had access to an actual answer. That last property is what a claim of novelty depends on, and it has to be arranged before the run rather than reconstructed afterwards. Code execution matters for a different reason, which is that it converts assertions into findings.

in practice

Every serious agent system ends up with the generate-and-check shape, because a generator alone scales into more unverified output rather than into more correct output. The cheap checker is whatever is available: a compiler, a test suite, a type checker, a schema validator, a numerical simulation. The rule of thumb is that the value of scaling the generator is capped by the strength of the checker, so effort spent making the checker stronger usually beats effort spent making the generator larger.

check yourself

Which two filters did this run put in its funnel?

test itread itmost proposals die hereworth the expensethe alternativeAgentspropose constructionsand lemmasRun codesimulate, bruteforce, check algebraCached interneta fixed, reproduciblecorpusWhat survivesa small fraction ofproposalsLeanthe expensive checkerA live internetirreproducible, and aDoS
ClientServiceData storeEdge / CDNExternaldashed = asynchronousconsidered, not chosen
Generate, check cheaply, and only then spend the expensive verification
evidence · 1 source
  1. 01
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    That agents had access to tools including running code and reading from a cached version of the internet, and that they communicated with other agents within their groups.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.
05

Lean as the referee, and what it does not settle

advanced

After the agents reached their result, a further 17 hours went into formalising and checking the proof in Lean. Lean is an interactive theorem prover with a small trusted kernel: you write a statement and a proof in its language, and the kernel mechanically verifies that the proof establishes the statement from the axioms. It does not read prose, it does not accept a gap, and it does not get tired at page 140 of 166.

That is a genuinely strong guarantee and it is precisely bounded, which is why it deserves stating carefully. What a Lean check establishes is that the formal statement follows from the axioms by the rules of the logic. Every step is present and every step is valid. For a long analytic argument, where the traditional failure mode is a lemma that is true in the cases the author considered and false in one they did not, this closes off the most likely way for a claimed proof to be wrong.

What it does not establish is that the formal statement is the theorem anyone cares about.

Between Fefferman's problem description and a Lean statement sits a translation, and the translation is done by humans and machines with no formal check of its own. Getting the function spaces right, the decay conditions right, the quantifiers in the right order, the notion of solution matching the one specified: each is an opportunity to formalise something adjacent to the intended claim and prove that instead. Nothing in the Lean toolchain can catch it, because the toolchain's job starts after the statement is written.

So the verification is real and the gap is in a specific place, and naming that place is more useful than either dismissing the check or over-reading it. The proof is machine-verified. Whether the machine verified the right proposition is a question for mathematicians reading the statement, which is exactly what the review period exists for, and it is why the Lean artefact accelerates the scrutiny rather than replacing it.

Terence Tao's objection is aimed somewhere else again and is worth carrying, because it is about value rather than validity. The primary worth of mathematical work, on his framing, is the digestible insight rather than the fact that a problem is closed; if the search process remains a black box, its value to mathematics is close to zero. A verified proof that nobody can extract a technique from settles one question and teaches nothing, and for a field whose output is understanding rather than answers, that is a real deficiency rather than a philosophical complaint.

why this choice

A machine-checked proof closes the most likely failure mode of a long analytic argument, which is a gap nobody noticed, and leaves untouched the one nothing in the toolchain can check: whether the formalised statement is the intended one. That translation from an informal problem description into a formal statement is where the remaining risk lives, and knowing exactly where it lives is what makes the artefact useful rather than either conclusive or worthless.

in practice

The pattern is the same as any verification whose scope is narrower than its reputation. A type checker proves internal consistency and says nothing about whether the types describe reality, which is why data from a network still needs validating. A passing test suite proves the assertions hold and says nothing about whether the assertions were the right ones. In each case the technique is sound and the gap sits at the boundary where an informal intention becomes a formal statement, and that boundary is always checked by a person.

check yourself

Which failure does formalisation most effectively rule out?

unchecked stepwritten by handmechanically verifiedthe remaining questionFefferman's specinformal, withconditionsTranslationspaces, decay,quantifiersLean statementformal, and possiblyadjacentKernel check17 hours, no gapspermittedHuman reviewis this the rightstatement?
ClientServiceData storeExternaldashed = asynchronousconsidered, not chosen
The proof is checked mechanically; the statement is checked by people
evidence · 2 sources
  1. 01
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    That a formalisation in Lean was produced and released alongside the written proof, and the reported further 17 hours spent formalising and checking it.

  2. 02
    Lean: theorem proving in Lean 4

    What a Lean check establishes: that a proof term inhabits the stated type, verified by a small trusted kernel, which is a statement about the formalised proposition rather than about its faithfulness to an informal one.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.
06

The disputes, and why provenance is an engineering problem

advanced

Two mathematicians, Tristan Buckmaster at NYU and Levent Alpöge, had spent months working with AI systems on a closely related line of research on forced Euler equations. The overlap in subject and timing produced a question about where OpenAI's result came from, and the question has not been resolved. Buckmaster has said plainly that he has not seen the proof and does not know what the model did or how it worked.

OpenAI's position, as reported, is that the model did not have access to their specific work before publication, while acknowledging that it cannot rule out that de-identified data contributed to training. Those two statements are compatible and the second is the significant one, because it is an admission about a system property rather than about an incident: if product data flows into training in de-identified form, then the question of whether a particular user's work influenced a particular output is not answerable, by construction.

That is what makes this an engineering topic rather than a news item. Provenance of inputs is a property you build in or lack permanently, and it cannot be reconstructed after the fact. The cached corpus discussed earlier is the good version: a frozen snapshot means the question of what the system could read has an answer. The training data is the bad version, not because anything improper is established, but because the pipeline was not designed to answer questions of this shape and so cannot answer them now.

The priority dimension is separate and simpler. Two groups working the same problem is ordinary in mathematics and the discipline has machinery for it: preprints with dates, journal submission records, seminar talks. What is new is the possibility that one party's tooling saw the other's unpublished work, which the existing machinery has no answer for, because it was designed for a world where reading someone's drafts required them to hand them to you.

The transferable rule is short and unpopular. If a system's outputs will be scrutinised for originality, the provenance of its inputs has to be a designed property with an audit trail, decided before the system runs. Everything else, including a completely honest denial, reduces to a claim that cannot be checked, and a claim that cannot be checked is worth very little precisely when it matters most. The cached internet in this same system shows that OpenAI knows how to do this; the training pipeline shows what it costs when a component was not built for the question later asked of it.

why this choice

The admission that de-identified training data cannot be ruled out is a statement about the architecture, not about an incident: a pipeline that anonymises inputs cannot afterwards answer whether a specific person's work influenced a specific output. That is why provenance has to be designed in rather than investigated later. The same system shows both answers, since the frozen corpus makes what the agents could read a knowable fact and the training data does not.

in practice

The general requirement is a lineage trail: for any output, which inputs contributed and under what licence or consent. Data platforms have converged on this because regulators asked, and machine learning systems are being asked the same questions later and with weaker foundations. The practical test is whether you could answer, in writing, which customer data contributed to a given model artefact. If the answer needs an investigation, the property does not exist.

check yourself

Why does existing academic priority machinery not settle this dispute?

one inputthe other inputdesigned innot designed inall that remainsA published resultscrutinised fororiginalityCached corpusfrozen, enumerableTraining datade-identified, nottraceableWhat could it read?answerableWhose work?unanswerable byconstructionAn honest denialthat nobody can check
ClientData storeServiceExternaldashed = asynchronousconsidered, not chosen
One system, two answers: a frozen corpus is knowable, training data is not
evidence · 2 sources
  1. 01
    VentureBeat, OpenAI solves longstanding math problem with a 10,000-agent swarm

    That OpenAI denies direct access to the researchers' work while acknowledging it cannot rule out the use of de-identified data, and that Buckmaster and Alpöge had been working on a related line of research on forced Euler equations.

  2. 02
    OpenAI, On the Navier-Stokes Millennium Prize Problem (2026)

    OpenAI's own account of the run, against which the provenance question is being asked.

ask about this
Answers are generated and can be wrong. The topic above is the reviewed version.