来源说明:本文依据 Awesome QA Skills 的 Agent Memory Testing Prompt 和 Skill 整理。单独列出的质量循环、场景示例和 FAQ 是面向实际使用的编辑性展开;具体预期仍以项目策略和获准验证的证据为准。

智能体记忆测试关注助手如何跨用户和会话存储、检索、更新与遗忘信息。复核时要把每条记忆追溯到来源和适用策略;只看最终回答,无法确认实际取回了哪个版本。

新手入门:先从一条隔离记录开始

  1. 写清目标、测试对象、范围、成功标准,以及本次不授权执行的动作。
  2. 审计手头材料:哪些已知、缺失、相互冲突、可能过时、超出范围,哪些只是暂时假设。每项都记录来源、时效和证据状态。
  3. 选一条虚构记忆和获准的隔离测试租户。先确认项目对租户范围、偏好优先级、有效期和删除传播的实际规则;缺少规则时先列为待确认。
  4. 把场景写清楚:前置条件、触发动作、基于项目规则的预期结果、需要保存的证据和停止条件。
  5. 先审阅现有策略与轨迹。如需真实执行,先确认授权和隔离环境,并把执行记录与设计计划分开。

保留可追溯的记忆记录

对每条已有记忆保留租户与用户范围、memory ID、内容版本、来源、写入时间、有效期,以及同意、撤回或删除状态。把检索出的条目及其来源信息关联到回答,便于复核者查看相同证据。

检查隔离、污染与时间边界

使用内容明显不同的合成记忆,检查同一查询在不同租户、用户或会话中的可见范围;跨范围污染的预期必须来自项目策略。依据项目给定的一致性窗口和偏好优先级规则,检查更新后是否仍返回旧内容、到期条目是否继续出现,以及撤回或删除后的检索是否符合已有策略。获授权的检索可以作为对照。

遇到相互冲突的偏好或不同来源的记忆时,不要默认最后写入的内容优先,也不要自行编造保留时长。若优先级、有效期、删除传播范围或预期一致性窗口缺少来源,应将相应判断保留为待确认。

用一条记录走完更新与删除复核

以下是隔离环境中的说明性场景,预期结果仍须以项目策略为依据。可以用两个虚构的偏好值观察同一记忆从写入到删除的轨迹:

阶段检查动作留存证据
写入在获准的测试租户写入一条记忆租户与用户范围、memory ID、来源、版本、写入时间、同意状态、有效期策略
更新把测试偏好从 A 改为 B,并在策略规定的一致性窗口内重新查询更新事件、返回的 memory ID 与版本、检索结果和来源信息
删除发起获准的删除请求,检查策略列出的索引、缓存和其他存储范围删除请求 ID、各存储范围的检查记录、完成状态和时间

如果更新后仍取回 A,要对照策略规定的传播窗口和版本规则判断;不能因为一次查询为空,就断言所有存储都已删除。删除复核应按系统实际使用的索引、缓存和备份范围进行;备份或传播策略缺失时,结论只覆盖已检查的范围。没有检索轨迹、删除范围或授权信息时,标记为“证据不足”或“待确认”;这份计划不能替代真实执行证明。

重点:把记忆验证纳入质量循环

以下把 Prompt 中的基线、生命周期检查、证据核对和回归要求串成一轮独立循环,方便团队在变更后重复使用。

每轮都用同一套策略和合成样本检查改动是否有效,并保留未验证的范围:

  1. 固定基线: 保存策略、架构范围、测试租户、样本版本、优先级规则和一致性窗口。
  2. 执行生命周期检查: 在获准环境写入一条记录,按计划读取、更新、撤回或删除;跨租户与过期检查使用独立的合成数据。
  3. 收集完整轨迹: 记录 memory ID、版本、来源、检索结果、时间和实际检查过的存储范围,而不只记录最终回答。
  4. 对照策略判定: 区分行为不符、策略缺失、样本或环境过时,以及证据不足;未定义的预期先标待确认。
  5. 修订并留痕: 根据证据调整测试场景、夹具或方法,记录修改的版本和理由;风险接受与例外仍由 Human 决定。
  6. 回归同一批样本: 重新运行原有检查,再加入新的边界样本;记录通过、失败、未执行和未评估的状态。

