Skip to main content
ATP Light

Overview

The Agent Triage Protocol (ATP) is a standardized communication protocol that enables AI agents to request human intervention through a unified notification system. ATP provides a vendor-neutral, transport-agnostic specification for managing decision requests that require human judgment, creating a bridge between autonomous AI systems and human oversight.

Why ATP?

As AI agents become more capable and autonomous, they increasingly encounter situations where human judgment, approval, or guidance is necessary. Rather than each AI service implementing its own notification and response system, ATP provides a common protocol that allows multiple AI services to coordinate human decision-making through a single, consistent interface.

Centralized Decision Management

Consolidate decision requests from multiple AI services into a single interface

Standardized Interactions

Define consistent patterns for gathering user input across different services

Secure Communication

Multi-layered security model with robust authentication and authorization

Flexible Deployment

Support for various deployment models from single-user to enterprise

Key Features

  • Asynchronous Communication: Non-blocking interaction between AI services and humans
  • Type-Safe Response Modeling: Seven predefined response types for common interaction patterns
  • Fault-Tolerant Design: Robust error handling and recovery mechanisms
  • Human Factors Engineering: Designed with user experience as a priority
  • Stateless Protocol Design: Simplified implementation and horizontal scaling
  • Multi-Layered Security: Comprehensive security model from end to end

Getting Started

Follow these guides to start implementing the Agent Triage Protocol in your applications.

Implementation Examples

The ATP protocol is designed to work with any programming language and framework. Here are examples of implementing ATP in different environments:
from atp import ATPClient, TriageNotification, Action, ResponseType

# Initialize the ATP client with service credentials
client = ATPClient(api_key="sk_live_service_abc123")

# Create a notification for a decision
notification = TriageNotification(
    title="Deploy to Production?",
    description="New version 2.1.0 is ready for deployment to production servers.",
    actions=[
        Action(
            id="approve",
            label="Approve Deployment",
            response_type=ResponseType.SIMPLE,
            flags=["irreversible"]
        ),
        Action(
            id="reject",
            label="Reject",
            response_type=ResponseType.TEXT,
            constraints={"placeholder": "Reason for rejection"}
        )
    ],
    deadline=datetime.now() + timedelta(hours=4)
)

# Send the notification
response = client.send_notification(notification)
For more complete examples, including client implementations and webhook handlers, see our client examples for various platforms:
I