跳转到主要内容
短期会话保存同一个 userID 和 sessionID 下的对话事件,用于支持多轮上下文、工具调用历史和流式事件恢复。

最小 Runner 示例

本地调试时可以直接使用 ADK Go 的 session.InMemoryService()。同一个 userID 和 sessionID 会复用同一段会话历史。
context.Context 只负责取消、超时和请求级数据;它不是对话上下文。对话上下文来自 userID、sessionID 和 ShortTermMemory / SessionService。

持久化短期会话

session.InMemoryService() 适合示例和单进程调试,进程退出后数据会丢失。生产环境应使用持久化后端。VeADK Go 提供统一入口 NewShortTermMemoryService:
可选后端: 当 config 传 nil 时,会读取全局配置里的数据库配置;如果要显式配置,可以传入对应 backend 的配置结构体。

App 集成

如果使用 VeADK Go 提供的 app launcher,apps.RunConfig.ShortTermMemory 是 SessionService 的别名,和直接使用 Runner 是同一套概念。
simple app、A2A app 和 AgentKit server app 都会把这个 session service 用到运行时链路里。区别在于 app 负责 HTTP / 协议入口,而 Runner 适合在自己的 Go 流程中直接调用智能体。

多轮会话规则

多轮对话要复用同一个 userID 和 sessionID。如果换了 sessionID,Runner 会把它当作新会话;如果换了 userID,即使 sessionID 相同,也不应该视作同一个用户上下文。

和长期记忆的区别

二者可以同时配置。短期会话让“这一轮对话”连续,长期记忆让“不同会话之间”能回忆重要信息。

常见问题

最后修改于 2026年10月20日