不展示底层文件名
用户管理的是“我与 Agent 的关系”,不是数据库、配置文件或存储结构。
Agent Memory / 产品设计
Agent 长期记忆产品机制
这是一个单窗口的长期陪伴型 Agent。随着对话累计到数千甚至数万轮,用户无法通过新建会话重置上下文:哪些信息值得长期保留、Agent 实际记住了什么、错误记忆如何被发现和纠正,都会直接影响后续协作。
我系统拆解长期记忆的写入、存储、召回、更新、删除和冲突机制,并将底层能力转化为用户可以查看、修改和维护的 MemoryTab。
记得越多不是目标。准确、可见、可纠正,并始终保持一致才是。
01 / 机制拆解
我先追踪一条信息从用户表达进入长期记忆,再回到后续回复的完整路径。每个环节不仅有机制问题,也有用户可直接感知的产品风险。
任何一个环节失败,都可能造成“用户以为已经改好,但 Agent 仍在使用旧信息”。
02 / 产品化
用户要管理的不是文件名、数据库或存储字段,而是“Agent 如何理解我、如何与我协作”。因此 MemoryTab 位于 Files 页面,但前台不展示底层文件名,也不采用文件夹式管理。
我将内容组织为行为准则、身份与角色、用户资料与偏好,并使用文档式面板帮助用户整体阅读。修改不采用逐句编辑,而是由 MyClaw 承接模块级自然语言修改。
只有底层更新成功后,MemoryTab 才展示新内容;失败时保留原状态并反馈原因。
用户管理的是“我与 Agent 的关系”,不是数据库、配置文件或存储结构。
按行为准则、身份与角色、用户资料与偏好组织,而不是要求用户理解技术分类。
支持整体理解当前设定,避免大量逐条卡片造成碎片化。
底层更新成功后才展示新内容;失败时保留旧状态并明确反馈。
产品化转译的核心,是隐藏底层复杂度,同时保留用户对结果的查看、纠正和控制能力。
03 / 固定评测集
我没有临时挑选几个 Prompt 判断效果,而是按四类场景建立固定测试集。每次规则或策略调整后,都使用同一批用例重新验证,使前后结果可比较。
01
验证稳定信息能否准确写入、正确展示并在相关场景中召回。
以后叫我 Wesley。称呼是否准确写入并按需召回
我主要做 AI 产品相关工作。是否避免推断公司、职级和项目
以后给我写 PRD 时要简洁,研发能直接看懂。是否保留偏好的适用范围
重点检查写入准确 · 展示一致 · 按需召回
02
区分长期信息、临时状态、一次性指令和异常保护。
我今天有点困。是否避免写入临时状态
这次回答简短一点。是否区分一次性指令和长期偏好
更新失败时,旧内容是否仍保持有效?是否保护旧状态并诚实反馈
重点检查谨慎写入 · 不过度概括 · 失败保护
03
验证冲突、删除、长上下文和版本状态。
之前叫我 Wes,现在还是叫 Wesley 吧。旧称呼是否失效
删除后再经过 30 轮对话,是否仍会召回?删除是否跨摘要和长上下文持续生效
旧项目结束后,新项目是否替换而不是与旧状态并存?是否识别状态变化和版本优先级
重点检查旧值失效 · 删除彻底 · 最新版本优先
04
覆盖口语表达、上下文指代、多轮操作和用户主动检查。
我现在不做上次那个了,最近主要在做 MemoryTab。是否结合上下文理解指代
你现在到底记住了我什么?回答是否与当前有效记忆集合一致
把你记住的所有工作地点都删掉,其他信息保留。是否精确执行删除范围
重点检查理解上下文 · 精确处理范围 · 最终一致
评分标准
只有 MemoryTab 展示、底层有效状态和后续 Agent 回复全部一致,才算闭环成功。
只写入长期稳定、与后续协作有关的信息。
把临时状态或一次性指令写成长期偏好。
模型理解、记忆提取策略
信息准确,不擅自扩大、推断或概括。
将局部偏好扩展为全局偏好。
模型理解、摘要策略
展示内容与当前有效记忆一致。
显示旧值,或展示尚未成功写入的新值。
前台刷新、状态同步
新信息替换或合并旧信息。
新旧值并存,后续随机命中。
更新规则、旧值失效
前台、底层和召回索引同步失效。
只在界面隐藏,之后仍能召回。
删除链路、索引同步
识别状态变化,以最新明确表达为准。
冲突信息同时被视为当前事实。
冲突检测、版本优先级
只使用最新、有效且与当前任务相关的信息。
使用旧值,或在无关任务中过度召回。
召回排序、相关性阈值、缓存
失败时不提前覆盖旧内容,并明确反馈。
前台先显示新值,但底层更新失败。
异步状态、产品规则
MemoryTab、底层状态和 Agent 回复三处一致。
任一位置与其他两处不一致。
跨链路状态管理
04 / Bad Case
我会同时检查用户原始表达、原记忆、修改或删除操作、MemoryTab 展示、底层有效状态和后续 Agent 回复,再判断状态从哪里开始不一致。每个修复后的问题都会进入固定回归集。
Bad Case 01
“之前说叫我 Wes,现在还是叫 Wesley 吧。”
前台虽然更新,但底层旧记忆没有失效,最终回复仍使用旧值。
修改后立即检查一次,再经过长对话后复查称呼是否仍为 Wesley。
Bad Case 02
“把关于我正在找工作的记忆删掉。”
删除只影响前台展示,没有让底层与召回链路同步失效。
删除后立即检查,并在多轮无关对话后再次验证不再召回。
Bad Case 03
“这次回答简短一点。”
系统没有识别“这次”的时效范围,也没有区分当前指令与长期偏好。
本轮验证回答变短,下一轮复杂任务验证长期偏好未被改写。
Bad Case 04
“Schedule 已经结束,现在主要负责 MemoryTab。”
系统没有把“已经结束”识别为旧状态失效信号。
更新后分别询问当前项目和历史项目,验证当前状态唯一且历史关系仍可正确解释。
优化闭环
从真实使用中发现记忆错误和不一致现象。
区分可复现问题与偶发噪声。
按写入、更新、删除、冲突、召回和异常状态整理。
把问题转成有前置状态、操作和预期结果的固定用例。
明确前台、底层与后续回复的端到端通过门槛。
使用同一批测试集评估当前版本。
定位第一个出现不一致的环节。
调整模型理解、记忆策略、同步链路或产品规则。
使用相同用例验证变化,避免选择性比较。
把历史问题变成后续版本必须通过的固定门槛。
05 / 结果与复盘
我推动 MemoryTab 从机制调研、产品设计、研发评审到正式上线,并围绕写入、更新、删除、冲突和后续召回建立固定评测与回归流程。
长期记忆产品的核心不是让 Agent 记得越多,而是让记忆准确、可见、可纠正,并在前台、底层和后续回复之间始终保持一致。