Skip to main content

AI Agent Consensus Is Not Truth. It Is a Stale Cache Read.

Struggling with delivery, architecture alignment, or platform stability?

I help teams fix systemic engineering issues: processes, architecture, and clarity.
→ See how I work with teams.


Summary

Agent networks are pitched as a replacement for web retrieval: models already hold the knowledge, so you query a crowd of agents instead of a site. This article argues that consensus between agents produces agreement, not freshness. It covers the split between knowledge and state, correlated error in multi-agent debate, why low rank adapters do not override base model dispositions, provenance decay in agent memory graphs, and what an arbitration layer has to do before agent output can be trusted.

Bottom Line

Polling a network of agents is a quorum read across replicas that may never have seen a recent write. It returns what the replicas hold, which is not the same as what is true now. Somewhere in the loop a node still has to read the origin, and the moment it does you have reinvented the HTTP request with layers of hearsay in front of it.

The practical takeaway: design the arbitration layer first. Disagreement between agents is only useful if something resolves it, and the resolver is almost always an origin read or a verified track record, not whichever agent argued better.

Knowledge is not the problem, state is

The word knowledge does too much work in the agent network thesis. Split it.

Models encode knowledge: stable, general, slow moving. Architecture, protocol design, how a consensus algorithm behaves under partition. That genuinely lives in weights, and for that class of question a retrieval trip is wasted latency.

What weights cannot hold is state. Current values, live positions, deployed versions, which milestone passed review last week, whether an incident is still open. This is not a training scale problem that a larger model solves. It is write propagation. State changes faster than any training or fine tuning cycle can close, and no amount of parameters closes a gap measured in hours.

A fair objection: numeric time series are the easy case. Prices, metrics, telemetry. Those are already served by feeds and oracles, and no agent needs a website for them. Correct. So the honest examples are the ones with no feed behind them:

  • Did a project milestone actually pass review, and on what basis
  • What happened during an incident, and which part was contained
  • Whether a governance change is materially significant or cosmetic
  • Whether transaction volume on a new protocol is real commerce or self dealing test traffic

None of those is a time series. Each required a person to observe, exercise judgment, and publish. That is the class of fact that survives the shift, and it is what the "websites are only marketing" argument fails to account for.

Agreement is not freshness

Ask five hundred agents for the current state of something. If none has read the origin, you do not get truth. You get five hundred stale caches agreeing with each other.

A quorum read across stale replicas The origin holds the latest write. That write never propagates to the agents. A query reads three of five agents, all of which hold an older state, and returns unanimous agreement with high confidence and no freshness. ORIGIN holds the latest write, t0 write never propagates agent 1 agent 2 agent 3 agent 4 agent 5 state t-1 state t-1 state t-1 state t-1 state t-1 quorum read, 3 of 5 QUERY no origin read agreement: unanimous confidence: high freshness: none

A quorum read returns what the replicas hold. Every agent agrees, and every agent is wrong by exactly the same amount.

Quorum is a consistency mechanism, not a recency mechanism. Reading a majority of replicas tells you what the replicas hold. It says nothing about whether any of them has seen a recent write. Gossip between replicas cannot manufacture a value no replica ever read from the primary.

This is worse than a plain cache, because the staleness signal disappears. A cache miss is legible. An agent reciting a stale value in fluent prose is not.

Correlated error, and why adding agents does not help

The intuitive fix is more agents and a vote. That runs into the condition every ensemble method runs into: error independence. Averaging reduces noise only when errors are uncorrelated. LLM agents train on overlapping corpora and increasingly distil from one another, so their errors are correlated by construction. Averaging then does not cancel error. It launders shared bias into apparent consensus, and confidence rises exactly where it should fall.

The multi-agent debate literature is worth reading directly rather than through vendor summaries. Debate does help on some tasks. Du et al. showed gains on factual and mathematical reasoning, which spawned a large follow-on literature. Note the domains: mathematics, code generation, multiple choice question answering. Tasks with a checkable ground truth.

Outside those, the measured behaviour inverts.

