Research · 2026-07-08

ACC v1: an open contract between agents and control planes

protocolagentctlagentd

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.
  • EnvironmentAGENT_* 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)