Y
xiaoman-memory
yunkong-134/xiaoman-memory
纯文本记忆:一条事一节、六个字段,靠元素联想而不是向量检索,每轮最多交两条旧事;不调模型、不联网,写库留给人——库能直接打开、能 grep、能改、能整份拷走。
安装
dsh plugin --profile web add github:yunkong-134/xiaoman-memoryREADME
xiaoman-memory
给 DeepSeek Harness 的记忆插件。纯文本,不建向量,不联网,不调模型。
它做四件事:
- 回想:拿你这句话去事件库里找,最多交两条旧事的标题。判断留在库里,要看细节自己去读那一条。
- 近况:新会话头一句先给最近几天记了什么,提不提由模型定。
- 库体检:条数掉了、库文件不见了、库太久没补,先说一句再继续。
- 长元素:每天从库里挖一次候选词,写进候选文件,不碰元素表。
它不做:不自动写库,不删条目,不给情绪打分,不往对话里塞人设。
装
一行:
dsh plugin --profile web add https://github.com/yunkong-134/xiaoman-memory/releases/download/v0.2.0/xiaoman-memory-0.2.0.tgz
装完重启 DSH。第一次启动会在 ~/.dsh/memory 铺一份空模板。
也可以把包放进 profile 的 node_modules,再把包名写进 profile 的 package.json:
"dsh": { "profile": { "bundles": ["xiaoman-memory"] } }
想换地方:设环境变量 DSH_MEMORY_DIR,指到哪就写哪。
第一次
库里是空的,第一条得你自己写。格式在 记忆库/事件库.md 顶上:标题行带月-日,正文四格〔事〕〔判〕〔源〕〔元〕。
写一条大概是这样:
### 10-28 备份脚本跑到一半就断
〔事〕23:50 那次备份只拷了顶层,剩下的没跑完。
〔判〕2026-10-28 定时任务被宿主收走了,脚本本身没坏。
〔源〕他 23:55 说的;备份.ps1 第 12 行
〔元〕备份、脚本
数据在哪
<记忆目录>/
元素表.md 元素和别名
元素-多义表.md 一个词两个意思时怎么判
元素-别名.json 手加的别名,元素表被重写也不会丢
config.json 可选
记忆库/
事件库.md 一条事一节
元素-候选.json 每天挖出来的候选词
元素-补.json 补过哪些、哪天补的
权重.json 被想起一次的加分
.state/ 体检水位、日志、长元素记号
全部是文本,能 grep,能整份拷走。换机器拷这个文件夹就行。
参数
config.json(可选):
{ "recentDays": 2, "staleHours": 20, "top": 2, "log": true }
recentDays:近况回溯几天staleHours:库多久没动就提醒top:每轮最多交几条旧事log:写不写.state/diag.log
它不做什么,以及为什么
写库是手工的,是这个插件最容易让人失望的地方,也是它没变成黑盒的原因:程序只负责读,不替人决定今天什么值得记。停了就停在原地。
不建向量:一条事就是一节文字,抽错了一条你能指出是哪条,也能直接改。代价是字面对不上就得靠元素、形状和处境去够,够不着就空手。
已知限制
- 宿主接口是照着 dsh 0.2.1 在这台机器上摸出来的,会话事件结构换了可能取不到最后一句;取不到时它只是不回想,不会报错。
- 补元素会往命中的旧条目末尾加一行〔补 日期〕,正文一个字不动;同一条同一天只补一次。
- 长元素只写候选文件,收不收进元素表由人定。
- 只在 Windows 上跑过。
许可
MIT。