Appearance
85. 如何实现跨 Agent 的记忆复用?
难度 P0 必背 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min
本题阅读地图
- 💡 简要回答
- 📝 详细解析
- 🎯 面试总结
👔 面试官:多 Agent 系统里,不同 Agent 怎么共享和复用记忆?
🙋 我:存到同一个数据库,大家都去查?
👔 面试官:都去查同一个库,权限怎么管?隔离怎么做?记忆的「所有权」归谁?
TL;DR 速记
- 是什么:跨 Agent 记忆复用要通过统一 Memory Service,而不是让各 Agent 直接共用一张库。
- 关键点:核心是统一格式、命名空间、权限控制、来源标注和记忆隔离。
- 怎么答:按
user_id、task_id、agent_id分层管理,既能共享用户/任务记忆,又能隔离专属记忆。
图解
跨 Agent 记忆服务
💡 简要回答
跨 Agent 记忆复用的核心是建立统一的记忆服务层(Memory Service),所有 Agent 通过这个中心化服务读写记忆,而不是各自维护独立的记忆库。这个服务负责:统一存储格式、访问权限管理、记忆的归属和隔离。
📝 详细解析
跨 Agent 记忆的三种共享模式
模式一:用户维度共享(最常见)
同一用户的所有 Agent 共享该用户的 Personal Memory。搜索 Agent 知道「用户喜欢简洁的输出格式」,代码 Agent 也应该知道这一点,因为这是用户偏好,不是某个 Agent 专属的信息。
实现方式:以 user_id 作为记忆的命名空间(namespace),同一 user_id 下的所有 Agent 都能读取个人记忆,但写入时需要标明来源 Agent。
模式二:任务维度共享
同一任务中的多个协作 Agent 共享任务记忆。主协调 Agent 拆解任务后,子 Agent A 完成的中间结果,子 Agent B 需要能读到。
实现方式:以 task_id 作为记忆的另一个命名空间,参与同一任务的 Agent 能读写该 task 的记忆。
模式三:Agent 专属记忆(不共享)
某些记忆只属于特定 Agent(比如某个 Agent 的工具使用经验),不应该暴露给其他 Agent,避免「经验污染」。
统一记忆服务层的架构
Agent A ─┐
Agent B ─┼──→ Memory Service(统一记忆 API)
Agent C ─┘ │
├── 权限控制(哪个 Agent 能读/写哪类记忆)
├── 命名空间管理(user_id / task_id / agent_id)
└── 统一存储(向量库 + 关系型库)Memory Service 对外暴露统一 API:
read_memory(user_id, query)—— 检索用户相关记忆write_memory(user_id, content, source_agent)—— 写入记忆,标注来源read_task_memory(task_id)—— 读取任务共享记忆write_task_memory(task_id, content)—— 写入任务记忆
权限设计原则
- 读比写宽松:Agent 可以读取用户的 Personal Memory,但写入时需要验证是否有权限修改用户档案
- 任务记忆按角色:只有参与该任务的 Agent 才能读写该任务的记忆
- 专属记忆严格隔离:Agent 专属记忆只有该 Agent 自己能读写
常见踩坑与反例
- 踩坑 1:所有 Agent 直接读写同一张记忆表。这样权限和归属会失控;应由 Memory Service 统一鉴权和路由。
- 踩坑 2:只按用户共享,不区分任务和 Agent。用户偏好、任务中间结果、Agent 专属经验的共享范围不同。
- 踩坑 3:写入不标来源。没有
source_agent、时间和置信度,后续很难审计和纠错。 - 踩坑 4:把临时状态写成长期记忆。短期任务产物和长期用户偏好要分层,否则会污染后续任务。
- 踩坑 5:只做向量库,不做元数据权限。向量检索要结合关系型元数据过滤,避免越权召回。
面试官可能继续追问
- 追问 1:命名空间怎么设计? 至少包含
user_id、task_id、agent_id,再加组织、权限级别和记忆类型。 - 追问 2:读写权限有什么差异? 读可以按角色放宽,写必须更严格,并记录来源、时间和审计日志。
- 追问 3:记忆冲突怎么处理? 用版本、置信度、时间衰减和人工确认,不直接覆盖关键用户画像。
- 追问 4:如何避免隐私泄露? 检索前做权限过滤,敏感记忆加密或脱敏,跨租户严格隔离。
🎯 面试总结
答这道题核心是「统一记忆服务层 + 命名空间隔离」:用 user_id、task_id、agent_id 三级命名空间管理记忆归属,通过中心化 Memory Service 统一权限控制。能画出这个架构图,说清楚三种共享模式,面试官就满意了。