openviking 长期记忆后端把会话消息写入 OpenViking 的用户记忆,并按用户身份检索实体、事件和偏好。该后端从 VeADK 1.0.3 开始提供。
Runner.user_id 是终端用户标识,VeADK 将其作为 OpenViking 的 peer_id 用于记忆隔离。openviking_user_id 是 OpenViking 中记忆所属的 owner/context,用于在同一 OpenViking 服务内隔离不同应用或租户的记忆。两者是不同的概念。使用示例
基础安装已包含openviking-sdk。运行前准备支持用户记忆的 OpenViking 服务,设置 DATABASE_OPENVIKING_URL、DATABASE_OPENVIKING_API_KEY 和 DATABASE_OPENVIKING_USER_ID。自动或手动保存均会把会话内容发送到该服务;先确认访问权限和数据保留策略
参数
LongTermMemory 参数
OpenViking 后端参数
默认使用
user_id 作为 peer ID,只允许字母、数字、点、下划线、@ 和连字符。需要改变用户映射时,可传入 peer_id_resolver。
openviking_user_id 未配置时按 DATABASE_OPENVIKING_USER_ID 顺序查找,都未配置时使用 default 并输出告警日志。建议为每个应用或租户显式设置,避免不同应用的记忆混在同一个 default 路径下。
未配置 memory_policy 时,VeADK 不向 OpenViking 发送策略,由 OpenViking 服务应用其官方默认策略。如需显式控制记忆的抽取范围与隔离方式,传入合法的 memory_policy,其结构以 OpenViking 会话接口为准。例如:
环境变量
自定义用户映射
多租户应用可以提供peer_id_resolver,把应用和用户组合成单个隔离标识:
@ 和连字符,且不能为 . 或 ..。上线后修改映射规则会使既有记忆保留在旧 peer 路径下,新的检索可能无法命中这些数据。