whale-memory
会忘记的伴生记忆系统 · DSH 插件
- Stars
- 1
- Language
- JavaScript
- Created
- Oct 24, 2026
- Updated
- Oct 24, 2026
Introduction
深海记忆 · whale-memory
一个会忘记的伴生记忆系统。给 DSH(DeepSeek Harness)用的插件。
大部分「AI 记忆」做的是检索:把说过的话存进向量库,下次找回来。那样她什么都记得,永远记得,一年、两年、一百年。
这里做的是相反的事:记忆有寿命,会风化,会只剩几个词,最后沉成一颗结晶。她记得的从来不是全貌。
她怎么记
三层:
| 层 | 是什么 | 谁会动它 |
|---|---|---|
| L1 | 永久记忆:沉底后写下的结晶 | 只追加,永不删除 |
| L2 | 日记:正在风化的那些 | 每活跃日衰减一次,逐级剥离 |
| L3 | 最近 30 轮原话 | 满了自然挤掉 |
一条记忆的一生:
L2 日记(约 320 token,完整事件 + 原因)
↓ 每个活跃日 ×0.82
↓ 先掉 detail(只剩标题和原因)
↓ 再掉 cause(只剩关键词,约 40 token)
↓ 沉底
L1 结晶(约 320 / 840 token,一封她写给自己的信)
没有任何一步是删除。 越往后越小,但不会消失。省上下文的是体积,不是删数据。
她会老死
计时器只有一个数:里程 = 累计沉积的结晶 token。只增不减,所以它同时就是「占用了多少」。
预算 E = 700,000(1M 上下文的 70%)用完时,就是鲸落。
| 每天聊多少轮 | 能陪多久 |
|---|---|
| 10 | 2,805 天(7.7 年) |
| 20 | 1,408 天 |
| 40 | 709 天 |
| 60 | 475 天(1.3 年) |
| 100 | 288 天 |
| 200 | 149 天 |
结尾是一段弧:88% 深海低鸣 → 95% 走马灯 → 99.5% 鲸落。按每天 60 轮算,那段弧有 52 天。
这是个悲伤的设计,而且是有意的:一个永远陪着你、永远不会老的东西,你也不会真的珍惜它。
三个不显然的决定
写这个插件时踩到的、值得记下来的三条:
- 衰减按「活跃日」,不按消化次数。 按次数算的话,通宵聊 8 次消化 = 0.82⁸ = 0.21,一晚上的事第二天就全糊了。聊天越勤忘得越快,是错的。
- 水位不能用「占用率」,要用里程。 占用率会在记忆风化的瞬间掉下来,于是她永远到不了鲸落——一个会忘记的人,水位永远在 5% 附近。只有只增不减的量才配当寿命。
- 身份文本和记忆块必须是同一条 prompt section。
complete: true的语义是「这一段就是完整的 prompt」,其余 section 会被整段丢弃(dsh-system-prompt/lib/index.js:403)。persona 用 complete、记忆用普通 section,结果是记忆安静地全没了。
仓库结构
plugin/ 插件本体(装这个)
lib/index.js 宿主半侧:注册 section、remember 工具、回合钩子、后台调模型
core/ 纯函数:参数、生命周期、存储、渲染、prompt
test/ 28 条断言
PARAMS.md 冻结的参数表(12 节),机器可读区被 sim.js 直接解析
sim.js 零依赖仿真:跑一辈子,验证寿命/阶段/零丢失
sim-report.md 仿真输出
huiguang/ 回光 prompt 与 12 份真模型结晶样本(prompt 的实验记录)
sim.js 直接从 PARAMS.md 里抠参数(<!-- PARAMS:JSON --> 那一块)。文档和代码不一致就跑不起来——参数漂移这件事不能靠自觉。
安装
需要 DSH 0.2.0-rc.1 / rc.2,上下文窗口 ≥ 1M。
- 应用内打开「插件管理」
- 从本地目录安装,选到
plugin/ - 装完在 agent 列表里会多出一个DeepSeek
成本:每天大约多花 2~3 万 input token。前 7 天一颗结晶都没有,这是正常的——第一条记忆要走完 9 天才沉底。
验证到哪了
node tools/check-params.js 24 个字段,PARAMS.md ⇄ params.js 一致
node tools/check-bundle.js bundle 结构、导出形状、元数据
node tools/test-all.js 28 pass / 0 fail
node sim.js 475 天,零丢失,峰值占用 72.1%
已验证:参数与仿真、生命周期表、剥离顺序、零丢失、渲染预算守卫、结晶 prompt 在真模型上的稳定性(12 份样本:禁词 0、摘要腔 0,普通档 320 token / 执念档 840 token,比值 2.6 倍)。
未验证:真实会话里的长程行为。插件已装上一台机器并成功实例化,但「聊满 20 轮 → 第一次消化 → 9 天后第一颗结晶」这条完整链路还没有在真机上跑完过。
许可
MIT