essay · 2026-07-10
Minimalism as the moat
Agent frameworks compete on surface area: more integrations, more abstractions, more batteries. agentd competes on the opposite axis, and the numbers are the argument: a 3.0 MiB static binary, three direct dependencies, cold start under a millisecond, ~2 MiB resident when idle.
Why small wins here
Small is auditable. An agent runtime sits in the blast radius of every
prompt injection and every compromised tool. When your dependency tree is
serde, serde_json, and libc, your CVE scanner has one target: you.
There is no framework underneath to trust transitively.
Small is containable. agentd ships zero built-in tools and cannot execute local code — every capability is a remote MCP server over HTTPS. The model-free supervisor owns the process tree and can always kill the reasoning. Containment isn't a sandbox bolted around the runtime; it's what is left when you refuse to add escape hatches.
Small is economical at fleet scale. The long tail of useful agents is mostly idle: watchers, schedulers, reactive responders. Their cost is per-agent overhead, not throughput. A runtime that idles at ~2 MiB and wakes in microseconds makes "one agent per concern" an architecture rather than an extravagance — ~82 of them pack onto a node before the kubelet objects, not the runtime.
The discipline is the feature
Every removed feature is a promise: no plugin system to version, no embedded interpreter to escape, no local state to migrate. What remains is a contract — frozen exit codes, stable metrics, declared capabilities — which is why a control plane can manage it without importing it.
Frameworks bet that agents need more runtime. agentd bets that they need less, supervised better. The 579 tests and the conformance suite are how that bet stays honest.