用途:forget 用于从 Origin 中按 ID 永久删除一条记忆,属于破坏性操作,删除后无法恢复。调用方式为 /forget <source_id>,或调用 forget(memory_id="<source_id>")。
主要能力:根据 source_id 定位并删除对应记忆;若删除涉及页面 md 文件(守护进程归档页面、KnowledgeWriter 解除文件链接),会对 ~/.origin/ 做一次防御性快照提交,命令为 git -C ~/.origin add -A 与 git -C ~/.origin -c user.name=Origin -c user.email=daemon@origin.local commit --quiet -m "forget: <source_id>";若 git 缺失、~/.origin/ 不是仓库或无差异则静默跳过,并带一次重试以处理 index.lock 竞争。
使用方式:需要先拿到 source_id;若用户未提供,应先调用 /recall 找到匹配记忆并与用户确认后再删除。适用于用户明确说“忘掉这个”“删掉那个”“这条错了,移除”,或用户直接给出记忆 ID 的场景。
限制与注意:删除不可撤销,调用前必须与用户确认,除非用户在同一轮已给出明确无歧义的指令(例如粘贴 ID 并说“删除这个”)。修正内容不建议用 forget,而应通过 /capture 的 supersedes 参数新建记忆指向旧记忆,以保留历史。批量删除应先调用 /review、与用户确认,再逐条删除。