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 是同一套概念。
多轮会话规则
多轮对话要复用同一个
userID 和 sessionID。如果换了 sessionID,Runner 会把它当作新会话;如果换了 userID,即使 sessionID 相同,也不应该视作同一个用户上下文。
和长期记忆的区别
二者可以同时配置。短期会话让“这一轮对话”连续,长期记忆让“不同会话之间”能回忆重要信息。