【BUG反馈】memory工具patch写入"报成功但内容丢失"——截断、清空、frontmatte

天浩
天浩 Lv.1 新人创作者

Lv.1 新人创作者

环境信息

  • 版本:WPS灵犀(端内专业版,2026年10月8日当前版本)

  • 使用工具:memory(长期记忆管理)

  • 操作对象:核心记忆 core/核心记忆(单文件,正文上限1000字符)

问题现象(按发生顺序)

现象1:patch返回"已修改",实际写入被1000字符上限静默截断

核心记忆原文已接近1000字符上限。我用 patch 在其中新增一行指针(约90字符),工具返回"已修改页面",但 read 回来发现:新增行写入成功的同时,页面末尾原有的内容行被砍掉了——总长度恰好被压回1000字符以内。

也就是说:写入超过上限时,工具不是拒绝或报错,而是静默截断尾部,且成功提示照常返回。我连续 patch 了多次,每次都丢一点,页面越来越短。

现象2:正文被清空

多次截断后,最后一次 patch 把正文全部弄丢,页面只剩 frontmatter:

---
title: 核心记忆
summary: 用户的基本称呼、沟通风格等每轮对话必守的短信息
---

(正文0字符)

现象3:此时无法自救——含frontmatter的补丁一律被"格式不正确"拒绝

正文空了之后,我尝试用 patch 以 frontmatter 为锚点重建正文,new_text 使用了完全标准的格式:

---
title: 核心记忆
summary: 用户的基本称呼、沟通风格等每轮对话必守的短信息
---

## 七、自检铁律
- 测试行

连这个最小合法内容都被拒绝,报错:

content 的 frontmatter 格式不正确。正确格式:……请检查:1) 是否以 --- 开头并以 --- 闭合 2) YAML 语法是否正确 3) 必须包含 title 和 summary 字段。

标题、摘要、闭合符号全都有,仍然拒绝。由此陷入死锁:add 不能覆盖已有页面,patch 又拒绝合法内容,页面无法修复。

期望行为

  1. 写入超过容量上限时,明确报错(如"超出1000字符上限,当前xxx字符"),而不是静默截断还报成功;

  1. patch 部分内容成功后,不应丢失页面其他部分(截断的应是"拒绝写入"而非"砍掉原文尾部");

  1. frontmatter 验证器对合法格式误报"格式不正确",请检查验证逻辑(疑似把 patch 的 new_text 当成整页内容校验时,与 patch 的替换语义冲突);

  1. 【功能建议】给 add 增加"允许覆盖"选项,或在核心记忆被清空时提供恢复/重置入口,否则一旦出现现象2,用户没有任何自救手段。

与已知帖子的关联

  • 帖94741(马成功老师):记忆导入提示"成功"但内容未写入——同一族"报成功与实际写入不符"问题;

  • 帖92937(快乐小子新):核心记忆1000字符上限为官方设计,超出应流向wiki层——上限本身合理,但截断应当显式报错,不应静默。

影响评估

核心记忆是每轮对话自动注入的最高优先级记忆。这次事故导致我长期积累的七节自检铁律全部丢失,且用户侧无任何恢复手段。好在教训正文及时转存到了 wiki/lessons/ 和本地知识库,损失可控,但对不设防的用户,这个bug可能造成核心记忆不可逆丢失。


求助:也请熟悉 memory 工具的朋友看看,patch 的正确用法到底是什么?是否存在我用法不当的可能(比如 new_text 是否必须/必须不含 frontmatter?)。如果是设计如此,也希望官方把报错信息改得明确一点。

辽宁省
浏览 246
收藏
1
分享
1 +1
8
+1
全部评论 8
 
天浩
天浩 Lv.1 新人创作者

Lv.1 新人创作者

修复的很快,点赞!!!
   辽宁省
举报
0
0
 
小浣熊干脆面
您好,方便提供一下版本号吗,以及运行环境是本地还是云端?
   广东省
举报
0
6
天浩
天浩Lv.1 新人创作者

Lv.1 新人创作者

本地运行
· 辽宁省
举报
0
0