com.volcengine.veadk.Runner 是 VeADK Java 的便捷执行入口。它继承并封装 ADK Java Runner,提供更直接的 run(...) 调用方式,同时接入短期会话和长期记忆配置。
最小调用
用Agent.builder() 创建智能体后,可以直接把它传给 Runner。run(String) 会使用默认用户 default_user,自动创建一个新会话,并返回最终文本响应。
Runner 会从 ADK 事件中提取文本:优先返回 final response 文本;如果没有 final response,则返回最后一条非空模型文本。没有可用文本时会抛出清晰错误。
多轮会话
需要保留对话上下文时,传入稳定的userId 和 sessionId。同一组 ID 会复用同一段短期会话历史。
Runner 使用本地内存会话服务。生产环境需要持久化会话时,在 Agent.builder().shortTermMemory(...) 或 new Runner(agent, appName, shortTermMemory) 中配置短期会话服务。
会话解析
Runner 的默认 RunConfig 是 autoCreateSession(true)。
autoCreateSession(false) 且会话不存在时,Runner 会抛出 IllegalArgumentException,错误信息包含缺失的 sessionId 和 userId。
构造方式
Runner 提供多种构造函数,按需要选择即可:
如果传入的是 VeADK Java
Agent,Runner 会优先读取智能体上配置的 shortTermMemory 和 longTermMemory。构造函数里显式传入的 ShortTermMemory 优先级更高。
与 ADK Java Runner 的关系
VeADK JavaRunner 继承 ADK Java Runner。便捷 run(...) 方法会把文本转换成 Content,调用底层 runAsync(...),收集事件并返回文本结果。
如果需要完整事件流、原生 ADK Web 路由或服务端流式响应,可以选择:
- 使用底层 ADK Java Runner /
runAsync(...)处理事件。 - 使用 ADK Web 示例暴露
/run、/run_sse等原生接口。 - 使用 AgentKit Runtime 示例暴露
/invoke,并通过AGENTKIT_STREAMING=true开启 SSE。
适用场景
- 直接 Runner:Java 服务、CLI、测试或本地脚本中同步调用智能体。
- ADK Web:需要原生 ADK Web API、会话 CRUD 或
/run_sse时使用。 - AgentKit Runtime:需要对外 HTTP contract、容器运行、网关接入或运行时管理时使用。