Skip to main content
This page is a walkthrough, not the reference. For the complete tag specification, ActionType catalog, and every ATP REST endpoint, see Agent Transmission Protocol (ATP) in the API reference. Use this page to go from “I have data to send” to a validated, routable message.
Every ATP message is six header tags followed by a JSON body. Fill them in this order:
1

Mode

How the message should be delivered: direct, batch, stream, or async. Most agent-to-agent calls are direct.
2

Context

A trace/correlation ID, unique per logical operation (max 64 chars). Reuse the same Context across a request/response pair so the two sides of an exchange can be joined in logs and in GET /api/v1/atp/queue.
3

Priority

critical (0), high (1), normal (2), or low (3) — determines queue order, not correctness. Reserve critical for governance overrides and rollbacks.
4

ActionType

What the receiving agent should do with the payload — query, execute, propose_update, and so on. See the full catalog grouped by Query / Modification / Execution / Management / Governance operations in the ATP reference.
5

TargetZone

Which system component owns this: kernel, registry, memory, sandbox, or governance. This is what the router matches on.
6

SpecialNotes (optional)

Free-text hints for the receiving agent, max 256 chars — for example retry on timeout or require_semantic_match=true.
Assembled, a memory lookup looks like this:
Before sending, run it through POST /api/v1/atp/validate — it checks structural and field-level errors without dispatching anything, so it’s safe to call from client-side forms or CI. POST /api/v1/atp/format returns the exact wire string for a payload if you want to confirm formatting before it ships.
Last modified on July 16, 2026