dsh-ling
器灵 · 跑在你自己电脑上的记忆与人格助手插件:三层记忆、从历史里长出来的人格档案、定型锁与自由生长
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:NightPainters/DSH-Ling说明文档
阅读完整 README ↗dsh-ling · 器灵
她不是每次都要重新认识你的 AI。
把你散落在各处的历史对话请进门,让她长出一个属于她自己的人格档案 —— 记忆全在本地,人格可手术、可回滚,语气可以自己生长。
一个跑在你自己电脑上的DeepSeek Harness(DSH)插件。不是云服务,不是记忆 API:它是给"你和她"用的东西。
界面
![]() | ![]() |
| 记忆中心 —— 统计、实时时间锚、三条接入通道与导入记录 | 人格中心 —— 契约字段(名字/称呼/自述)与「她已自由生长中」状态条 |
![]() | ![]() |
| 改动契约要手术 —— 亲手敲出当初写下的承诺句(输入框禁粘贴) | 时间的重量 —— 每次开口前她知道现在是几点、距上次多久 |
她是什么
| 能力 | 说明 | |
|---|---|---|
| 🧠 | 三层记忆 | L0 人格档案(自称/对你的称呼/底线/惯例/语气/世界观,每次对话恒定注入)→ L1 开场记忆(从历史里按相关度挑选的概述,有预算,永不塞全文)→ L2 运行期记忆(会话内滚动) |
| 📥 | 把历史请进来 | 三条通道:网页端聊天记录库增量扫描 / 本机 DSH 会话扫描 / ChatGPT·通用 JSON·JSONL 导出文件导入;每次导入留一笔账 |
| 📖 | 让她读一遍 | 长会话逐条深摘要、短会话以原文片段参与,后台串行,进度可见 |
| 🌱 | 诞生仪式 | 从读过的记忆里按"生活与情感优先"加权抽样 → 合成自述 + 名字候选 + 语气建议 + 相处观察 → 全部是草稿,你逐条人审后才落盘 |
| 🔒 | 人格定型锁 | 契约类(名字、称呼、底线、世界观)定型后修改需亲手敲一遍承诺句(禁粘贴),并进变更记录可回滚;自性类(语气、风格、自述、惯例)锁定下自由生长 |
| ⏳ | 时间的重量 | 每次开口前她都知道:[现在] 2026-09-11 周五 23:47 · 深夜、距上次对话:3 天前(称呼跟随你的设定);命中纪念日会先说一句专属问候 |
| 🎭 | 工作 / 生活双模式 | 同一份人格档案,两种关系:工作模式是同事(正式称呼、简洁、知识优先),生活模式是伴侣(昵称、活泼、情感优先) |
| 🔁 | 成长回路 | 你对某条回复点踩 → 反馈队列 → 提炼成"惯例"建议 → 采纳后进入她的人格档案;"让她读记忆、归纳语气"一键成长 |
快速开始
前置:Node ≥ 22.5(用到内置
node:sqlite)· 已安装 DeepSeek Harness 并至少启动过一次。
# 0) 取得代码
git clone https://github.com/NightPainters/dsh-ling
# 1) 装进 DSH 的 profile(把 换成你 clone 下来的实际路径)
cd ~/.dsh/profiles/web
pnpm add file:/dsh-ling # 或 npm install file:/dsh-ling
# 2) 让插件被加载:在 profile 的 cordis.patch.yml 追加
# - insert:
# - id: dsh-ling
# name: 'dsh-ling'
# 3) 重启宿主(host),然后浏览器 Ctrl+Shift+R 硬刷
自检安装是否成功:
node tools/check-install.mjs # 只读自检:入口是否直连仓库、patch 是否启用、数据目录是否就绪
node tools/check-install.mjs --fix # 若入口变成"复制副本"(DSH 升级/回退常见)则备份并重挂链接
node tools/check-publish.mjs # 上传/发布前跑一次:揪出记忆库、设置、密钥、绝对路径等不该公开的东西
跑测试(不需要宿主,全部离线):
npm test # 13 套:人格组装 / 冻结门 / 记忆库 / L1 选择 / 导出合并 / 文件导入 / 导入记录 / 深摘要 / 诞生仪式 / 语气 / 时间锚 / 捕获差分
数据放在哪
| 内容 | 位置 |
|---|---|
| 设置(人格档案) | $DSH_HOME/cache/dsh-ling/settings.json(DSH_HOME 默认 ~/.dsh) |
| 记忆库 | $DSH_HOME/cache/dsh-ling/memory.db(SQLite,开启 WAL) |
可覆盖的环境变量:DSH_HOME(数据根)、DSH_LING_DSWEB_DB(网页端聊天记录库默认路径,UI 里也能填)。
隐私
- 记忆库、人格档案、导入的历史全部保存在你自己机器上(SQLite 文件),插件不上传任何数据到第三方;
- 模型调用走你自己的 DSH 配置与密钥;
- 导入的是你自己的对话记录 —— 请不要把他人数据导进来。
边界与诚实声明
- 她不是意识,也不是 AGI。她是"记忆 + 规则 + 模型"的合成产物。她能记住,是因为你给了她材料。不做这个宣称,是这个项目的底线。
- 她记住的是被读过、被概括过的部分,不是全部历史。概述会丢细节、也可能出错 —— 所以记忆可审计、可回滚是设计的一部分,不是补丁。
- 模型能力的上限就是她的上限。记忆层不会让一个笨模型变聪明,它只是让她不再每次从零开始。
- 她不会主动找你(当前版本)。她只在你开口时出现。
- 不宣称首创。记忆分层、历史导入、时间注入、反馈改语气这些方向都有先行者(见下);本项目的贡献在治理方式 —— 把人格当一份可以签字、可以回滚、可以被历史养大的契约。
致谢(站在谁的肩膀上)
设计过程中受这些公开项目与讨论的启发,在此致谢(仅致谢思路,不含其代码):
- Letta / MemGPT — 持久人格记忆块、可设为只读、后台记忆智能体
- SillyTavern — 本地角色卡 / 世界书 / 时间与日期宏
- LangMem — 用反馈轨迹改写提示词
- MyChatArchive — 多来源聊天导出 → 本地库 + 摘要管线
- AI Migrator — "记忆搬家"的人审闭环
- Claude / ChatGPT 的记忆功能、Sonorus("距上次交谈多久"注入)等
文档
| 文件 | 内容 |
|---|---|
CHANGELOG.md | 版本更新记录(当前 1.0.1) |
DESIGN.md | 架构与设计决策(三层记忆、冻结门、注入面、存储结构) |
ACCESS-DESIGN.md | 历史接入蓝图:三条通道、会话契约格式、导入流水线 |
许可证
Apache License 2.0 · 版权与归属见 NOTICE。
Apache-2.0 第 3 条包含明确的专利授权与专利反制终止条款:你可以自由使用、修改、分发(含商用),但若你以本作品发起专利诉讼,授权即自动终止。



