Research · 2026-07-08
ACC v1: an open contract between agents and control planes
The Agent Control Contract lets any conformant agent be managed by any conformant control plane — resources, metrics, environment, capabilities — with no code dependency in either direction.
Fleet tooling usually grows inside one runtime and never escapes it. The Agent Control Contract (ACC) is the deliberate alternative: a small, versioned, vendor-neutral specification of what a manageable agent must expose, so the runtime and the control plane can evolve — or be replaced — independently.
The surfaces are deliberately boring:
- Resources under an
agent://scheme — status, capacity, config — readable over the agent's MCP listener. - Metrics with an
agent_prefix and a frozen schema version, scraped like any Prometheus target. - Environment —
AGENT_*variables the control plane injects and the agent honors. - A capabilities manifest (
--capabilities) declaring what the binary can do, so a controller can schedule without probing. - Operator verbs as an A2A admin family: drain, lame-duck, pause, resume, cancel — management-gated.
Two design rules carry the weight. First, P0: no code dependency — agentctl (the control plane) depends only on the published contract and its JSON Schemas; agentd is the reference implementation, not a library. The contract lives in the control-plane repository with golden fixtures, and agentd's CI proves conformance against them cross-repo. Second, frozen semantics: exit codes, metric names, and resource shapes version explicitly — a fleet upgrade can never silently reinterpret an agent's signals.
The payoff is a real interoperability claim: 38 black-box conformance tests and a 22-test schema harness pass against the reference runtime, and any other runtime that passes them inherits the entire control plane — CRDs, autoscaling, drain choreography — for free.
Canonical: agentctl repo · contract/ (SPEC, JSON Schemas, conformance fixtures)