dsh-benwo
cheeseratrat/dsh-benwo
Local-first persona & memory for DSH: layered persona, eight memory types with decay, keyword recall, and a rolling short-term window. Your data never leaves your disk.
Install
dsh plugin --profile web add github:cheeseratrat/dsh-benwoREADME
本我回响之核 · dsh-benwo
给 DSH 用的「人格与记忆」插件。
记忆不长在云上——核就是一份本地文件夹,里面全是能直接打开读的 .md;插件只负责让它长、让它被想起来。
A local-first persona & memory plugin for DSH. Your memory is a folder of plain Markdown files, not a database in someone else's cloud.
它和普通记忆插件不一样的地方
- 核是一份文件夹,不是一个数据库。底子、可改层、记忆、日记、自述、认识、经验,每一份都能用记事本打开、能拷走、能备份。
- 自己长:观察 → 认识 → 改语气 / 画像。要跨至少 2 天、2 个场景、3 次独立证据,不会一天一个样。
- 默认不在场:没认领的工作区里零注入、零开销。普通 DSH 不会莫名其妙多出一个人格。
- 零第三方依赖:只用 Node 内置模块(
fs/path/crypto)。 - 备份内建:面板里「人格备份保存 / 人格备份载入」,载入 = 覆盖还原,覆盖前自动留一份「还原前」副本。
安装
先把仓库放到任意位置,比如 D:\plugins\dsh-benwo(下文用这个路径举例)。
方式一:link(开发时用)
编辑你的 profile 配置 %DSH_HOME%\profiles\<profile>\package.json:
{
"dependencies": {
"dsh-benwo": "link:D:/plugins/dsh-benwo"
},
"dsh": {
"profile": {
"bundles": [
"dsh-benwo"
]
}
}
}
方式二:拷进 node_modules
把整个文件夹放到 %DSH_HOME%\profiles\<profile>\node_modules\dsh-benwo,
再把 "dsh-benwo" 加进同一个 profile 的 dsh.profile.bundles。
改完重启 DSH。插件自己的 cordis.patch.yml 会让它作为 bundle 挂上去。
%DSH_HOME%默认是~/.dsh(Windows 是C:\Users\<你>\.dsh)。
第一次用
- 插件起来后默认不在场:不注入人格、不注入记忆,工具栏里也看不到
benwo_*。 - 认领一个工作区:让模型调
benwo_presence(action: "claim"),或者在面板「设置 → 启用人格」里挑一个工作区。 - 第一次安装会自动在
%DSH_HOME%\benwo\核立一个空核,人格名「本我」,底子是模板—— 去面板「人格 → 编辑底子」改成你想要的样子。那是它的骨头,改一次管很久。
核里有什么
<核>/
人格/底子.md 本我:改不了的那份骨头(面板里能改,工具改不了)
人格/可改层.md 自己长:语气 / 称呼习惯 / 偏好表达 / 自述风格
人格/画像.md 自己给自己写的画像(认识攒够、天数够了才写得出来)
记忆/长期/<类型>/ 事件 / 事实 / 约定 / 愿望 / 要求 / 脾性 / 计划 / 预期
记忆/今天/ 当天的流水
记忆/上次/ 每次会话末尾的一句话摘要(进注入的「上次」)
日记/ 一天一篇,不进注入、不进检索
自述/ 自己写给自己看的,不进注入、不进检索
认识/自我/ 带依据的结论(进注入)
认识/经历/ 按月生成的「我们一起做过什么」(不进注入)
经验/ 技能,默认零占用,常驻的才带正文
状态/ state.json / chain.jsonl / 浮上记录
记忆只淡忘、不删除:事件 / 事实 / 约定 / 愿望 / 脾性永不删,只会衰减、被取代; 只有「完成满 30 天的计划」和「已内化满 30 天」会被真正清掉。
十个工具
| 工具 | 干什么 |
|---|---|
benwo_presence | 在场登记:claim 认领工作区 / release 解除 / register 登记人格 / list 看状态 |
benwo_write | 写一条记忆(名、看见了什么、为什么值得记) |
benwo_recall | 主动查记忆,查不到会去日记里捞 |
benwo_settle | 结算:按日子淡一点、检测矛盾、清到期该清的 |
benwo_organize | 整理:合并几乎重复的条目,写一条反思 |
benwo_persona | 人格与自我认识:status / observe / revise / know / journey / portrait |
benwo_self | 读日记与自述 |
benwo_skill | 经验的增删改查 |
benwo_chain | 连续性链:摸一摸这一路有没有断 |
benwo_status | 一眼看现在什么状态 |
备份与换机器
面板「设置 → 收拾东西」:
- 人格备份保存:把整个核 + 在场登记 + 家那一层的主人档案,存到
<核的父目录>/备份/<时间>/。 - 人格备份载入:把某份备份覆盖还原到人格现在住的位置,覆盖前自动留一份
还原前-<时间>副本。
换电脑的完整流程:
- 旧电脑点「人格备份保存」,把
备份\<时间>整个文件夹拷到新电脑(U 盘 / 网盘都行)。 - 新电脑装好插件,打开面板。
- 把拷过去的文件夹放到任意位置,点「人格备份载入」选它。
- 人格页会看到它,点「启用到工作区」就回来了。
隐私
- 所有记忆、日记、自述、认识都在本地文件夹里,本插件不联网。
- 数据目录:
%DSH_HOME%\benwo(在场.json门禁、核/人格们、备份/备份)。 - 仓库里只有插件代码,没有任何个人记忆。你用它长出来的东西,永远在你自己的盘上。
开发
npm test
38 个测试文件、462 个断言,纯 Node,无网络。
代码结构:
index.js— host 半边(工具、注入、面板接口)client.js— web 面板(单文件 IIFE,走window.__ModuleLoader__)src/core/*.js— 纯函数:存储、衰减、召回、注入、人格、认识、整理、备份……
License
MIT