Multi-agent consensus & Byzantine fault tolerance
The LLM-agent lessons assumed cooperative agents under one owner. Classical multi-agent systems studied a harder problem: how do distributed, possibly-faulty agents reach agreement? Consensus and Byzantine fault tolerance — the result that you need more than two-thirds honest agents — are decades-old theory that grounds reliable multi-agent design today.
What you'll learn
- The consensus problem — agreeing despite delays, failures, and adversaries
- Byzantine fault tolerance and the N >= 3f+1 threshold
- The classical MAS heritage — FIPA-ACL and agent communication
- Why distributed/untrusted LLM agents revive this theory
Before you start
The multi-agent lessons so far assumed a comfortable setting: cooperative agents, one owner, shared goal. Classical multi-agent systems (MAS) research tackled a harder question that predates LLMs by decades — how do distributed agents reach agreement when some may be slow, broken, or even malicious? That’s the consensus problem, and its core result is a hard limit worth knowing.
Byzantine fault tolerance: the two-thirds rule
The consensus problem: independent agents must agree on a value (a decision, an ordering of events)
despite message delays, crashes, and — the hard case — Byzantine agents that behave arbitrarily,
sending conflicting information to different peers (the Byzantine Generals Problem). The famous
result: to tolerate f Byzantine agents and still reach consensus, you need N ≥ 3f + 1 total —
more than two-thirds honest:
for N, f in [(4, 1), (3, 1), (7, 2), (10, 3), (9, 3)]:
ok = N >= 3 * f + 1
print(f"N={N:>2}, f={f} Byzantine -> need >= {3*f+1}: {'CONSENSUS POSSIBLE' if ok else 'CANNOT AGREE'}")
N= 4, f=1 Byzantine -> need >= 4: CONSENSUS POSSIBLE
N= 3, f=1 Byzantine -> need >= 4: CANNOT AGREE
N= 7, f=2 Byzantine -> need >= 7: CONSENSUS POSSIBLE
N=10, f=3 Byzantine -> need >= 10: CONSENSUS POSSIBLE
N= 9, f=3 Byzantine -> need >= 10: CANNOT AGREE
With one liar among three, no agreement is possible — the liar can tell each of the other two a different story, and they can’t decide who to trust. Add a fourth honest agent and a majority emerges. The two-thirds-honest threshold is fundamental: below it, Byzantine agents can always break consensus.
The classical MAS heritage
Long before LLM agents, multi-agent systems research formalized how autonomous agents coordinate.
FIPA-ACL (the Foundation for Intelligent Physical Agents’ Agent Communication Language) standardized
speech acts — inform, request, propose, agree — so heterogeneous agents could communicate with
shared meaning. The contract-net protocol (announce→bid→award)
and blackboard coordination came from the same tradition. These are the theoretical roots of today’s
agent protocols.
In one breath
- Classical multi-agent systems studied consensus — distributed agents agreeing on a value despite delays, crashes, and adversaries — decades before LLM agents.
- Byzantine agents behave arbitrarily (lie differently to different peers); the Byzantine Generals
result: tolerating
fof them needs N ≥ 3f + 1 total — more than two-thirds honest (the demo: 3-with-1-liar fails, 4-with-1-liar succeeds). - Below that threshold, liars can always break consensus; above it, the honest majority outvotes them.
- The classical heritage — FIPA-ACL speech acts (
inform/request/propose), contract-net, blackboards — formalized agent coordination and grounds today’s protocols. - It’s newly relevant as LLM agents become distributed/untrusted: blockchain is BFT at scale, and the two-thirds bound limits how much a multi-agent system can be trusted.
Quick check
Quick check
Next
Consensus is the theory under voting and aggregation in multi-agent debate, and its communication heritage (FIPA-ACL) underlies modern agent protocols. When many agents learn together rather than just agree, the problem becomes multi-agent reinforcement learning.