Skip to main content
The conformance kit runs your agent the way AgentOS does, against a mock platform, and checks every answer. Use it while you build an agent without the SDKs, and in CI for every agent. It is a command-line tool, agentos-conformance (Python 3.11+). Like the SDKs, it isn’t published on PyPI yet: it ships with AgentOS as a Python package you install with pip or uv. Running an agent from its bundle needs Docker.

Run it

./my-agent is the bundle folder with agentos.yaml. In Docker the agent runs on an internal network of its own with the platform’s container limits, and gets a mock of the agent-facing platform API, an OpenAI-compatible mock model gateway, and a host that isn’t the platform’s. The kit invokes every case in the bundle’s conformance.yaml, plus one case per capability that has none (its input made from the input schema), and prints a PASS, FAIL or SKIP line per check, then N passed, N failed, N skipped. On a failure in Docker, the container’s last output follows. Exit codes: 0 all passed, 1 a check failed, 2 it couldn’t run (a bad bundle or conformance.yaml, no Docker).

What it checks

  • GET /health answers, and an unknown capability answers failed.
  • Every answer has the contract’s shape and the expected status. A completed output matches the capability’s output schema; a failed one has a code and message the platform keeps; a suspended one names the hold the invocation asked for, and the resume after a decision answers too.
  • A streaming answer reports its result, and a stream whose result the platform refuses reports failed.
  • The run token goes only to platform hosts and only while its invocation runs, every model call carries it, and it isn’t carried along a redirect off the platform.
  • A compare-and-set write that meets a conflict is retried (the mock answers each case’s first conditional write with 409 version_conflict).
  • Child runs started again by a later invocation of the run keep their Idempotency-Keys, and child inputs and reported outputs match the bundle’s schemas.
Invoke bodies from the kit carry an extra field in context. Agents must ignore fields they don’t know, as AgentOS may add more.

conformance.yaml

Put it next to agentos.yaml:
conformance.yaml
Other keys are errors.

In CI

.github/workflows/agent.yml

The mock platform for your own tests

agentos-conformance mock serves the mock platform alone and prints its URLs as one JSON line, so an agent’s own tests, in any language, can drive it: --spec ./my-agent gives the mock the bundle’s capabilities, so it checks child runs and reported outputs against their schemas. Without it, only capabilities it has issued invocations for can be started as child runs. --reply TEXT sets what the mock model answers.