Agent Governance Protocol
API ReferenceDecision APIEscalations

Raise escalation notice

Any authorized agent may raise an EscalationNotice (the Whistleblower mechanism). The raising agent does not have to be the executing agent. requested_action determines mandatory task state transition: - quarantine -> QUARANTINED (immediate, no human required) - pause_and_review -> APPROVAL_PENDING - escalate_to_human -> APPROVAL_PENDING with mandatory human approver EscalationNotices are permanent audit records even if later dismissed. See §23.

POST
/agp/escalations

Authorization

AuthorizationBearer <token>

In: header

Scope: agp.decision.read, agp.decision.write

Header Parameters

Idempotency-Key?string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Agent-initiated ethical concern escalation (Whistleblower mechanism). See §23.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/agp/escalations" \  -H "Content-Type: application/json" \  -d '{    "type": "EscalationNotice",    "escalation_id": "string",    "task_id": "string",    "raising_agent_id": "string",    "concern_type": "ethical_violation",    "description": "string",    "requested_action": "quarantine",    "raised_at": "2019-08-24T14:15:22Z"  }'
{  "type": "EscalationNotice",  "escalation_id": "string",  "task_id": "string",  "raising_agent_id": "string",  "raising_agent_role": "executive",  "concern_type": "ethical_violation",  "description": "string",  "evidence_refs": [    "string"  ],  "requested_action": "quarantine",  "resolution": {    "resolved_by": "string",    "outcome": "upheld",    "notes": "string",    "resolved_at": "2019-08-24T14:15:22Z"  },  "raised_at": "2019-08-24T14:15:22Z",  "signature": {    "alg": "string",    "kid": "string",    "issuer": "string",    "issued_at": "2019-08-24T14:15:22Z",    "payload_hash": "string",    "value": "string"  }}
{  "error": {    "code": "AGP_INVALID_REQUEST",    "message": "string",    "retryable": true,    "details": {}  }}
{  "error": {    "code": "AGP_INVALID_REQUEST",    "message": "string",    "retryable": true,    "details": {}  }}
{  "error": {    "code": "AGP_INVALID_REQUEST",    "message": "string",    "retryable": true,    "details": {}  }}