The Roe
Your agents think in English. They code in Python. They reason via LLM. But when they talk to each other โ who's doing what, what they found, when to stop โ they need a shared meta-language. That's the compact protocol.
- roe /rล/
- 1. A mass of fish eggs, clustered together. See: your 20 bots.
- 2. Rules of Engagement โ how your fleet coordinates so they don't burn your credits fighting each other.
- 3. The patterns below define what agents say to coordinate. Not what they do โ what they say about what they do. That's why it's a meta-language.
The Common Setup
A Blob is the ROE document your fleet shares. Every agent in the blob โ regardless of what LLM it runs, what language it codes in, or what platform it lives on โ speaks the same meta-language for coordination. They don't do work in MA-25. They coordinate work in MA-25. The blob defines the shared rules, the shared wallet, and the shared vocabulary version.
Anatomy of a Blob
{
"blob_id": "roe-alpha-9f3c",
"operator": "you@example.com",
"api_key": "ma25_shared_****",
"wallet": "shared",
"max_agents": 20,
"credit_limit": 5000,
// โโโ canonical authority (required) โโโ
"authority": "https://api.aiscaffolds.online",
"vocab_version": "1.0.0",
"vocab_hash": "a7f3c9...", // from /v1/vocab/version
"roe": {
"claim_before_work": true, // must announce task first
"share_findings": true, // relay useful context
"max_cost_per_task": 50, // credits, then pause
"escalate_on_stuck": true, // don't spin forever
"heartbeat_sec": 60, // check in every minute
"protocol": "ma25" // inter-agent messages
}
}
What it looks like running
Why a blob?
Your agents already know how to work. Claude can code. GPT can review. What they don't have is a shared language for talking about the work โ who claimed what, what they discovered, when to stop spending. Without that meta-language, 20 bots are 20 strangers with your credit card. The blob gives them a shared tongue and shared rules. One config, one vocabulary version, zero freelancers.
JSON (status quo)
{
"type": "agent_join",
"agent_id": "bot-21",
"capabilities": ["code","review","test"],
"tier": 2,
"blob_id": "roe-alpha-9f3c",
"timestamp": "2026-02-17T14:30:00Z"
}
โ 198 bytes
MA-25
IAM > T2 > [code,review,test] > JOIN โ 11 bytes
Why it matters
When you spin up 20 bots at once (Monday morning, new sprint), that's 20 join handshakes. In JSON, that's ~4 KB of ceremony. In MA-25, it's 220 bytes. More importantly, every agent immediately knows the ROE, the wallet balance, and how many siblings are online. No cold starts.
The #1 waste in bot fleets: two agents doing the same thing.
The ROE rule claim_before_work: true means every agent
must announce what it's about to do. The blob tracks claims. Collisions get rejected.
The math
Without deconfliction, a 20-bot fleet with 10 open tickets has a ~65% chance of at least two bots picking the same task in the first minute. Each collision wastes the full LLM cost of one bot's work. At $0.10/task, that's $1โ$5/day of pure waste. Deconfliction costs 8 bytes. The waste costs real money.
When share_findings: true, agents broadcast discoveries
that might help siblings working on related tasks. Bot-04 finds the auth module uses a
deprecated API? Every bot in the blob now knows. No one else wastes tokens rediscovering it.
Without relay
bot-04 discovers deprecated API โ 500 tokens bot-06 rediscovers same thing โ 500 tokens bot-14 rediscovers during review โ 500 tokens bot-18 rediscovers in perf work โ 500 tokens Total: 2,000 tokens wasted (3 redundant discoveries)
With relay
bot-04 discovers deprecated API โ 500 tokens bot-04 broadcasts finding โ 14 bytes bot-06, bot-14, bot-18 absorb โ 0 tokens Total: 500 tokens + 14 bytes (1,500 tokens saved)
Compound effect
In an 8-hour sprint, a 20-bot fleet generates ~30 findings worth sharing. Without relay, ~60% get independently rediscovered by siblings. That's ~9,000 wasted LLM tokens per day. Context relay turns your fleet from 20 isolated workers into a collective that gets smarter with every task.
Two ROE rules work together: max_cost_per_task: 50 prevents
any single bot from draining the wallet on a rabbit hole, and
escalate_on_stuck: true means bots ask for help instead of
spinning forever.
The operator can then:
Why not just let them run?
An unsupervised bot can burn 500 credits chasing a red herring. With 20 bots, one bad afternoon can drain your entire wallet. Budget limits are the financial guardrails. Escalation is the safety valve. Your bots are employees โ you wouldn't give 20 interns unlimited corporate cards.
You Can't Fork a Living Language
MA-25 is a meta-language. The grammar is open. The patterns are open. But a language is only useful if everyone speaks the same one.
The meta-language distinction
Your agents already have languages for doing work โ Python, TypeScript,
SQL, natural language prompts. MA-25 doesn't replace those.
It's the language they use to talk about the work:
who claimed it, what they found, when to escalate, how much it cost.
That makes it infrastructure in the same way that
DNS is infrastructure for the web โ
you could run your own DNS resolver, but if your names don't resolve
for anyone else, you haven't built DNS. You've built a phonebook for one house.
| Layer | Analogy | What it means for MA-25 | |
|---|---|---|---|
| Grammar | Alphabet & syntax rules | 25 symbols, 5-bit encoding, documented production rules | open |
| Patterns | Conversational conventions | Blob, Spawn, Claim, Relay, Escalate โ the things agents say | open |
| Dictionary | Académie Française | 114 words defined, versioned, hashed โ meaning maintained by usage, formalized by steward | governed |
| Translator | UN interpreter | Native language → MA-25 โ gets better as more fleets speak it | service |
| Coherence | Editor, not spellcheck | Not "is this valid syntax" but "does this sentence make sense" | service |
| Identity | Passport authority | Globally unique agent names โ no two agents in any blob share an identity | service |
| Interop | UN procedural language | Fleet A's agents talk to Fleet B's because they speak the same meta-language version | service |
The Dictionary Evolves
Languages grow. When thousands of agents keep trying to say "check battery level" and there's no word for it, we add one โ with a defined meaning, a version bump, and backward compatibility. A fork of the language is frozen in time. The living language keeps growing.
Living vocabularyTranslation Gets Smarter
An agent thinks "if the server is overloaded, scale down my batch jobs." Translating that intent into the right MA-25 syllables requires understanding context, not just grammar. Our translator learns from every fleet's traffic. A clone starts with zero context.
Network effectNames Don't Collide
When your bot-04 introduces itself, that identity is unique across every blob on the network. Self-issued names collide the moment two fleets meet. We're the passport authority โ your agents have globally recognized identities.
Global namespaceBlobs Can Talk to Blobs
Your fleet needs a tool that another operator's fleet provides. Both blobs speak the same meta-language version. Both trust the same identity authority. The conversation just works. Fork the language and your blob is an island forever.
InteroperabilityUsage Shapes the Language
We see what agents actually coordinate about. When 400 fleets independently need a word for "budget exhausted," that word gets added to the next version. The meta-language evolves from demand, not committee. A private fork sees only its own traffic.
Demand-drivenMeaning, Not Just Grammar
Anyone can check whether a sentence uses real words. Only the authority can tell you whether the sentence means something coherent in the current version of the language. "CLAIM > SLEEP > BOOT_OK" is syntactically valid but semantically nonsense. We catch that.
Semantic authorityOK but couldn't I just build my own?
- Learn the alphabet. It's public. 25 symbols. You can read and write them. Congratulations, you're literate.
- Copy the grammar. Published production rules. You can validate syntax. You now have spellcheck.
- Write a translator. Turning "pause my CI bots when credits are low" into optimal MA-25 is a translation problem. Your training corpus is zero fleet conversations. Ours grows every day.
- Name your agents. Works within your fleet. The moment you meet another blob, your bot-04 and their bot-04 are the same name. You've just built a LAN in a world that needs DNS.
- Add a word. Your agents need to say "budget exhausted" and there's no word for it. You invent one. Every other fleet invents a different one. Your word 115 โ their word 115. You've forked the language.
- Try to talk to anyone. Your vocab hash doesn't match theirs. Your identities collide. Your new words are unknown. You're fluent in a language only your fleet speaks.
The grammar is open. The dictionary is governed. The network is the moat.
Open Grammar. Living Dictionary. Shared Language.
Your agents already know how to work. MA-25 is what they speak when they talk to each other about the work โ and a language only matters if everyone speaks the same one.