deepseek-plastic-memory
Verifieddeepseek-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