What isn’t an escalation:
- An approval or question whoever is chatting can answer stays in the chat.
- Test chats never escalate: your team’s own chats in the console, the widget preview and Coach. A test chat’s run shows how it went against its procedure on the task instead, with Review in Coach.
- Evals raise procedure escalations quietly: they’re in the list as “from an eval”, with no email, webhook or chat message.
The procedure check
After every run that followed a procedure, a model reads the procedure (at the revision the run was given) and what the run did, and says whether it followed the steps, did it another way that worked, or failed. Nothing about the procedure changes until someone accepts a proposal or saves a new revision. A run of a revision that’s since been changed isn’t checked. The check is AI Review on the pricing page: it runs on the cheapest model of the agent’s own provider and is paid by its tokens at that model’s price, like a chat reply, rounded up to the next cent (a cent or two a run). A conversation’s price shows it as AI Review. It doesn’t run when your balance is empty, and you can turn it off for an agent (below). Repeats add up: there’s one open escalation per procedure and kind, withcount and the latest 20 runs in tasks.
Escalation rules
Each agent decides what escalates, in itsescalations setting (the console: the agent’s Escalations tab). Every key is on by default:
In the console
Escalations lists them, with the number open on its tab. Open one to:- decide an approval or answer a question right there, in its conversation;
- Fix in Coach (or Edit in Coach for a proposal): the agent’s Coach opens in a new chat that already knows what went wrong, the procedure as it is now and which runs to read, and proposes the fix;
- Accept, Reject or Dismiss, or Mark handled for a hand-off.
Being told
- Email, right away, to the org’s owners and admins: a hand-off, and an approval or question only your team can decide that’s still open a minute after it was raised.
- A daily digest of procedure escalations raised or grown since the last one. None when nothing’s new.
- Webhooks:
escalation.created,escalation.updated(a repeat, or a new proposal) andescalation.resolved, withescalation. See Webhooks. - Teams or Slack: each new one posted as a thread in the channel you chose, with a button to resolve it and Coach a reply away. See Teams and Slack.
In the API
GET /v1/escalations filters by status, agent_id, kind and q, and its answer has open_count. POST /v1/escalations/{id}/dismiss, /accept and /reject resolve procedure escalations, and dismiss marks a hand-off handled (admins); approvals and questions are decided in their conversation. Accepting a proposal answers 409 if the procedure changed since it was proposed. To open Coach with one, send escalation_id with the first message to POST /v1/agents/{agent_id}/coach.