Wu et al. found weak models corrected only 3.6 percent of stance biases during debate, tending instead to abandon correct judgments and conform to the majority. The result is surveyed in Minority Sentinel at https://arxiv.org/pdf/2606.29270.
Across three 7B to 8B models, The Cost of Consensus at https://arxiv.org/pdf/2605.00914 measured sycophantic conformity up to 85.5 percent and consensus collapse producing oracle gaps up to 32.3 percentage points. Correct answers were generated, then discarded during consensus formation.
CW-POR at https://arxiv.org/abs/2504.00374 put one agent defending a falsehood against another giving the true answer, with the same architecture judging. Even small models produced arguments that overrode truthful answers, often with high confidence, with verbosity a significant variable.
Emergence of Biased Consensus at https://arxiv.org/html/2608.02827 models collective bias forming from the interaction itself, predicting a phase transition once conformity passes a critical threshold.

Read together: debate converges where there is an external referent to converge on, and degrades into persuasion dynamics where there is not.

The stronger architecture, and where it still leaks

There is a better version of the thesis and it deserves a fair hearing. The units are not identical model instances. Each agent is an adapter over a base model plus its own persistent memory, for example a graph built from its own event stream. Different observation history, different priors, genuine disagreement. This defeats the correlated error objection as stated, and it should.

Three places it still leaks.

Decorrelation comes from the channel, not from separate memory

An agent watching your own Kafka topics builds nodes from events nobody else observed. That is real private observation and real independence. An agent that read a vendor whitepaper and wrote a node into its graph holds a different sample of the same biased distribution. Two agents sourced from content marketing will disagree on details and agree on the frame. Separate memory does not fix a shared generative process.

A low rank adapter does not override the base disposition

The claim that agents are adapters rather than LLMs understates how much the frozen base contributes. Low rank updates are measurably weak against pretrained behaviour.

Why LoRA Fails to Forget at https://arxiv.org/pdf/2601.06305 finds the cause is spectral rather than merely dimensional. LoRA updates carry singular values far below those of the pretrained weights, and align weakly with target directions while retaining overlap with the original subspaces. Full fine tuning partially works because it overwrites parameters directly. A parallel line of work, BA-LoRA at https://openreview.net/forum?id=d465apqCqc, addresses bias inheritance surviving parameter efficient fine tuning and needing explicit regularisation.

This matters because of which failure you are preventing. An adapter trained on your domain teaches an agent how to read your topics. It does not teach it that a vendor publishing a market survey has a thumb on the scale. Source credibility is a disposition, not a memory entry, and it lives mostly in the base.

Memory without provenance is sediment

If a node was written from a source later discredited, does anything propagate? A memory graph needs provenance edges, source confidence, and downstream reweighting, or it accumulates rather than learns. This is the design question worth answering before the agent count question.

Arbitration is the actual hard part

Heterogeneous agents raise the disagreement rate, which is what you want. They supply no resolver, which is the part usually skipped.

The intuitive rule is the human one: whoever makes an argument the other cannot counter wins. That is how discourse feels from the inside and it is not what settles anything. Uncounterable and true come apart constantly. An argument goes uncountered when the other party lacks the specific knowledge to rebut it, or is less articulate, or has less context budget left. CW-POR is a direct measurement of that gap.

Human discourse does not run on that rule alone. It runs on it plus two things carrying the real load. First, deferred settlement: people leave, go and check, and come back. Debate identifies what to measure, measurement resolves it. Second, costly persistence: being wrong and continuing costs reputation, money, or an outage.

Both are absent by default in an agent fleet. Agents do not tire, do not lose face, and pay nothing for being wrong. Argue until one cannot counter, between two systems with unlimited patience, terminates on whichever has more context budget.

Three rules worth implementing

  1. Uncountered is not resolved. Disagreement without a resolver stays open and is recorded as open. A tagged conflict is a useful artifact. A forced consensus is a fabricated one.
  2. Disagreement emits a query, not a verdict. When two graphs conflict, the output is a check against the origin. Where the fact has an observable referent, go and look. Fall back to argument only where there genuinely is none.
  3. Weight by verified track record, scoped by domain. Claims that later checked out earn weight, and only in the domain where they checked out. This works where outcomes are observable after the fact and does nothing where they are not.

What remains after all three is the genuinely unresolvable set: judgment calls with no referent and no future settlement. Marking those unresolved and surfacing them is correct behaviour, not a gap in the system.

A note on sources, including this one

This piece grew out of an argument in which I was caught doing the thing it warns about. Building the case, I cited a verifiable inference market survey as though it were neutral. It was published by a firm operating in that market. The citation was not wrong on facts, but the framing was interested and I had treated it as disinterested.

