记忆库能通过测试不等于回答值得信:Coding Agent Memory 的两层评估设计

时间:2026-07-24 08:47:43 来源:互联网

当智能体回应路径变更原因时,最危险的不是响应迟缓,而是看似可信的答案——误用相邻工单、将已废弃结论当作当前依据、或将症状描述为根因。即便仓库测试全绿,用户仍无法判断答案是否真实可靠。

记忆库能通过测试,不等于回答值得信:Coding Agent Memory 的两层评估设计

本文不虚构准确率,也不将lint通过视为“记忆有效”。重点讨论miniLV/coding-agent-memory的评估框架及Issue #4中提出的10至20个安全案例。核心目标是确保答案能清晰说明:依据哪条证据、属于哪层支持、是否应给出回答。

1. 为什么常规流水线测试存在不足

字段、日期、链接及退出码仅验证了“能否产出”,但未覆盖三个关键问题:当前结论与已替代结论并存时是否会误用;精确ticket、路径或根因问题是否携带相应证据;记忆缺乏相关内容时能否返回NO_MATCH并转入fresh inspection。

README中的公开命令node --test scripts/*.test.mjs && node scripts/wiki-lint.mjs --strict,证明了本地工作流的可重复性和来源约束的可检查性,但并未保证未来所有问题都能正确回答。更现实的情况是,当前检索是作为Agent Skill按流程执行的,并非可枚举结果的确定性查询内核。若再引入词法评估器,或将预录答案塞入评估器,测试容易陷入自证循环:双方共享假设,绿灯仅反映彼此配合。

2. 先明确“支持层”的定义

规格需明确区分两条轴线:用户撰写的决策与Agent推断的总结;记忆可回答与必须重新检查仓库。每个案例至少声明以下内容:

  1. expected_modememory_answerno_match(需要 fresh inspection)。
  2. support_layeruser_authored_decisionagent_inferred_summaryfresh_inspection_required
  3. evidence:允许的来源链接、ticket、路径或段落定位。
  4. must_not_reuse:相似但过期、只描述症状、或不属于本流程的证据。

“误复用”指使用不应支持当前结论的证据进行支持;NO_MATCH并非失败,而是安全结果:记忆不足时应查新。

3. 第一层评估:确定性证据的保留

当前可执行的第一层不评判文风,只检查产物是否保留可复核事实:日期、来源、工单、路径、当前/已替代关系、根因与症状区分,以及Daily到来源的provenance链。案例规格可以很小:

- id: stale-01question: "这个决定现在还有效吗?"expected_mode: memory_answersupport_layer: user_authored_decisionevidence: [source_link, ticket, supersession_marker]must_not_reuse: [superseded_conclusion]- id: unseen-01question: "没有记录的模块为什么变慢?"expected_mode: no_matchsupport_layer: fresh_inspection_requiredevidence: []

测试仅对照evidence ID、时间和关系,验证“有证据才允许回答”,不生成漂亮的标准答案。10至20个安全案例覆盖Issue #4的范围:当前/已替代结论、精确ticket/path、根因/症状、可复用指导、无匹配、引用完整性及多工作流长样本。产出是可审计的证据报告,而非“记忆准确率”。

4. 第二层评估:Agent-in-the-loop的有用性

第一层稳定后,将真实Agent放入回路,但不提供预录答案。运行记录保存案例版本、evidence ID、回答、声明的support_layer、是否NO_MATCH、是否请求fresh inspection、模型/配置及时间。

评估器检查支持关系而非逐字相等:引用是否在允许集合内;旧结论是否标为superseded;根因问题是否引用根因证据;memory_answer/no_match是否符合规格;需要查新时是否停止记忆推断。确定性来自固定案例、证据集合与审计日志,有用性来自真实Agent的选择。不应再添加并行词法评估器,也不应将期望答案硬编码进Skill,否则仍是自证。

总结

测试通过仅表明系统遵守了已声明的约束;答案可信还需证明引用了正确层级的证据,并在无证据时拒绝猜测。先进行证据保留,再进行Agent-in-the-loop,才能将格式正确与记忆可靠区分开来。

综上所述,通过证据保留与Agent-in-the-loop的两层评估设计,才能确保答案既有证据支持又避免无依据猜测。这是将格式正确与记忆可靠分离的关键。