Conformance Levels
Not every agent needs every feature. CKP defines three conformance levels so implementations can start small and grow. A 4 MB embedded chatbot and a 52-module enterprise swarm are both valid CKP agents — they just conform at different levels.
Level 1: Core (Minimum Viable Claw)
Section titled “Level 1: Core (Minimum Viable Claw)”The smallest possible CKP agent. Receives input, reasons with an LLM, and responds.
Required primitives: Identity, Provider
Capabilities:
- Parse and validate a
claw.yamlmanifest - Initialize with
claw.initializeand report status withclaw.status - Reason with at least one LLM Provider
- Respond to input via an implicit CLI channel (stdio)
- Shut down gracefully with
claw.shutdown
Cannot:
- Execute tools
- Persist memory across sessions
- Coordinate with other agents
- Connect to external messaging channels
Use cases: Embedded devices, simple chatbots, prototyping, CI pipelines.
Test vectors: 13 (see test vectors)
Level 2: Standard (Interactive Agent)
Section titled “Level 2: Standard (Interactive Agent)”An agent that connects to the outside world, executes tools, and enforces security.
Required primitives: Identity, Provider, Channel, Tool, Sandbox, Policy
Adds over Level 1:
- Messaging channels (Telegram, Slack, Discord, Webhook, etc.)
- Tool execution within sandbox constraints
- Policy rules (allow, deny, require-approval, audit-only)
- Approval gates for sensitive operations
- Channel access control (allowlists, authentication)
Use cases: Personal assistants, team bots, automated workflows, customer support agents.
Test vectors: 10 additional (23 cumulative)
Level 3: Full (Autonomous Swarm Agent)
Section titled “Level 3: Full (Autonomous Swarm Agent)”A fully autonomous agent with persistence, composed workflows, and multi-agent collaboration.
Required primitives: All 9 core primitives (WorldModel and Telemetry optional at all levels)
Adds over Level 2:
- Persistent memory (conversation, semantic, key-value, workspace)
- Skill composition (multi-step workflows from tools)
- Swarm coordination (5 topologies: star, mesh, pipeline, hierarchical, broadcast)
- Memory compaction and semantic search
- Cross-agent delegation and task reporting
- Optional predictive planning through reusable
WorldModeldeclarations
Use cases: Enterprise deployments, research teams, complex multi-step workflows, autonomous operations.
Test vectors: 8 additional (31 cumulative)
Those 8 L3 vectors are a mix of live runtime behavior and manifest validation:
- live runtime coverage: swarm delegate/report, broadcast, discover, memory store/query, and compact
- manifest-validation coverage: invalid
Channel.access_controlcombinations for allowlist and role-based modes
That split is intentional. CKP conformance includes both wire-protocol behavior and schema-level correctness where the protocol depends on manifest structure.
WorldModel does not add wire conformance requirements in CKP 0.3.0. It is validated first at the manifest/schema layer and described operationally in the Runtime Profile.
Method support matrix
Section titled “Method support matrix”| Method | Level 1 | Level 2 | Level 3 |
|---|---|---|---|
claw.initialize | MUST | MUST | MUST |
claw.status | MUST | MUST | MUST |
claw.shutdown | MUST | MUST | MUST |
claw.heartbeat | SHOULD | SHOULD | MUST |
claw.initialized | SHOULD | SHOULD | SHOULD |
claw.tool.call | — | MUST | MUST |
claw.tool.approve / deny | — | MUST | MUST |
claw.swarm.delegate | — | — | MUST |
claw.swarm.report | — | — | MUST |
claw.swarm.broadcast | — | — | MUST |
claw.swarm.discover | — | — | MUST |
claw.memory.query | — | — | MUST |
claw.memory.store | — | — | MUST |
claw.memory.compact | — | — | MUST |
Declaring conformance
Section titled “Declaring conformance”Conformance level is not declared in the manifest — it is inferred from the primitives present. A runtime validates the manifest against the requirements for each level and reports the highest level satisfied.
# This manifest is Level 1 (only Identity + Provider)name: simple-botversion: "1.0.0"identity: system_prompt: "You are a helpful assistant." autonomy: supervisedproviders: - name: claude kind: anthropic model: claude-sonnet-4-20250514# This manifest is Level 2 (adds Channel, Tool, Sandbox, Policy)name: team-assistantversion: "1.0.0"identity: system_prompt: "You help the engineering team." autonomy: supervisedproviders: - name: claude kind: anthropic model: claude-sonnet-4-20250514channels: - name: slack kind: slack access_control: mode: allowlist identifiers: ["U12345"]tools: - name: web-fetch description: "Fetch a URL" input_schema: { ... }sandbox: level: processpolicies: - name: standard rules: - pattern: "tool:*" action: require-approvalChoosing a level
Section titled “Choosing a level”| Question | L1 | L2 | L3 |
|---|---|---|---|
| Does it just chat? | Yes | — | — |
| Does it call APIs or tools? | — | Yes | — |
| Does it need to remember things? | — | — | Yes |
| Does it work with other agents? | — | — | Yes |
| Is it embedded / resource-constrained? | Yes | — | — |
| Does it need audit trails? | — | Yes | Yes |
Start at Level 1 and promote when you need the capabilities of a higher level. The dependency graph ensures you add primitives in the right order.