Multiagent developer
Fork isolated work from a stable checkpoint, review evidence, and merge compatible results without accidental cross-writes.
This specification defines the public model, operations, invariants, acceptance criteria, and capability boundaries for 0.2.x. It is intentionally backend-neutral where semantics must survive OCI/Linux and WASI.
Problem statement
Multiagent coding, RL, and MCTS all create more logical branches than can remain live. If durable state is coupled to containers, mounts, or mutable sessions, cost grows with history and recovery becomes backend-specific. The product needs a durable graph abstraction that can be activated on demand.
Fork isolated work from a stable checkpoint, review evidence, and merge compatible results without accidental cross-writes.
Fan out reproducible trajectories from a pinned policy/root pair while bounding live compute and retaining versioned outputs.
Select, expand, evaluate, and prune a durable search tree without assigning one resident sandbox to every node.
Recover leases, transactions, and garbage collection after crashes while preserving selectable checkpoints.
Public object model
The graph model exposes durable intent. ExecutionAttempt records bind that intent to a specific backend, environment, resource budget, and lease for only as long as execution is needed.
Owns one immutable checkpoint graph and its canonical generation.
A selectable, immutable checkpoint with parentage and logical state.
A disposable activation of one node on one backend.
Versioned evidence and decision for one sealed result.
Operation contract
Every mutating operation accepts an idempotency key. Operations that advance shared state also accept an expected generation or root, making stale decisions visible instead of silently overwriting newer work.
create_groupforkinspectpruneactivateexecsuspendretryevaluatemergepromoteexportState machines
Normative requirements
| ID | Requirement | Acceptance evidence |
|---|---|---|
| FR-01 | Forking a sealed node creates children without copying the parent workspace payload. | Allocated payload bytes for N hot local forks remain zero for shared lower data. |
| FR-02 | Sibling attempts must not observe each other’s unsealed writes. | Concurrent write/read isolation test across at least two siblings. |
| FR-03 | Sealing publishes filesystem root, logical state, provenance, and result atomically. | Crash injection at every journal boundary yields either no node or one complete node. |
| FR-04 | Promotion and merge reject stale expected generations. | Race test proves at most one competing canonical advance succeeds. |
| FR-05 | Retries must not double-apply reward, evaluation, or MCTS backpropagation. | Repeated delivery of the same idempotency key leaves counters unchanged. |
| FR-06 | Selectable nodes and their ancestor closure remain pinned through GC. | Concurrent prune/GC/activate test never loses a leased root. |
| FR-07 | The same logical root must open with equivalent content through supported OCI/Linux and WASI adapters. | Cross-backend manifest walk produces equal paths, types, bytes, modes, and link targets. |
| FR-08 | Live sandbox count must remain bounded independently of durable graph size. | A large inactive graph never exceeds configured attempt and memory quotas. |
| FR-09 | Target images must not require LayerStack helpers or repository utilities. | Execution succeeds in a minimal compatible image using worker-provided projection only. |
| FR-10 | Every result must retain root, environment, policy/evaluator, attempt, and parent provenance. | Exported evidence passes referential-integrity validation. |
Quality attributes
O(1) metadata in workspace size; zero lower payload duplication for a hot local root.
OCI/Linux uses native filesystem access on the execution hot path.
Every journaled mutation is replayable or abortable without an ambiguous node.
Durable graph size is decoupled from live process, mount, and memory residency.
Durable state contains no worker-local mount paths, inode identity, or backend-only truth.
Every transition emits correlated group, node, attempt, root, lease, and trace identifiers.
Capability and trust model
May create graph intent and request work; cannot forge sealed roots or evaluations.
Trusted for object integrity, OCC, leases, journal recovery, and provenance.
Trusted to enforce the selected backend boundary and attest the produced result.
Untrusted; receives only scoped workspace, process, network, and resource capabilities.
Non-goals for 0.2.x
CRIU and instruction-exact rollback may be adapters later; filesystem/logical checkpoints define the core.
The design scopes mount capability; it does not remove the kernel’s privilege requirements.
OCI/Linux and WASI share state semantics, not identical syscall or process semantics.
The core provides OCC and evidence; domain-specific agents or tools choose conflict resolution.
Leases and reachability protect useful history; bounded GC reclaims unselected branches.
Retries are first-class records and never rewrite prior evidence.