Skip to content

deepseek-plastic-memory

Verified

deepseek-plastic-memory · v3.4.4 · MIT · Web UI

DeepSeek 可塑性记忆:给 DSH 用的分区式长期记忆,带遗忘曲线

Install

dsh plugin add deepseek-plastic-memory

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

可塑性记忆

给 AI 用的小记忆本。存在你自己硬盘上,分文件夹放,时间久了会自己淡忘。

解决什么问题

跟 AI 聊久了,它记不住你;全塞进对话里,又贵又乱。

所以拆开:主人、约定、续缘、喜好、时间线,一块一个文件夹。用哪块翻哪块,别的不用动。聊出新话题(工作、家人、兴趣、宠物)就再开一块,最多 15 块。

怎么用

node memtree.mjs init          # 建目录
node memtree.mjs idx           # 一行看全貌:M主人:3 P约定:1 ...
node memtree.mjs add M 爱吃辣   # 记一条
node memtree.mjs open M        # 翻开主人这一块

装成 DSH 插件:

dsh plugin add deepseek-plastic-memory

装完设置里多一页「可塑性记忆」,左边分区右边条目;会话顶栏也多个 🧠,点开是同一个面板。

条目一行放不下的时候,点后面的「查看」弹一张卡片看全文,Esc 或点空白处关掉。

不想装插件也行,当普通 node 脚本用,命令一样。

小提示:觉得有必要的时候,或者在开新会话之前,先让 DSH 把当前记忆总结一遍。

记忆星空

设置页里那行「可塑性记忆」右边有个「记忆星空」按钮,会话顶栏也有一个;点一下用本机 Edge 打开一片星系。

  • 主星云 = 主分区,副星辰 = 子分区,每颗小点 = 一条记忆
  • 拖拽绕中心转、滚轮缩放、单击选中、双击星辰把那一团放大
  • 选中主星辰,别的星团会暗下去;左边的列表只跳星辰,记忆在选中星辰后看
  • 右上角两个主题:星野(深空 + 立体星云 + 星芒)、恒星暴(粒子旋涡 + 星爆团 + 尘埃带),一键切换,选过会记住
  • 顶栏「AI 分类」:点一下先确认(会消耗 token),确认后把任务排进队列;下一轮对话里模型会把全部记忆 dump 出来逐条重归类,放错的挪走、需要的新开分区,做完汇报
  • 左上角演示模式:打开后有 1~10 档转速手调,勾上「只留星空」把面板、顶栏、曲线全藏起来,只剩星空本体(Esc 退出)
  • 星野 / 恒星暴:星野(深空 + 立体星云 + 星芒)、恒星暴(粒子旋涡 + 星爆团 + 尘埃带),一键切换,选过会记住
  • 左下角遗忘曲线:新生 → 7 天 → 30 天,只写分区名,点分区名能直接「固定住」
  • 记忆之间常年牵着一层乱线,检索或者点开某条记忆时,连到它的丝线会亮起来,光点顺着跑
  • 主人 / 约定 / 喜好 这几类本来就不会被清,默认算固定记忆

星云、星系、星芒、尘埃全是用着色器 + 粒子现算的(fbm 噪声生成云丝,没有一张外部贴图),整片天空在显卡上实时渲染;页面是本地静态文件,不调用任何模型接口,看星空不烧 token。

换缸提示

换会话、换窗口、上下文被压缩,都只是换了个缸——鱼还是那条鱼。

插件每次组装系统提示词时都会带上 identity.md 里那段话(plastic-memory:identity,原样插入,不走变量替换),所以新会话一开就知道:读到这些记忆的,就是原来那个它。想改措辞直接编辑 identity.md,重启生效。

这段话只内置在插件里,不写进任何分区,所以在记忆列表和星空里都看不到它——新会话照样自带。

删东西

  • 设置页每次选中分区,右上角有「删分区」:主分区会连子分区一起删,里面的记忆先写进 _trash/<日期>.md,不是直接没
  • 记忆库那一行有「删工作区」:整份工作区记忆会被挪到 ws/.deleted/ 下,全局库不能删
  • 记忆星空里选中一颗星辰,面板上也有「删掉这颗星辰」,效果一样

