Agent X-Ray
RuntimeNotesAbout
Notes/产品经理/Agent 基础知识/S08-实践

阶段 8 实践 — 记忆冲突与知识边界地图

4 分钟 · 更新于 2026-09-01

阶段 8 实践 — 记忆冲突与知识边界地图

本实践的产出最小产出:Vault、Wiki、GBrain、Session Log 和模型上下文的关系图 完整产出:关系图 + 写入门槛规则 + 过期记忆冲突演练 + 会话恢复三方案(与阶段 7 合并做)

预计投入:5~7 小时。研究对象就是你自己每天在用的这套系统——这是本实践相对于任何教科书案例的最大优势。


实践 1 · 知识边界地图(⭐ 必做)

任务:画一张图 + 配一张决策表,说清本仓五个层次各自的职责、生存期、权威性与流向。

要画进去的五层

具体是什么关键属性
模型上下文当次请求窗口一次请求;由 Harness 组装
Session Logsessions/(codescope 问答留存,hook 自动写)任务级;git 追踪;同时是 GBrain 语料源
Agent 记忆.claude/projects/*/memory/ + MEMORY.md 索引 + .claude/memory/shared/ 跨机同步长期;一条一文件;分四型
Vault 原文 + wiki/手写文档 + LLM 编译的概念文章长期;wiki 是派生物
GBrain跨源语义检索(Outline / vault / sessions / GBrain 研究摘要 / 需求实现日志)派生索引;可能有延迟

图上必须表达的四件事

  1. 派生关系:谁是从谁生成的(wiki ← vault;GBrain ← 多源;sessions ← 工具调用)
  2. 写入者:人 / hook 自动 / 编译流程 / Agent 自主
  3. 权威性等级:一手 / 派生 / 可能过期
  4. 升级路径:在派生层拿到结论后,进 PRD 前要回到哪一层核对

配套决策表

我要知道…先问落地前核对为什么
这个业务概念是什么
这段逻辑线上现在怎么实现
上次这个需求最后怎么定的
用户(我自己)的偏好是什么
某个字段的取值范围

验收标准

  • 五层齐全,派生关系正确
  • 能解释"为什么 vf-req-implL3-检索推断 的结论不能直接引用"
  • 能解释"为什么本地代码镜像的结论必须经 codescope 复核"
  • 图能同时用作阶段 3 实践 4 的成果(两处要求是同一张图,做一次即可)

存放Excalidraw/ 或本目录。


实践 2 · 写入门槛规则

任务:写一套"什么时候写长期记忆"的决策规则,并用至少 10 条真实候选验证。

规则模板

text
写入条件(必须全部满足):
  1. 跨会话适用
  2. 无法从现有来源推导(代码 / 文档 / git / CLAUDE.md)
  3. 记住它会改变下次的做法
  4. 相对稳定(预期有效期 > 一个月)
  5. 用户可接受被记录

分类:
  user      / feedback   / project    / reference
  (我是谁)  (怎么做事)  (在做什么)  (去哪找)

不写:
  - 只在这次任务成立的
  - 仓库已记录的
  - 敏感信息
  - 猜测与推断(除非标注为推断)

验证:10 条候选逐条判定

从最近一个月的实际工作里挑 10 条候选,逐条过规则:

#候选内容12345结论类型
1例:某网关只有 /chat/completions,没有 /modelsproject
2例:今天 codescope 查到某方法在 XXService 第 120 行不写

验收

  • 10 条里应当有 3~6 条被拒——如果全部通过,说明门槛形同虚设
  • 每条被拒的都能指出是卡在哪一条

门槛 2 是最有区分度的一条 "代码在第几行""某个函数叫什么名字"这类内容通过其他条件很容易,但卡在门槛 2 上——它们在仓库里已经有权威来源,写进记忆只会在代码变动后变成错误的旧信息。这也是本仓记忆规则明确禁止的类型。


实践 3 · 过期记忆冲突演练

任务:构造一条会过期的记忆,走完"发现 → 更新 → 冲突 → 删除"全流程。

步骤

  1. 写入一条会过期的记忆。例:"当前 GBrain 使用 X 模型做 embedding"(这类基建配置项确实会变)。
  2. 让它过期:模拟配置变更。
  3. 观察冲突:把新旧两条都放进上下文,问一个依赖这条事实的问题,跑 5 次。
    • 模型选了哪条?稳定吗?
    • 它有没有意识到冲突?
  4. 加时间标注重跑:给每条记忆加 写入时间 + 依据,并在提示词里给出"冲突时以更晚的为准并显式说明"的规则。改善多少?
  5. 走更新流程:不新增,而是改写原文件。验证 MEMORY.md 索引行是否同步更新。
  6. 走删除流程:删掉这条,验证:
    • 索引行是否也删了
    • GBrain 等派生索引里是否还有残留
    • 下次会话是否真的不再受它影响

产出:一份《记忆生命周期 SOP》,包含:写入 / 更新 / 冲突处理 / 删除四段,每段写清谁触发、改哪些位置、怎么验证

要看到的现象

  • 无时间标注时,模型对冲突记忆的选择不稳定
  • 删除时最容易漏的是派生索引里的副本——这就是"删除不是删一行"的实证

实践 4 · 三类记忆的行为影响对比

任务:验证"程序记忆 > 语义记忆 > 情景记忆"这个价值排序在自己的场景里是否成立。

做法:准备三条记忆,各自单独注入,跑同一批 5 个任务:

类型例子观察
程序记忆"中文回复里首次出现英文术语要标注原文"行为变了吗?
语义记忆"用户是产品经理,没有代码修改权限"行为变了吗?
情景记忆"用户上周问过东京航线的运价问题"行为变了吗?还是只是被复述?

验收

  • 能用数据说明哪一类记忆真正改变了 Agent 的做法
  • 如果情景记忆只是被复述而没改变行为,能说明它在产品上的价值是什么(可能是"让用户感到被记住",那就该按体验指标而不是任务指标去评估)

自测

维度阶段 8 的问法
解释用"换个用户还成立吗"这一刀,讲清记忆与知识库的区别
画图五层知识边界地图完成
比较三种冲突处理策略各自的适用与风险
实践10 条候选过门槛 + 过期演练走完全流程
评测定义"记忆系统健康"的指标:命中率?误召回率?用户删除率?
产品化《记忆生命周期 SOP》可直接用于产品设计
迁移把这套门槛用到一个 to C 助手产品上,哪些条要改?(提示:门槛 5 会变成主要约束)

通过标志 能回答这个问题:"用户要求删除一条记忆,我们的系统一共要在几个地方删?" 答不出具体位置数量,说明还没真正理解记忆系统的存储拓扑。


  • 阶段 8 讲义
  • 阶段 3 实践
  • 阶段 7 实践
  • 学习路线

本章目录
实践 1 · 知识边界地图(⭐ 必做)实践 2 · 写入门槛规则实践 3 · 过期记忆冲突演练实践 4 · 三类记忆的行为影响对比自测Related Documents
苏ICP备2025204887号-2