Ephemerality: scaling multi-agent development beyond imagination

Ephemeral Workspaces.
Durable Shared History.

LayerFS is the substrate under your agents. Each one mounts a complete, writable Workspace over shared committed history, does its work, commits what it changed, and goes away.

  • Ephemeral workspaces
  • Durable results
  • Massive parallelism

LayerFSandDSHLayerFSandPisoon

Why LayerFS

Ten ideas, one filesystem.

six core · four supporting

Compute exists only while a command runs.

fs · atomic write → Storewriteeditrmsandbox · workspace per bashmountexeccommitunmountmountexeccommitunmountmountexeccommitunmountmountexeccommitunmountmountexeccommitunmount>_ mkdir out>_ cat log.txt>_ python train.py>_ node build.jsUpToDateStoreC41C42C43C44C45C46
  • Compute: Agents spend ~80% thinking, ~10% in Bash.
  • FS: Each file tool call is one atomic Store op.
  • Sandbox: Each Bash tool call mounts an ephemeral workspace, then commits.

Agents on different computers share one serverless Store.

store.dbC41C42C43C44C45C46C47computer 1computer 2computer 3computer 4
  • Shared storage: Every agent commits to one Store, with no DB server.
  • Distributed computing: Each agent runs on its own computer.

One project, many branches. One branch, many agents.

mainauthuilogin.tsapi.tssession.tsapp.tsxtoken.tsapp.tsxnav.tsxConflict: app.tsxapp.tsx · merge markers<<<<<<< head C44 <Cart />======= <Search />>>>>>>> workspaceblame app.tsxC12import NavC44<Header />C44<Cart />C46<Search />L3 · publishL4 · publish
  • Commits: Every tool call is a commit on its branch.
  • Conflict: A same-file clash is refused with Conflict.
  • Blame: Each line names the step that wrote it.

Fork recursively any commit, at any depth.

publish0.620.480.210.400.780.660.300.710.910.69prunedprunedprunedprunedpruned★ best 0.91explorers ×3explorers ×3explorers ×4explorers ×3explorers ×1fork: no files copied
  • Zero cost: A fork is metadata and copies no files.
  • Recursive: A filesystem for RSI agents and recursive exploration for RL training.

10 copies compress into 0.31.

commits1 · dedupe12 chunks13 chunks14 chunks15 chunks11 matched · +1 new11 matched · +1 new11 matched · +1 newdedup → ≈1.05 copies→2 · compress≈0.31 copiesillustrative · store.stats
  • Dedup: Each content chunk is stored once.
  • Compression: The stored chunks shrink further.
  • Ratio: 10 copies → 1.05 dedup → 0.31 compression wtf???

Dependencies come with every mount. No wasting time for re-installation.

1 · git / other AgentFS without .gitignore filesoops!src/package.json.git/node_modules/node_modules/.cache/.cache/$ npm test✗ Error: Cannot find module 'react'$ npm install$ npm test✓ passed⏱ 0:05⏱ 0:20⏱ 1:00⏱ 2:00⏱ 3:00⏱ 4:00⏱ 5:00⏱ ≈5 min before the first runclone + install, typical⚠ wasting time · waiting on install⌛2 · LayerFSnpm install committed once, back then (C12)src/package.json.git/node_modules/.cache/$ mount → workspace ready$ npm test✓ passedinstant · no install⚡ mount 0.05 smeasured mounts: 5–20 ms⚡⚡ ready the moment it mounts
  • Git / other AgentFS: Drops ignored files; reinstalls.
  • LayerFS: Ignored files stay in every commit.
  • Comparison: ~5 min to install vs 0.05 s to mount.

Agent tool calls and their history

HISTORYmain @ L00 commits · 0 live
0:100:200:300:40nowL0main · show every Branchmain
Overviewdrag · ↑ ↓ · End
main is the green middle bough; each publish adds a Layer bandLayer · a band on mainCommit · a leafBranch · a boughmerge · grafts backpublish · adds a bandstopped · bare twig
sandboxes00 workspaces mounted12 idle
no Branch yet · the orchestrator forks one from main
unassignedcrabjellyshroomfrogghostflamebotsproutaxolotlbatsnailpenguin
store.statsmain · read-only
dedupe1.5×
compression3.32×
stored9.4 MB
file10.0 MB
logical 48.0 MB · canonical 31.2 MB · metadata 420 KB · free 180 KB · 0 commits · 1 layers
orchestratorproject · branch