Files
zeekayandHanzo Dev 0a69c0f7f5 The load is part of the host
MEASURED.md said memory is deterministic and has no range. On a host at load
average 3 it is: 573.0 MB and 601 bytes per agent, twelve for twelve,
byte-identical across three separately built binaries. On a second host at load
17 to 73 the same lane read 594, 595, 596 and 599.

Two things differ between those and this pass cannot separate them — the
machines are not the same machine, and only one was busy. The cross-machine part
is already known, an M1 Max and an M4 Max differ by about five bytes here. So
the line now says what was observed and not a cause: determinism under quiet
conditions, about 1% of variation under load, unresolved.

AND THE LANES NOW SAY WHICH THEY WERE. host.sh, say.mjs and goroutine/main.go
all print the one-minute load beside the CPU and core count, because a reader
cannot tell a busy machine from a quiet one after the fact and this is exactly
the distinction the paragraph above turns on.

While wiring it: MEASURED.md claimed "every lane that measures time prints its
host", and fleet, sandbox and pricing printed none at all — platform.mjs
harvests lane output by looking for that very line, so it recorded no host for
any of the three. say.mjs has the function now and all three call it, so the
sentence is true of both halves.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 10:04:47 -07:00
..
2026-09-16 09:51:20 -07:00
2026-09-16 10:04:47 -07:00
2026-09-16 09:51:20 -07:00

Fleet residency

What a dormant agent costs to keep, measured rather than modelled.

node fleet.mjs /tmp/fleet          # writes 1,000,000 agents, measures disk and resume
node cost.mjs                      # turns that into a monthly bill at list prices

Why this exists

Competitors publish a cost-per-million-agents row and mark it modelled. Naïve's says so in its own footnote — "MODELLED, NEVER BILLED · 100,000 TENANTS × 10 AGENTS" — at an assumed ~1 MB of state per agent.

An assumption is a fine thing to publish if you label it, and they do. But we do not have to assume: a dormant agent here is a row in the same kv(key, value, upd) table the cloud already runs on, so the number can be taken instead.

What it measured

On an M-series laptop, September 2026:

agents 1,000,000
on disk 454.6 MB — 477 bytes per agent
write 3.2 s, 310,270 agents/s
resume, in-process 0.031 ms
resume, cold process 3.57 ms (includes sqlite3 spawn)

477 bytes against an assumed 1 MB is a factor of 2,198. At S3 list that is $0.01 a month of storage for the fleet.

What it does not measure

Residency, and only residency. Nothing here says what a fleet costs while it works — model tokens, tool calls, and the compute of a running turn dwarf all of the above and fall on every architecture alike.

That is the same boundary the competing page draws around its own claim: "The advantage is dormancy, and only dormancy." This measures exactly that much, so the honest unit for a price list is $/agent-hour-awake, with a storage line small enough to give away.

Method

fleet.mjs writes agents in batches of 50,000 through sqlite3 on stdin — piped rather than passed, because a 50,000-row insert is 20 MB of SQL and argv tops out well before that. The record is what the platform actually stores for a dormant agent: identity, org, model, standing instruction, tool grants, schedule, and a cursor into its history. History itself is not resident; a conversation is not loaded when nobody is talking.

Resume is timed two ways because both are true: in-process is what the server does, cold is what a fresh worker pays.