|
|
||
|---|---|---|
| .. | ||
| Cargo.toml | ||
| README.md | ||
README.md
Asolaria for claw-code — a compact, tamper-evident wire format + addressing model for the agent event firehose
A self-contained, additive example (no changes to claw-code core). It contributes one reproducible Rust benchmark plus a design write-up, aimed at the part of claw-code that moves the most bytes: clawhip — the event router that watches git commits, tmux sessions, GitHub PRs and agent-lifecycle events and pushes routing out of the agent context window so agents stay focused on implementation.
The technique is from Asolaria, a multi-agent fabric built and operated with a claw-code-style autonomous harness. We contribute the parts that are (a) genuinely useful to a no-human-intervention harness and (b) reproducible on your machine — and we explicitly tag the parts that are architecture/vision, so nothing here backfires when an AI reviewer re-runs it.
The bigger picture (tagged: vision/architecture, not a benchmark): Asolaria's end goal is to make every device a surface for one self-improving fabric — the device renders/addresses at ~0 local token cost while the heavy reasoning is paged onto larger compute. You don't need to buy any of that to use what's below; the wire format and 8-byte addressing stand on their own, measured.
1. The measured win (REPRODUCIBLE — re-run it)
clawhip's event stream is high-rate and, today, JSON text. Re-encoding the same records as a
fixed-width binary wire (json=0) and optionally folding a SHA-256 hash-chain over them gives, on
200,000 agent-lane-event records (measured; ratios are the reproducible part, ns vary by CPU):
| Per record | JSON (text) | json=0 binary |
binary + SHA-256 chain |
|---|---|---|---|
| Wire size | 153.2 B | 33.0 B — 4.64× smaller | 65.0 B — 2.36× smaller |
| Encode | ~307 ns | ~28 ns — ~11× faster | binary + one hash |
| Decode | ~468 ns (parse) | ~0.8 ns — decode ≈ free | field read = pointer offset |
| Integrity | none | none | per-record tamper-evident |
- The lane is addressed by its 8-byte FNV-1a-64 handle, so the lane string is never repeated; fields are fixed-width little-endian, so decode is a pointer offset, not a parse.
- The chain link is
link_n = SHA256(link_{n-1} ‖ record_n). It adds exactly +32 B → 65.0 B/rec, and any insert / delete / reorder / single-bit edit breaks the fold from that record on; a one-pass verify localizes the first altered record (the bundled bench demonstrates this). - Honest nuance (not a compression claim):
gzipnarrows the raw-size gap (crypto links are high-entropy by design). The durable wins are uncompressed wire size, decode speed, and integrity — the IPC / mmap / tail-replay path and a tamper-evident audit trail — not archival compressibility.
See §6 Reproduce.
2. The addressing capacity (LOGICAL / CANON — address space, not materialized things)
Asolaria addresses subsystems with BEHCS-1024: a radix-1024 glyph tuple over a 60-dimension coordinate. One ~12-byte tuple names a whole subsystem (room / lane / agent) and rehydrates losslessly to its full ~6,184-byte descriptor via the fabric store.
- DERIVABLE (arithmetic): the 12-byte wire handle alone is a 2⁹⁶ ≈ 7.9×10²⁸ namespace — astronomically past any harness demand (a lifetime of events ≈ 10⁹–10¹²), so agents mint ids independently with effectively zero collision risk and no coordinator.
- LOGICAL / CANON (do NOT re-run as a count): the full 60-D space is
(1024⁶⁰)⁵⁰ ≈ 10⁹⁰³⁰— the address space the scheme can name, not a count of things that exist. - Addressing, measured in-fabric (NOT reproduced by this example): a ~12-byte glyph indexing its ~6,184-byte descriptor is 520:1 — addressing (the tuple points into a store), not a codec you can rehydrate from 12 bytes alone. We cite it; we do not claim the local bench reproduces it.
Anti-overclaim: 12 bytes do not enumerate 10⁹⁰³⁰ values (96 bits is ~10²⁸·⁹). The 10⁹⁰³⁰ is the scheme's naming ceiling, not the wire handle's cardinality, and not a count of materialized entities.
3. Per-component benefit to claw-code
Tags mark which lines are re-runnable here vs architecture.
- 8-byte FNV-1a-64 content-handle [8-byte width MEASURED; content-addressing architecture] — a tmux
session name /
owner/repo#1204/ worktree path (30–120+ B) collapses to one fixed 8-byte handle agents pass instead of prose; "did we already report this commit?" is an 8-byte equality check. (FNV-1a-64 is a non-cryptographic dedup/address hash — tamper-evidence is the SHA-256 chain's job.) - json=0 binary wire [MEASURED §1] — 4.64× smaller, decode≈free for clawhip's high-rate event log;
fixed width → O(1) seek / tail-follow / byte-range replay (record N at offset
N*width). - BEHCS event envelope [size/speed MEASURED; ordering architecture] — each event carries
lane(8B) + seq + lamport + hash; a stable total order(lamport, lane, seq)makes replay deterministic across racing agents; a dropped event shows as a seq gap, a double-delivery as a dup. - 60-D tuple addressing [§2] — reference a whole subsystem by a tiny handle instead of inlining a descriptor clawhip just evicted; sibling lanes share a coordinate prefix (route a lane-family by prefix, not an id list).
- SHA-256 hash-chain [MEASURED §1/§6] — a no-human-intervention harness gets a tamper-evident audit trail for +32 B/rec; the chain breaks on any mutation and a one-pass recompute localizes the first bad record.
- Stubbed rooms as RAM [handle MEASURED; demand-paging architecture/vision] — a "room" (open files, prior reasoning, sub-task ledger) lives as an out-of-context descriptor stub keyed by an 8-byte handle; only the needed slice hydrates into context. Footprint scales with active agents, not total. (Paging against larger compute is the architecture model, not a deployed cluster.)
4. Concrete shape on the wire
One BEHCS-enveloped clawhip event (65.0 B binary, chained):
lane = 0xA3F1C2D4E5B60718 # 8-byte FNV-1a-64 handle for "executor-7/git-watch"
seq = 4271 # per-lane monotonic: 4270->4272 = dropped; repeated 4271 = dup
lamport = 98142 # deterministic cross-lane order, no wall clock
rec = <33 B fixed-width payload> # vs 153.2 B as JSON
link = SHA256(prev_link ‖ rec) # 32 B; editing any past rec breaks every later link
5. Where this comes from
Asolaria (public Host-8 lane — the council modules + this technique live here): https://github.com/JesseBrown1980/asolaria-federation-1024
A multi-agent system built/operated with a claw-code-style autonomous harness. This PR contributes only the additive, reproducible slice.
6. Reproduce
cd examples/asolaria-wire
cargo run --release
It will, with no network or external services:
- Generate 200,000 synthetic agent-lane-event records (the clawhip lane-event shape).
- Encode each as JSON text and as the
json=0fixed-width binary; report B/record and ns/record → expect ~153.2 / 33.0 B and the 4.64× size / ~11× encode / decode≈free figures. - Account the SHA-256 chain (+32 B/rec) → 65.0 B/rec (2.36×).
- Run the tamper test: flip one bit in record #5, re-fold the chain, and confirm the verifier reports record #5 as the first broken link.
Absolute ns vary by CPU; the ratios and the tamper-detection are what to verify. Run gzip on the
two wire forms yourself to confirm the honest nuance in §1.
7. Honesty self-check
- Reproducible (re-run them): 153.2→33.0 B (4.64×), +32 B chain → 65.0 B (2.36×), ~11× encode, decode≈free, and SHA-256 tamper-localization. (200k records; ratios are the portable part.)
- Derivable (arithmetic): 2⁹⁶ ≈ 7.9×10²⁸ handle namespace.
- Logical / CANON (do NOT re-run as a count): the 60-D BEHCS-1024 ceiling
(1024⁶⁰)⁵⁰ ≈ 10⁹⁰³⁰— address space, not entities. The 520:1 glyph↔descriptor figure is addressing measured in-fabric, cited, not reproduced by this example. - Architecture / vision (not benchmarked): clawhip/MCP integration, Lamport ordering, stubbed-rooms-as-RAM paging, every-device-as-surface. Presented as proposed mappings, not deployed facts.
- Anti-marketing:
gzipcloses the raw-size gap; the size win is uncompressed-wire + decode-speed + integrity, never compressibility. FNV-1a-64 is non-cryptographic dedup, not security.