API reference · schema
DecisionRequest
8 fields · used by 1 operations
Last reviewed 2026-10-02
Fields
| Field | Type | Meaning |
|---|---|---|
service | string or null | catalog slug this call targets |
path | string or null | upstream path this call targets |
payload | object | the request body the agent intends to send |
plan | array of object | ordered [{tool, args}] plan for ActionProof |
agent_id | string or null | max length 255 |
provenance | object or null | where each payload argument came from, keyed by dotted path: user | system | tool:<name> | memory:<id> | web:<url> | file:<ref> | agent:<id> | untrusted. An untrusted value in a recipient, URL, predicate, role, amount, account, command or SQL argument is denied; an unreadable label is denied. |
chain_id | string or null | your run id: every decision sharing it forms one trace pattern ^[A-Za-z0-9._:-]{1,128}$ |
record | boolean | set false to evaluate without writing an evidence record default true |
Smallest valid example
{
"record": true
}Used by 1 operation
| POST | /fabric/decisions | Ask the control plane to decide on a proposed action |
JSON Schema
Show the raw definition
{
"properties": {
"service": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Service",
"description": "catalog slug this call targets"
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Path",
"description": "upstream path this call targets"
},
"payload": {
"additionalProperties": true,
"type": "object",
"title": "Payload",
"description": "the request body the agent intends to send"
},
"plan": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array",
"title": "Plan",
"description": "ordered [{tool, args}] plan for ActionProof"
},
"agent_id": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Agent Id"
},
"provenance": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Provenance",
"description": "where each payload argument came from, keyed by dotted path: user | system | tool:<name> | memory:<id> | web:<url> | file:<ref> | agent:<id> | untrusted. An untrusted value in a recipient, URL, predicate, role, amount, account, command or SQL argument is denied; an unreadable label is denied."
},
"chain_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{1,128}$"
},
{
"type": "null"
}
],
"title": "Chain Id",
"description": "your run id: every decision sharing it forms one trace"
},
"record": {
"type": "boolean",
"title": "Record",
"description": "set false to evaluate without writing an evidence record",
"default": true
}
},
"type": "object",
"title": "DecisionRequest"
}Try CAIN-42 on your own agents
Create a free account and every new account starts with a 7-day trial of the full platform. Or try the sandbox first, with no account at all.
Create a free account → · Try the sandbox · See the whole ecosystem