tos_context 是 VeADK 的长期记忆后端,使用火山引擎 TOS ContextBucket 保存和检索记忆。记忆推理与检索由托管服务完成,无需部署向量数据库或配置 embedding 模型。
一个 index 对应一个 ContextBucket;同一 ContextBucket 内,每个运行时 user_id 对应独立的 ContextSet。需要在多个会话中召回同一用户的记忆时,应始终使用相同的 user_id。
何时使用
- 希望使用托管的长期记忆服务,避免自行维护向量数据库;
- 需要按
user_id隔离不同用户的记忆; - 已有火山引擎账号、ContextBucket 服务端点及访问服务所需的权限。
前提条件
- 安装 VeADK 1.0.9;
- 获取火山引擎账号 ID、ContextBucket 控制面端点,以及目标区域的数据面端点;
- 准备可访问、创建 ContextBucket 和 ContextSet,并可写入、检索记忆的 AK/SK,或为 AgentKit、VeFaaS 运行环境配置具有相同权限的 IAM Role;
- 确保运行环境能够访问配置的控制面和数据面端点。
ContextBucket 的开通范围、控制面端点和 IAM 权限由 TOS 服务侧提供,并不等同于普通 TOS Bucket 权限。如果当前账号未获得 ContextBucket 的开通信息,请先通过火山引擎服务支持渠道确认可用地域、控制面端点和最小权限策略,再配置本页参数。
安装依赖
ContextBucket 要求 TOS SDKtos>=2.9.4b1。VeADK 的基础依赖允许安装更早的 TOS SDK,因此需要在 VeADK 所在环境中单独升级:
2.9.4b1,pip 无需额外使用 --pre。如果项目的包管理或锁文件策略禁止预发布依赖,请按对应工具的方式允许该依赖并重新生成锁文件。
可以通过以下命令确认已安装的版本:
配置凭证与服务端点
以下示例使用环境变量提供凭证,避免把 AK/SK 写入代码或配置文件:VOLCENGINE_SESSION_TOKEN。如果没有同时提供 AK 和 SK,后端会改用 AgentKit 或 VeFaaS 运行环境的 IAM Role 凭证;只提供 AK 或只提供 SK 不会组成有效凭证。
使用示例
下面的示例先保存一个会话,再从新会话中检索同一用户的长期记忆。运行前还需按模型配置准备模型凭证。user_id 在第一个会话中保存的花生过敏信息。初始化时如果 support-memory 对应的 ContextBucket 不存在,服务会自动创建;首次保存时还会为 user-42 创建启用记忆场景的 ContextSet。
显式传入后端配置
除环境变量外,也可以通过backend_config 提供非敏感连接配置。后端最终必须获得有效的 index;推荐在 LongTermMemory 外层设置,VeADK 会自动补入后端配置。
参数
LongTermMemory 参数
后端配置项
TOSContextBucketConfig 参数
保存选项
调用await memory.add_session_to_memory(session, infer=False) 可以控制保存时是否由 ContextBucket 执行记忆推理。
环境变量
失败行为
限制
- ContextBucket 名称长度必须为 3–63 个字符,只能包含小写字母、数字和连字符,且不能以连字符开头或结尾。
- 最低兼容基线
2.9.4b1是 TOS SDK 的预发布版本;升级 TOS SDK 或 VeADK 时应重新执行兼容性验证。 - 已存在的 ContextSet 必须已启用记忆场景,否则保存和检索会失败。
- 记忆严格按
user_id隔离。更改同一用户的user_id后,新的会话无法检索旧 ContextSet 中的记忆。 - 此后端不支持
get_user_profile(user_id);调用该方法会返回空字符串。