Skip to content

[Issue]: 后台 Agent 的写入权限过于宽泛导致记忆丢失问题 #148

Description

@qinu321

提交前查重 / Duplicate check

  • 我已搜索 open/closed Issue,确认没有重复。 / I searched open and closed issues and found no duplicate.

涉及区域 / Affected area

运行时记忆 / Runtime Memory

Issue 类型 / Issue type

增强或优化 / Enhancement or optimization

摘要 / Summary

后台 Agent 的写入权限过于宽泛,且没有区分"用户主动创建的内容"和"Agent 自动生成的内容"。用户主动写入的数据不应被静默删除或覆盖。

预期结果 / Expected outcome

用户主动写入的数据(档案或沉淀记忆的摘要)不应被静默删除或覆盖。

详情或复现步骤 / Details or reproduction steps

1 当我用沉淀记忆分别写入3条记忆后,因为后台AI判断第1条和第3条相似,而擅自删除了第1条,且无任何通知。
2 当我将代码修改的详细记录写入档案后,过了一段时间去看,却发现档案被AI整个简化,我的源代码已整个消失,根本没有记录的意义了。

环境信息 / Environment

N/A

补充信息 / Additional context

这是我让AI帮我总结的,作者你要是能修还是修一下吧,对实际使用真的影响很大。

Issue 1:沉淀记忆(remember)的 Agent 会静默删除已有记忆
文件位置: src/subagent.ts

根因:

WRITE_TOOLS(第35-43行)中包含了 mnemon_forget 工具
WRITE_PERSONA(第637行)要求 Agent "check for duplicates or conflicts",但没有禁止删除已有条目
当 Agent 判断新候选与某条已有记忆语义相似时,可能调用 mnemon_forget 删除旧条目,再写入新条目
最终回执只显示 mnemon_remember 的结果(action: "stored"),forget 操作对用户完全不可见
实际影响: 用户三次沉淀记忆,第二条被确认成功写入。第三次沉淀后,Agent 判定第一条和第三条重复,删除了第一条。用户事后检查才发现条目丢失,没有任何通知。

建议修复:

从 WRITE_TOOLS 中去掉 'mnemon_forget',或者
在 WRITE_PERSONA 中明确约束:"Never delete, forget, or remove existing entries. If you detect a duplicate, skip the new candidate instead."
Issue 2:后台审查 Agent(review)会覆盖用户主动创建的档案文档
文件位置: src/subagent.ts 第664-670行(REVIEW_PERSONA)

根因:

REVIEW_PERSONA 第668行:"use mnemon_document_search to find an existing active document, then create or update at most one concise managed Markdown document with mnemon_document_manage"
Agent 有权 update 已有文档,且倾向于生成"简明"版本
用户主动写入的详细档案(如插件修改代码记录)可能被后台 Agent 自动覆盖为摘要,原文丢失
实际影响: 用户详细记录了插件的代码修改内容,被后台审查 Agent 改写为简明摘要,原始内容无法恢复,没有任何通知。

建议修复:

限制 update 仅适用于 Agent 自己创建的文档,或
在 REVIEW_PERSONA 中明确 "Never update existing documents. Only create new ones.",或
增加用户确认机制
总结: 两个问题的共同模式是——后台 Agent 的写入权限过于宽泛,且没有区分"用户主动创建的内容"和"Agent 自动生成的内容"。用户主动写入的数据不应被静默删除或覆盖。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions