7. 流式传输与多轮对话

7. 流式传输与多轮对话

HelloWorld 例子验证了基础的请求/响应与简单流式输出。但在真实场景中,智能体通常还需要:

  • 更丰富的流式输出(状态更新 + 工件分片)
  • 任务持久化(便于之后继续会话)
  • 多轮交互(智能体主动询问缺失信息)

参考示例:LangGraph「汇率智能体」

a2a-samples 仓库中,通常会提供一个更高级的 Python 示例(例如基于 LangGraph/LangChain + Gemini 的汇率智能体)。

常见流程:

  1. 准备并配置 LLM 的 API Key(例如 GOOGLE_API_KEY)。
  2. 启动该智能体服务端。
  3. 运行对应测试客户端,观察:
    • 智能体执行过程中的 TaskStatusUpdateEvent
    • 最终结果的 TaskArtifactUpdateEvent 分片
    • 任务进入“需要补充输入”的状态,并在下一轮继续

你应该重点理解的点

阅读示例代码时,重点关注:

  • executor 如何把“执行过程”映射为可流式传输的任务事件
  • taskId / contextId 如何在多轮中保持关联
  • “需要更多输入”如何表示,以及客户端如何继续该任务