Overview
The Agent Triage Protocol defines structured message formats to ensure consistent communication between services, the ATP server, and client applications. This page details the structure of notifications and responses.Triage Notification Structure
A triage notification encapsulates all information required for an AI service to request human intervention. The notification schema comprises both required and optional fields that collectively define the decision context and available actions.Core Notification Fields
Field | Type | Required | Description |
---|---|---|---|
id | string | Yes | Globally unique identifier using UUID v4 format |
version | string | Yes | Protocol version identifier, currently “1.0” |
timestamp | datetime | Yes | ISO 8601 formatted creation timestamp |
deadline | datetime | No | ISO 8601 formatted expiration timestamp |
Service Identification Object
Field | Type | Required | Description |
---|---|---|---|
id | string | Yes | Service identifier assigned during registration |
name | string | Yes | Human-readable service name |
icon | string | No | URL pointing to service icon for client rendering |
Context Object
Field | Type | Required | Description |
---|---|---|---|
title | string | Yes | Concise summary of the required decision |
description | string | Yes | Detailed explanation of the situation |
metadata | object | No | Arbitrary key-value pairs for additional context |
attachments | array | No | Additional resources providing context for the decision |
project | string | No | Identifier for grouping related notifications |
Context Attachments
Notifications may include attachments that provide additional context for decision-making without cluttering the main notification body. Attachments support two delivery methods to balance flexibility with performance.Field | Type | Required | Description |
---|---|---|---|
type | string | Yes | MIME type of the attachment content |
description | string | No | Human-readable description of the attachment’s relevance |
uri | string | Conditional | External URI reference for the attachment |
data | string | Conditional | Base64-encoded content for inline delivery |
uri
or data
field, but not both. The choice between URI references and inline data depends on the attachment size, sensitivity, and expected client capabilities.
Action Definition
Each action represents a possible response to the notification. The actions array must contain at least one action object.Field | Type | Required | Description |
---|---|---|---|
id | string | Yes | Unique identifier for the action within this notification |
label | string | Yes | Human-readable text for UI presentation |
response_type | string | Yes | Enumerated type defining expected input format |
flags | array of strings | No | Behavioral characteristics of the action |
Action Flags
Action flags communicate important properties that help clients implement appropriate safeguards and user experiences. Multiple flags may be combined to accurately describe an action’s behavior.Flag | Description |
---|---|
destructive | The action will delete, remove, or significantly modify existing data |
irreversible | The action cannot be undone once executed |
time_sensitive | The action’s effectiveness or availability depends on prompt execution |
affects_others | The action impacts other users, systems, or shared resources |
costly | The action has significant resource consumption or financial implications |
experimental | The action uses beta features or may have unpredictable results |
requires_confirmation | The action should always prompt for explicit user confirmation |
Response Message Structure
The response message transmits user decisions back to the originating service through the following fields:Field | Type | Required | Description |
---|---|---|---|
notification_id | string | Yes | UUID of the notification being answered |
action_id | string | Yes | Selected action identifier from the notification |
response_data | any | Conditional | User input data, type determined by action’s response_type |
responded_at | datetime | Yes | ISO 8601 timestamp of response submission |
responder | object | Yes | Object containing responder identification |
responder
object contains:
Field | Type | Required | Description |
---|---|---|---|
id | string | Yes | Unique identifier of responding entity |
type | string | Yes | Either “human” or “agent” to indicate responder type |
response_data
depends on the response_type
of the selected action. For simple actions, it must be null
. For other response types, it must match the expected structure for that type. See the Response Types page for details on each type.