流式传输和异步操作
A2A 默认假设任务耗时,同步仅返回「已接受 + taskId」,进度与增量输出靠 事件流 或轮询。
1. 异步模型
| 模式 | 适用 |
|---|---|
| 提交 + getTask 轮询 | 简单、防火墙友好 |
| SSE 订阅 | 低延迟 UI |
| 推送 webhook | 服务端主动通知客户端 |
2. SSE 事件类型(概念)
- Task 状态变更
- Message 增量 part
- Artifact 更新
客户端解析后更新本地模型;断线用 resubscribe(若支持)。
3. 与 JSON-RPC 关系
常:RPC 建任务,另一 GET 开 SSE;具体 URL 在 Card 或规范中定义。
4. 背压与缓冲
代理端应分块发送大 artifact;客户端慢消费时不应拖垮 Executor(队列丢弃/暂停策略由实现定)。
5. 总结
流式 = 协议一等公民;做 Chat UI 应优先 SSE 而非仅轮询 completed。