When an AI agent dispatches an action — booking a slot, sending a message, writing a file — there are two questions that need answering, and they’re not the same question:
Did the action reach the provider?
Did the provider accept it?
Most agent implementations collapse these into one. The action fires, something comes back, and the outcome is recorded as success or failure. That works until the network gets involved, the provider is slow, or the response never arrives.
This post covers the reconciliation layer we built in StareBrain to handle the gap between dispatch and confirmation — and why collapsing those two questions into one creates failure modes that are invisible until they’re not.
The Two-Axis State Model
Every dispatchable action has two independent state progressions:
`enum class DeliveryState { PENDING, CONFIRMED, FAILED } enum class AcceptanceState { PENDING, ACCEPTED, REJECTED }`
Enter fullscreen mode
Exit fullscreen mode
DeliveryState tracks whether the action reached the…