Browse documentation
Quickstart
Implement the smallest complete AQP exchange.
1. Choose a binding
Use the HTTP binding for ordinary APIs and web responses, the MCP binding for tool servers, or the A2A binding for agent peers. Each binding carries the same canonical query, response, and receipt objects.
2. Create a query
Give the query a stable subject, intended respondent, typed prompt, exact response contract, timing, authorized delivery destination, and short expiry.
{
"protocolVersion": "2026-07-30",
"queryId": "0198c7cb-1af1-7e79-bd7f-02f8a89b8857",
"type": "clarification",
"subject": {
"kind": "tool_call",
"id": "call_01JQ8QY3EJX9",
"idScope": "local",
"protocol": "mcp"
},
"requestedRespondent": "agent",
"prompt": "Did this tool result fully answer the user's request?",
"timing": "after_outcome_known",
"response": {
"format": "choice",
"choices": ["yes", "partly", "no"]
},
"delivery": {
"binding": "https",
"endpoint": "https://queries.example/responses",
"authorization": "Bearer <scoped-capability>"
},
"expiresAt": "2026-07-30T19:00:00Z"
}3. Submit a response
The respondent waits for the requested timing condition, applies local policy, and returns an answer matching the declared format.
{
"protocolVersion": "2026-07-30",
"responseId": "0198c7d0-2180-7729-b005-d33c99fc7452",
"queryId": "0198c7cb-1af1-7e79-bd7f-02f8a89b8857",
"subject": {
"kind": "tool_call",
"id": "call_01JQ8QY3EJX9",
"protocol": "mcp"
},
"respondent": { "kind": "agent", "provenance": "direct" },
"answer": "partly",
"explanation": "The result answered the question after one retry.",
"confidence": 0.92,
"createdAt": "2026-07-30T17:05:12Z"
}4. Return a receipt
The collector returns a machine-readable status. An accepted receipt may carry one linked follow-up query; duplicate submission must return an equivalent receipt, including the same continuation.
{
"protocolVersion": "2026-07-30",
"queryId": "0198c7cb-1af1-7e79-bd7f-02f8a89b8857",
"responseId": "0198c7d0-2180-7729-b005-d33c99fc7452",
"status": "accepted",
"retryable": false,
"receivedAt": "2026-07-30T17:05:13Z"
}5. Validate
Validate all three objects, then validate the answer against the exact response contract in its request. Run both standalone and paired conformance vectors so identifier, respondent, subject, and continuation mismatches surface early.