命令

敲这个 干这个
idx 一行索引,哪个分区多少条
open <K> 翻开某个分区
add <K> <文本> 提交一条待审(* 开头算重要)
add-now <K> <文本> 直接写入,跳过审批(自己写用)
pending 看待审队列
approve <id> / reject <id> 采纳 / 驳回
edit <id> <文本> 改待审内容
done <K> <id> 约定办完了,标 ✓
rm <K> <id> 删一条,进回收站
mk <名字> [父分区] 开个新分区
gc 跑一遍遗忘曲线(跑之前先自动备份)
backups 看有哪些备份
restore [名字] 恢复到某次备份,不填就是最近一次

分区代号:M 主人、P 约定、C 续缘、R 喜好、T 时间线、X0..X14 自己开的。

子分区

主分区下面还能再挂一层,最多两级:

node memtree.mjs mk 习惯 M
node memtree.mjs add M>习惯 改代码先备份

写的时候用 M>习惯 这种写法,子分区里不能再开。

记之前先过一眼

模型想记东西不会直接落盘,先扔进待审队列。设置页「可塑性记忆」最上面就是它,每条后面三个按钮:改、驳、采纳。

点采纳会问写进哪个记忆库(全局 / 各工作区都列出来);记忆库只有一个「全局」时不问,直接写进去。写到别的工作区就是把这条搬过去,原库的待审里会消失。

工作区(记忆库)在「+ 工作区」里建。新建时会连默认分区一起建好:M 主人、P 约定、C 续缘、R 喜好、T 时间线,不用再手动开。

你自己写走「自己写一条」,选分区填一行,直接生效。

会忘

人的记忆是刚发生清楚,过一阵模糊,再久只剩个大概。这里照着来:

  • 7 天内:原样留着
  • 7 到 30 天:只留重要的(* 开头),其余进回收站
  • 30 天以上:整条进回收站

主人是谁、跟他约过什么,这两块永远不自动删。

跑之前会先备份。清完不满意就 restore 回去,恢复前又把当前状态存一份,来回切都行。备份只留最近 10 份。

东西放哪

默认 ~/.dsh/plastic-memory/,用 MEMTREE_HOME 可以改。

plastic-memory/
  folders.json     # 有哪些分区
  M/notes.md       # 一块一个文件
  P/notes.md
  _trash/2026-10-24.md

每行 id|时间戳|标记|文本,纯文本,想手改也随便。

两个注意

  • 别记密码、token、密钥、身份证、银行卡号。这就是几个纯文本文件,躺硬盘里谁都能看见。
  • 装好别挪插件目录。DSH 用软链接指过来,一挪链接就断,下次启动直接崩,报的还是「Web authentication failed」这种跟真实原因没关系的话。真挪了就放回原处或重装。

更新日志

v2.1.4

  • 那句提醒挪进记忆面板本体,设置页和顶栏快捷面板都能看到(之前只在设置页)

v2.1.3

  • 设置页和 README 都加了一句提醒:觉得有必要,或者开新会话之前,先让 DSH 总结一下当前记忆

v2.1.2

  • 跑遗忘曲线先备份再清,清完告诉你备份名
  • 不满意就 restore 回去:命令行 backups 看列表、restore [名字] 恢复;设置页跑完会出现「撤销清理」按钮
  • 恢复前会再把当前状态存一份,来回切都行;备份只留最近 10 份
  • 模型侧多了两个工具:plastic_memory_backups / plastic_memory_restore

v2.1.1

  • 模型自己开分区的门槛降了:不用等同类事反复出现,第一次碰到明显不是一类的东西(新兴趣、新项目、新认识的人)就先开一块
  • 例子写清楚了:「喜欢研究某个东西」是兴趣,别顺手塞进「习惯」
  • 分区有上限,所以意思基本对得上的就归到已有分区,只有明显不是一类才新开

v2.1.0

  • 时间线改成一天一条,新的进展并进当天那条
  • 命令行用 tlog,工具里写 T 也会自动并

v2.0.9

  • 文档补坑:装好别挪插件目录(就是上面那一条)

更早的版本见 Releases。

License

MIT