多人共用同一个智能体时,每次记忆读写都要绑定稳定的用户标识,并明确采用账户范围还是终端用户范围。ZGI Agent Memory 会把工作区、Agent、记忆槽、用户范围和用户标识一起作为读写条件。在上游身份映射正确且持续稳定时,不同用户的长期信息会写入不同记录。
隔离字段只是基础。匿名访问反复生成新标识,会让同一个人的记忆散落多份;多个用户误用同一个标识,则会把信息写进同一范围。上线前需要把登录、匿名访问、渠道接入和身份迁移放在一张用户标识表中检查。

概念示意图:账户与终端用户使用独立范围和标识,读写各自启用的记忆槽。
账户和终端用户分别解决什么
账户范围适合平台内已有明确账号身份的使用者。终端用户范围用于从发布入口或外部渠道进入的使用者,调用方需要提供可持续识别同一人的标识。两种范围即使碰巧使用了相同 ID,也应作为不同范围处理。
ZGI 的记忆值同时记录 Workspace ID、Agent ID、Slot Key、User Scope 和 User ID。读取当前用户记忆时,运行时会带着这组条件查询;更新或清除时也使用同一组条件,避免仅按 Agent 维度共享同一份记忆。
| 访问情况 | 建议范围 | 必须稳定的字段 |
|---|---|---|
| 团队成员登录平台使用 | 账户 | 平台账户 ID |
| 客户从外部入口使用 | 终端用户 | 渠道映射后的终端用户 ID |
| 匿名用户短期试用 | 按产品策略确定 | 匿名标识及失效规则 |
| 匿名用户转为登录用户 | 迁移前单独设计 | 旧标识、新账户与授权关系 |
记忆槽也要限制内容边界
用户隔离解决"信息属于谁",记忆槽解决"允许保存什么"。ZGI 的 Slot 带有 Key、说明、字符上限和启用状态,运行时只会处理已启用的槽。写入内容超过上限,或命中敏感内容检查时,更新会被拒绝。
偏好、称呼、稳定协作规则和持续项目背景适合拆成少量命名槽。合同原文、制度全文、产品手册和大量聊天记录更适合留在知识库或业务系统中,需要时再检索。把所有历史消息塞进长期记忆,会增加错误更新、过期信息和上下文挤占。
保存值进入模型上下文时还要受预算约束。ZGI 会读取当前用户已保存的槽值,并按运行预算整理后加入系统上下文。新消息与旧记忆冲突时,运行策略要求优先采用用户本轮提供的信息,随后再决定更新或清除对应槽。
三组测试能发现大多数串号风险
准备用户 A 与用户 B,让两人依次写入不同偏好,再分别开启新会话读取。随后让同一用户从两个允许的入口访问,确认身份映射仍指向同一用户;最后故意传入缺失、变化和重复的终端用户 ID,检查系统是拒绝、创建新范围,还是误用已有记录。
还要检查权限和日志。用户范围可以区分记忆记录,无法替代登录鉴权、工作区权限、数据脱敏和操作审计。验收结果可以落到四项:A 读不到 B 的值,身份变化有明确处理,敏感内容不会进入记忆,清除操作能够在正确范围生效。