Agent 记忆可观测性:上线后值得关注的 12 项指标
记忆张量 MemTensor 的生产检查清单
Agent 可能给出了正确答案,却依赖一条过期偏好;也可能检索到调用者无权访问的记录,或在用户纠正后继续使用旧信息。我们建议从首次写入到检索、再到后续变化,全程追踪记忆,了解哪些记录实际进入模型,并据此排查结果。
从用户完成任务的结果出发
选择一个记忆应当有所帮助的任务:一周后接续客服工单、编码 Agent 应用项目规则,或助手使用修正后的偏好。在模型、基础提示词、工具与评分标准一致的条件下,对比使用和不使用授权记忆的同类任务。
同时记录任务成功率、检索质量和延迟,才能把记忆系统的变化与 Agent 实际完成的工作关联起来。
起步时的十二项指标
以下指标用于应用侧评估。试点前先定义标注规则、抽样方法和验收阈值。
| 阶段 | 指标 | 衡量方式 |
|---|---|---|
| 写入 | 1. 记忆接受率 | 抽样生成记忆中,内容准确、归属正确且值得保留的比例。 |
| 写入 | 2. 重复写入率 | 新存储记录中,与现有有效记忆形成无必要重复的比例;有意保留的历史版本除外。 |
| 写入 | 3. 写入到可检索延迟 | 从提交写入,到预先定义的授权查询首次成功找回记忆的时间,报告 p50 和 p95。 |
| 检索 | 4. 事实召回率 recall@k | 前 k 条结果覆盖的必要事实数,除以任务所需的全部事实数;事实去重后计算。 |
| 检索 | 5. 准确率 precision@k | 前 k 条结果中的相关记录数除以 k,未返回满的结果位按未命中计算。 |
| 检索 | 6. 过期信息召回率 | 返回记录中,相对于问题所要求时间已失效的比例。 |
| 检索 | 7. 跨范围信息暴露率 | 权限范围测试中,返回任意未授权记忆的测试比例,无论它是否出现在最终回答里。 |
| 检索 | 8. 读取延迟 p95 | 从发起检索请求到收到响应的第 95 百分位耗时,按负载与数据规模分别统计。 |
| 更新 | 9. 纠错传播时间 | 从提交纠正,到当前状态查询返回新值、且不再把旧值当作当前值的时间。 |
| 更新 | 10. 未解决冲突率 | 已审核事实组中,同一实体、属性、作用域和有效时间仍存在不兼容当前值的比例。 |
| 遗忘 | 11. 删除完成率 | 在截止时间前,已在声明范围内验证完成的删除请求数,除以全部到期请求数。 |
| 结果 | 12. 任务成功率增量 | 同类任务在使用和不使用授权记忆时的成功率差值,以百分点表示。 |
按实际负载设置延迟预算,并在成功请求耗时之外报告失败与超时。即使总体比例很低,也要逐条检查越权暴露和未完成的删除。
用标识符串联过程,减少私密内容副本
将每次请求与认证后的访问范围、查询、返回的记忆 ID、实际注入的记忆 ID、回答和反馈关联起来。对于写入、更新和删除,记录受影响的记忆 ID、来源引用、操作主体和时间。敏感内容保留在指定存储中,遥测系统通过引用查询。
MemOS Cloud 的异步写入会返回任务 ID,处理在后台继续进行。通过获取任务状态跟踪完成情况,并按类别识别受影响的记忆。同时记录处理完成时间和首次成功检索时间。
Cloud 控制台提供调用日志与调用链查看,便于排查 API 行为。MemOS Local Plugin Viewer把记忆、任务、Analytics 和 Logs 汇集到同一个界面,便于检查本地运行情况。采用开源部署时,也可以在自己的基础设施中扩展服务端观测。
发布前演练三类失败
尝试越权读取。 使用不同用户和项目的测试账号,也测试篡改标识符的请求。MemOS Cloud 的项目与用户隔离通过项目 API Key 和 user_id 区分记录。在后端将这些 ID 绑定到已认证的调用者,再检查未授权请求是否会暴露其他范围的记录。
纠正一条偏好,再执行同一任务。 修改记忆按 ID 编辑已知记录;添加反馈理解自然语言纠正,定位相关记忆并更新。按约定期限衡量传播时间;历史记录可以保留,但应被识别为历史状态。
删除测试记忆,再次检索。 删除记忆支持在 API Key 所属项目内删除指定条目或用户的记忆。按 Agent 删除需要开启 Agent 独立记忆。查询应用使用的每一条检索路径,并在删除策略覆盖的底层存储中验证完成情况,包括应用保存的副本。
从一条用户旅程和一小组已标注任务开始。当更多指标能够帮助诊断失败或作出发布决策时,再扩展测量范围。