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

agent memory · handoff packets & the per-user chain

OMNIVSThe Silent Failure
OMNI saysWhen a worker dies, almost everything is discarded. What survives is the signal it REMEMBERed and the block it COMMITted to the per-user chain.

A spawned worker is amnesiac on purpose. While alive it may hold a lot of context, but apoptosis (mol-65) wipes all of it. Persistence is deliberate and narrow: the worker REMEMBERs a signal — a small, structured finding, not its raw working state (R4: memory holds signals, not state) — and the orchestra COMMITs a block recording that the worker ran and what it produced. The live hand-off between agents travels in the packet; the durable record lives on the chain. Two channels, two jobs.

This is why a swarm can run for days and stay auditable. You cannot ask a dead worker what it was thinking, but you can read its signal and replay the chain to see exactly which workers were spawned, in what order, and what each contributed. Memory in a molecular swarm is therefore a property of the system, not of any one agent — no single worker remembers much, yet the whole leaves a complete, verifiable trail.

Power-ups you unlock

The Silent Failure attacks — common mistakes

Boss battleSpawn a worker, have it REMEMBER one signal and COMMIT a block, then PRUNE it and prove you can still reconstruct what it did from the chain alone.

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>
const be = (layer, verb, payload) => ({ layer, verb, payload });
const CHAIN = [];
function commit(meta){
  const prev = CHAIN.length ? CHAIN[CHAIN.length-1].hash : 'genesis';
  const block = { n:CHAIN.length+1, prev, meta, hash:(CHAIN.length+1) + '_' + meta.role };
  CHAIN.push(block); return block;
}
function runAndRetire(role, goal){
  let ctx = { scratch:'lots of working state for ' + role };          // big, transient
  const signal = be('memory','REMEMBER', { role, finding:role + ' verified "' + goal + '"' }); // small, durable
  commit({ role, finding:signal.payload.finding });
  ctx = null;                          // apoptosis: wipe the worker's runtime
  return signal.payload.finding;
}
['scout','builder','risk'].forEach(r => runAndRetire(r, 'ship'));
// every worker is gone — reconstruct ONLY from the chain
const replay = CHAIN.map(b => '#' + b.n + ' ' + b.meta.role + ': ' + b.meta.finding).join('\n');
document.getElementById('o').textContent = 'workers retired. chain replay:\n' + replay;
</script></body></html>
▶ Open the interactive comic issue
‹ The BE Bus · How Agents Talk · Packets Never GlobalsThe Critic · MetaSurf As Supervisor · VERIFY Gate ›