Skip to main content
C

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-benwo

README

本我回响之核 · 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)。


第一次用

  1. 插件起来后默认不在场:不注入人格、不注入记忆,工具栏里也看不到 benwo_*。
  2. 认领一个工作区:让模型调 benwo_presence(action: "claim"),或者在面板「设置 → 启用人格」里挑一个工作区。
  3. 第一次安装会自动在 %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一眼看现在什么状态

备份与换机器

面板「设置 → 收拾东西」:

  • 人格备份保存:把整个核 + 在场登记 + 家那一层的主人档案,存到 <核的父目录>/备份/<时间>/。
  • 人格备份载入:把某份备份覆盖还原到人格现在住的位置,覆盖前自动留一份 还原前-<时间> 副本。

换电脑的完整流程:

  1. 旧电脑点「人格备份保存」,把 备份\<时间> 整个文件夹拷到新电脑(U 盘 / 网盘都行)。
  2. 新电脑装好插件,打开面板。
  3. 把拷过去的文件夹放到任意位置,点「人格备份载入」选它。
  4. 人格页会看到它,点「启用到工作区」就回来了。

隐私

  • 所有记忆、日记、自述、认识都在本地文件夹里,本插件不联网。
  • 数据目录:%DSH_HOME%\benwo(在场.json 门禁、核/ 人格们、备份/ 备份)。
  • 仓库里只有插件代码,没有任何个人记忆。你用它长出来的东西,永远在你自己的盘上。

开发

npm test

38 个测试文件、462 个断言,纯 Node,无网络。

代码结构:

  • index.js — host 半边(工具、注入、面板接口)
  • client.js — web 面板(单文件 IIFE,走 window.__ModuleLoader__)
  • src/core/*.js — 纯函数:存储、衰减、召回、注入、人格、认识、整理、备份……

License

MIT

Related plugins