7. 流式传输与多轮对话
7. 流式传输与多轮对话
HelloWorld 例子验证了基础的请求/响应与简单流式输出。但在真实场景中,智能体通常还需要:
- 更丰富的流式输出(状态更新 + 工件分片)
- 任务持久化(便于之后继续会话)
- 多轮交互(智能体主动询问缺失信息)
参考示例:LangGraph「汇率智能体」
在 a2a-samples 仓库中,通常会提供一个更高级的 Python 示例(例如基于 LangGraph/LangChain + Gemini 的汇率智能体)。
常见流程:
- 准备并配置 LLM 的 API Key(例如
GOOGLE_API_KEY)。 - 启动该智能体服务端。
- 运行对应测试客户端,观察:
- 智能体执行过程中的
TaskStatusUpdateEvent - 最终结果的
TaskArtifactUpdateEvent分片 - 任务进入“需要补充输入”的状态,并在下一轮继续
- 智能体执行过程中的
你应该重点理解的点
阅读示例代码时,重点关注:
- executor 如何把“执行过程”映射为可流式传输的任务事件
- taskId / contextId 如何在多轮中保持关联
- “需要更多输入”如何表示,以及客户端如何继续该任务