Examples / one complete action
A ticket. An interruption.
The original result.
Follow the same request from its profile through the service contract to a verification receipt. All data below is illustrative.
1. Describe the action
The profile connects three operations: create a ticket, check the request, and read the resulting ticket.
{
"$schema": "https://ruagentic.org/schemas/agentic-0.1.schema.json",
"agentic": "0.1.0-draft",
"origin": "https://support.example",
"actions": [
{
"id": "create-ticket",
"description": "Create a support ticket and verify the original result.",
"openapi": "/openapi.json",
"submit": "createTicket",
"status": "getRequestStatus",
"verify": "getTicket",
"request": {
"header": "Idempotency-Key",
"scope": "principal-action",
"retentionSeconds": 86400
},
"bindings": {
"statusRequestId": "requestId",
"verifyResourceId": "ticketId"
},
"evidence": {
"resourceIdPointer": "/id",
"requestIdPointer": "/request_id",
"statePointer": "/status",
"successValues": [
"open",
"closed"
],
"inputBindings": [
{
"inputPointer": "/subject",
"resourcePointer": "/subject"
}
]
},
"recovery": {
"maxChecks": 3,
"checkDelayMs": 100,
"timeoutMs": 3000,
"retry": "never-automatically"
}
}
]
}2. Bind three OpenAPI operations
| Role | Operation | Endpoint |
|---|---|---|
| Submit | createTicket | POST /tickets |
| Reconcile | getRequestStatus | GET /requests/{requestId} |
| Verify | getTicket | GET /tickets/{ticketId} |
After submission, the client checks the request status and reads the ticket. It confirms that the ticket ID, request ID, state, and subject match before reporting success.
3. Keep a receipt
This synthetic receipt demonstrates the format. It is not a record of a real customer action or an independent pilot.
{
"agentic": "0.1.0-draft",
"request_id": "illustrative-request-001",
"action_id": "create-ticket",
"origin": "https://support.example",
"outcome": "succeeded",
"observed_at": "2026-09-07T12:00:00.000Z",
"resource_id": "T-example-001",
"reason": "Illustrative receipt: original ticket verified against the request and input.",
"evidence": {
"url": "https://support.example/tickets/T-example-001",
"resource_id": "T-example-001",
"request_id": "illustrative-request-001",
"state": "open",
"matched": [
{
"inputPointer": "/subject",
"resourcePointer": "/subject"
}
]
}
}