freecoding.school100% FREE · NO SIGNUP
The Seven LayersISSUE #66 of 73

the BE bus · how agents talk · packets never globals

OMNIVSThe Silent Failure
OMNI saysAgents talk only by passing BE packets along a bus — the next field chains one hand-off to the next. No shared mutable state, ever.

Inside one agent, layers pass continuation packets; across agents it is the same primitive scaled up — the BE bus. Every message between agents is a BE packet {layer, verb, payload, next}, and the only way to talk is to emit one. There is no shared blackboard, no global store two agents both write. This is the architectural reason a molecular swarm is safe to parallelize: with no shared mutable state there are no data races, and every interaction is a value you can log, replay, and VERIFY.

The next field is what turns isolated messages into a flow. A worker that finishes sets next to the address of whoever should act on its result — the conductor, a critic, or the next stage in a pipeline. Following the next chain end to end reconstructs exactly what happened, which is why the bus and the per-user chain fit together so naturally: the bus carries packets live, the chain records the ones that mattered.

Power-ups you unlock

The Silent Failure attacks — common mistakes

Boss battleRoute a result through three agents using only BE packets and the next field, then reconstruct the full path by walking the next chain.

Example code

<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#b388ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
// 4-arg BE so the next address is explicit on the bus
const be = (layer, verb, payload, next) => ({ layer, verb, payload, next });
// agents registered on the bus by name; each sets next to who acts on its result
const AGENTS = {
  scout:  (p)=> be('cell','EXPRESS', { found:'data for ' + p.goal }, 'builder'),
  builder:(p)=> be('cell','EXPRESS', { built:'feature from ' + p.found }, 'critic'),
  critic: (p)=> be('metaSurf','VERIFY', { ok:true, of:p.built }, null)
};
function bus(start, seed){
  const path = [];
  let pkt = be('cell','SEED', seed, start);
  while(pkt.next){
    path.push(pkt.next);
    pkt = AGENTS[pkt.next](pkt.payload);   // dispatch to whoever next names
  }
  return { path, final:pkt };
}
const r = bus('scout', { goal:'ship' });
document.getElementById('o').textContent =
  'packet path: ' + r.path.join(' → ') + '\nfinal: ' + JSON.stringify(r.final.payload);
</script></body></html>
▶ Open the interactive comic issue
‹ Apoptosis · Programmed Agent Death · PRUNE On DoneAgent Memory · Handoff Packets & The Per-User Chain ›