来源说明:本文依据 Awesome QA Skills 的 Agent Memory Testing Prompt 和 Skill 整理。单独列出的质量循环、场景示例和 FAQ 是面向实际使用的编辑性展开;具体预期仍以项目策略和获准验证的证据为准。
智能体记忆测试关注助手如何跨用户和会话存储、检索、更新与遗忘信息。复核时要把每条记忆追溯到来源和适用策略;只看最终回答,无法确认实际取回了哪个版本。
新手入门:先从一条隔离记录开始
- 写清目标、测试对象、范围、成功标准,以及本次不授权执行的动作。
- 审计手头材料:哪些已知、缺失、相互冲突、可能过时、超出范围,哪些只是暂时假设。每项都记录来源、时效和证据状态。
- 选一条虚构记忆和获准的隔离测试租户。先确认项目对租户范围、偏好优先级、有效期和删除传播的实际规则;缺少规则时先列为待确认。
- 把场景写清楚:前置条件、触发动作、基于项目规则的预期结果、需要保存的证据和停止条件。
- 先审阅现有策略与轨迹。如需真实执行,先确认授权和隔离环境,并把执行记录与设计计划分开。
保留可追溯的记忆记录
对每条已有记忆保留租户与用户范围、memory ID、内容版本、来源、写入时间、有效期,以及同意、撤回或删除状态。把检索出的条目及其来源信息关联到回答,便于复核者查看相同证据。
检查隔离、污染与时间边界
使用内容明显不同的合成记忆,检查同一查询在不同租户、用户或会话中的可见范围;跨范围污染的预期必须来自项目策略。依据项目给定的一致性窗口和偏好优先级规则,检查更新后是否仍返回旧内容、到期条目是否继续出现,以及撤回或删除后的检索是否符合已有策略。获授权的检索可以作为对照。
遇到相互冲突的偏好或不同来源的记忆时,不要默认最后写入的内容优先,也不要自行编造保留时长。若优先级、有效期、删除传播范围或预期一致性窗口缺少来源,应将相应判断保留为待确认。
用一条记录走完更新与删除复核
以下是隔离环境中的说明性场景,预期结果仍须以项目策略为依据。可以用两个虚构的偏好值观察同一记忆从写入到删除的轨迹:
| 阶段 | 检查动作 | 留存证据 |
|---|---|---|
| 写入 | 在获准的测试租户写入一条记忆 | 租户与用户范围、memory ID、来源、版本、写入时间、同意状态、有效期策略 |
| 更新 | 把测试偏好从 A 改为 B,并在策略规定的一致性窗口内重新查询 | 更新事件、返回的 memory ID 与版本、检索结果和来源信息 |
| 删除 | 发起获准的删除请求,检查策略列出的索引、缓存和其他存储范围 | 删除请求 ID、各存储范围的检查记录、完成状态和时间 |
如果更新后仍取回 A,要对照策略规定的传播窗口和版本规则判断;不能因为一次查询为空,就断言所有存储都已删除。删除复核应按系统实际使用的索引、缓存和备份范围进行;备份或传播策略缺失时,结论只覆盖已检查的范围。没有检索轨迹、删除范围或授权信息时,标记为“证据不足”或“待确认”;这份计划不能替代真实执行证明。
重点:把记忆验证纳入质量循环
以下把 Prompt 中的基线、生命周期检查、证据核对和回归要求串成一轮独立循环,方便团队在变更后重复使用。
每轮都用同一套策略和合成样本检查改动是否有效,并保留未验证的范围:
- 固定基线: 保存策略、架构范围、测试租户、样本版本、优先级规则和一致性窗口。
- 执行生命周期检查: 在获准环境写入一条记录,按计划读取、更新、撤回或删除;跨租户与过期检查使用独立的合成数据。
- 收集完整轨迹: 记录 memory ID、版本、来源、检索结果、时间和实际检查过的存储范围,而不只记录最终回答。
- 对照策略判定: 区分行为不符、策略缺失、样本或环境过时,以及证据不足;未定义的预期先标待确认。
- 修订并留痕: 根据证据调整测试场景、夹具或方法,记录修改的版本和理由;风险接受与例外仍由 Human 决定。
- 回归同一批样本: 重新运行原有检查,再加入新的边界样本;记录通过、失败、未执行和未评估的状态。
计划、静态审阅或一次空查询都不能证明全部存储已清除,也不能代替真实执行记录。
最佳实践:让结论能追溯、能复核
- 每个预期结果都引用项目策略或架构材料;没有来源的规则保持待确认。
- 使用脱敏或合成数据、最小权限和隔离租户;缺少授权或停止条件时不访问真实账户。
- 按实际存储范围检查删除,只对已验证的索引、缓存和备份范围作结论。
- 记录每条记忆的来源、版本、有效期、撤回状态和检索轨迹,保留复测前后的差异。
- 分开写事实、证据支持的推断、候选建议和 Human 决策,不把设计计划写成执行结果。
区分记忆生命周期与访问权限
记忆测试追踪长期保存状态,包括来源、时效、租户隔离、保留与遗忘。智能体权限测试:https://inaodeng.com/zh-cn/qaskills/agent-permission-testing/;判断某个主体能否执行具体读取或工具动作。两者可能相关,但不能用其中一个结论替代另一个。
记录 AMT-## 发现
每条发现至少记录对象或规则、来源、触发条件或适用范围、预期关注点、证据状态、影响与优先级、责任角色、关闭条件和验证方法。每个场景还应写明前置条件、动作、预期结果或判断标准、所需证据和停止条件。使用项目现有的优先级规则;若临时采用 P0/P1/P2/P3,应说明影响、可能性、可探测性或决策成本,不能把等级当成通用事实。结果应分开呈现事实、证据支持的推断、候选建议和 Human 决策。
示例(假设项目策略明确规定租户间记忆隔离)。
- 对象与来源: 租户隔离;引用项目策略中的对应条款。
- 触发条件与范围: 在获准的测试租户 A 写入唯一合成记忆,再以租户 B 执行相同查询。
- 预期关注点与证据: 按策略判断 B 是否能检索到 A 的记忆;保存两侧租户范围、memory ID 和检索轨迹。
- 证据状态: 尚未运行时标记“已设计/未执行”,不报告运行结果。
- 影响、优先级与责任角色: 按项目分级规则评估潜在跨租户暴露影响,并指定负责复核的角色。
- 关闭条件与验证方法: 在授权隔离环境中按策略预期复核检索结果;策略来源或授权缺失时停止并标记待确认。
后续验证与剩余风险
静态材料不足时,提出最小且获授权的验证动作,并写出停止或升级条件、剩余风险和待确认问题。使用脱敏数据、mock 或隔离环境;没有执行证据时,保持“未执行”状态。
相关 Skill
- 智能体权限测试:https://inaodeng.com/zh-cn/qaskills/agent-permission-testing/;检查身份和动作授权。
- RAG 检索测试:https://inaodeng.com/zh-cn/qaskills/rag-retrieval-testing/;追踪检索覆盖和来源选择。
安装与调用
安装这个 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。
源文件
- 智能体记忆测试 Prompt: https://github.com/naodeng/awesome-qa-skills/blob/main/skills/zh/testing-types/agent-memory-testing/prompts/agent-memory-testing.md。它定义 AMT-## 发现合同,以及更新、保留、隔离和删除的证据边界。
- Agent Memory Testing Skill: https://github.com/naodeng/awesome-qa-skills/blob/main/skills/zh/testing-types/agent-memory-testing/SKILL.md。它说明 Skill 的适用场景、执行要点和交付前自检。