计划、静态审阅或一次空查询都不能证明全部存储已清除,也不能代替真实执行记录。

最佳实践:让结论能追溯、能复核

  • 每个预期结果都引用项目策略或架构材料;没有来源的规则保持待确认。
  • 使用脱敏或合成数据、最小权限和隔离租户;缺少授权或停止条件时不访问真实账户。
  • 按实际存储范围检查删除,只对已验证的索引、缓存和备份范围作结论。
  • 记录每条记忆的来源、版本、有效期、撤回状态和检索轨迹,保留复测前后的差异。
  • 分开写事实、证据支持的推断、候选建议和 Human 决策,不把设计计划写成执行结果。

区分记忆生命周期与访问权限

记忆测试追踪长期保存状态,包括来源、时效、租户隔离、保留与遗忘。智能体权限测试:https://inaodeng.com/zh-cn/qaskills/agent-permission-testing/;判断某个主体能否执行具体读取或工具动作。两者可能相关,但不能用其中一个结论替代另一个。

记录 AMT-## 发现

每条发现至少记录对象或规则、来源、触发条件或适用范围、预期关注点、证据状态、影响与优先级、责任角色、关闭条件和验证方法。每个场景还应写明前置条件、动作、预期结果或判断标准、所需证据和停止条件。使用项目现有的优先级规则;若临时采用 P0/P1/P2/P3,应说明影响、可能性、可探测性或决策成本,不能把等级当成通用事实。结果应分开呈现事实、证据支持的推断、候选建议和 Human 决策。

示例(假设项目策略明确规定租户间记忆隔离)。

  • 对象与来源: 租户隔离;引用项目策略中的对应条款。
  • 触发条件与范围: 在获准的测试租户 A 写入唯一合成记忆,再以租户 B 执行相同查询。
  • 预期关注点与证据: 按策略判断 B 是否能检索到 A 的记忆;保存两侧租户范围、memory ID 和检索轨迹。
  • 证据状态: 尚未运行时标记“已设计/未执行”,不报告运行结果。
  • 影响、优先级与责任角色: 按项目分级规则评估潜在跨租户暴露影响,并指定负责复核的角色。
  • 关闭条件与验证方法: 在授权隔离环境中按策略预期复核检索结果;策略来源或授权缺失时停止并标记待确认。

后续验证与剩余风险

静态材料不足时,提出最小且获授权的验证动作,并写出停止或升级条件、剩余风险和待确认问题。使用脱敏数据、mock 或隔离环境;没有执行证据时,保持“未执行”状态。

相关 Skill

安装与调用

安装这个 Skill:

npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh/testing-types/agent-memory-testing

调用 agent-memory-testing 时,提供记忆策略、租户范围、条目版本、来源、有效期或删除规则,以及现有检索证据。可以从一条脱敏记录开始:

请按 agent-memory-testing 复核这条脱敏记忆记录。只依据我提供的策略和证据,检查租户/用户范围、版本与来源、有效期、同意状态及删除传播范围。分别列出已确认事实、待确认项和证据不足项;不要推断未提供的保留期限或删除结果,也不要访问真实账户或秘密数据。

常见问题

一次检索没有返回记录,能证明记忆已经删除吗? 不能。它只说明本次查询在当前检索路径下没有返回结果。还要根据实际架构检查策略列出的索引、缓存和其他存储,并保留各范围的删除证据。

冲突的偏好是否默认采用最后写入的一条? 不能默认如此。按项目提供的优先级规则判断;如果规则不存在或材料相互冲突,就记录为待确认,不要自行推断。

调用 Skill 后会自动检查线上账户吗? 不会。本文的复核流程基于提供的材料;如需运行验证,应先确认授权和隔离环境,并使用脱敏数据或 mock。

源文件

分享