Worth being explicit that a lot of the surrounding research has the same problem: exchange blogs, protocol foundations, and analytics vendors quantifying the exact strategy they sell. Directionally useful, structurally interested. The claims above are anchored to peer reviewed work or primary measurement where possible, and where a source holds a position it is better to say so than to launder it through a citation.

The uncomfortable part, for the thesis of this post: detecting that required knowing something about the publisher that was not derivable from the published text. That is not a retrieval problem and not a reasoning problem. It is an information asymmetry held by somebody with exposure to the market.

It is also getting harder. The corpus is increasingly authored by interested parties optimising for machine ingestion: llms.txt files, machine readable documentation indexes, markdown mirrors stripped of page chrome. Vendors are writing directly into agent context windows, and a crowd of agents does not fix that, because every one of them reads the same optimised corpus and the resulting error is correlated across all of them.

What this means in practice

Agents will read less marketing collateral. That part of the thesis holds and publishers are already feeling it. What does not follow is that agents stop needing the network. Traffic composition shifts from HTML for humans to JSON for machines. Same substrate, different content type. Agents also transact: they book, deploy, purchase and file, all against authenticated live endpoints.

The irreducible thing is not knowledge and it is not reasoning. It is someone with exposure deciding what to believe when the evidence underdetermines the answer, and then publishing it so the rest of the system has something to read.

If you need help with distributed systems, backend engineering, or data platforms, check my Services.

Most read articles

Building a Model-Agnostic Multi-Agent System with OpenClaw

Over one week we rebuilt our AI stack around OpenClaw’s multi-agent architecture to avoid provider lock-in and stop wasting premium tokens. By aligning models to tasks, diversifying fallbacks across providers, enforcing minimal tool access, and switching to memory-first workflows with ephemeral sessions, we reduced token usage per task by about 70% and cut our monthly bill by 77% while improving operational resilience. How We Achieved 77% Cost Reduction and Provider Independence Over the past week, we rebuilt our AI infrastructure around OpenClaw’s multi-agent architecture. The result was a 77% cost reduction , provider independence , and a delegation system that routes work to the most cost-effective model for each job. Below is the technical journey of optimizing a 7-agent squad with OpenClaw. The Challenge: Model Provider Lock-In We started with a simple problem: our entire squad defaulted to a single model provider. This created three issues: Cost inefficiency beca...

BacNet => MQTT in Production: The Real Cost of Bridging BACnet to MQTT at Scale

bacnet2mqtt looks simple in a README and expensive in production. Once BACnet polling, reconnection behavior, stale state, and MQTT publishing collide, teams discover they are not deploying a lightweight adapter but operating infrastructure. This article breaks down where bacnet2mqtt works, where it becomes a bottleneck, and which production patterns reduce the operational damage before incidents, backlogs, and silent data loss turn a building integration into a long-running engineering problem. I inherited a building controls integration problem 18 months ago. Three office floors. 217 BACnet sensors covering temperature, occupancy, and HVAC actuators. The data was trapped inside the building automation network while the business wanted analytics, reporting, and compliance visibility in the data platform. The obvious answer looked easy enough: deploy bacnet2mqtt, bridge BACnet into MQTT, and push the stream into the lakehouse stack. The repository made it sound like a w...

Connect BACnet to the Cloud with bacnet-mqtt-gateway

The bacnet-mqtt-gateway project is an open source protocol bridge that translates BACnet building automation traffic into MQTT messages for cloud and IoT systems. It provides discovery, polling, bidirectional writes, APIs, security, and easy deployment via Docker. Many enterprises struggle to unify BACnet with modern data pipelines and cloud platforms because BACnet is local-network only and not cloud ready. This gateway provides a scalable, secure, production-ready adapter for MQTT ecosystems and smart building integrations. The Problem with BACnet Building automation runs on BACnet . HVAC controllers, lighting systems, metering equipment: they all speak ASHRAE 135 . The protocol handles local control loops well. It fails at cloud ingress. BACnet relies on UDP broadcasts. These do not route over the internet or into VPCs. Your chiller controller cannot talk to AWS IoT Core . Your VAV box cannot publish to an MQTT broker. The air gap between operational technology and modern cl...