Repository navigation
Releases: CC19990113/dsh-plugin-soul
Release list
v0.4.3 — 清掉候选池的迁移残留
0.4.1 换了聚合键(整句归一化 → k: / n: 前缀)之后,旧键条目没被清场:同一段文本同时以 staged 和 gone 出现两份,候选数虚高一倍(实测 14 条里 6 条是重复)。
修法:refresh 时如果旧条目的证据已被新条目覆盖(且不是 promoted),直接丢掉 —— 那是迁移残留,不是需要留档的历史。
验证:临时目录灌一份旧格式候选池再 refresh → 候选 1 条(修前 2 条)。测试 65 项。
需要重启 DSH 生效。
v0.4.2 — MEMORY.md 的升格也进 git 了
修的 bug
MEMORY.md 的升格走 addCurated 直接写文件,没有 git 提交 → 长期记忆的改动没有版本历史,「可回滚」对 MEMORY.md 不成立(只有某次 soul_update 的 git add -A 顺带把它提交过)。
改法
promoteMemories 成功后有变更就补一次提交:
soul: promote N 条日记忆 → MEMORY.md
只 git add MEMORY.md,不 add -A —— 不把 .candidates.json / .ratings.json 这些派生态搅进提交。git 不可用时退回 no-git,不阻塞升格。
验证
升格 1 条 | commit: 87e1b0e
MEMORY.md git 历史:
87e1b0e soul: promote 1 条日记忆 → MEMORY.md
edf296f soul: 初始化自我文件(插件种子)
- 新增测试:升格后
git log -- MEMORY.md能查到、FILES['MEMORY.md'].writable=true(soul_rollback可用) - 测试 64 项:存储 17 + 反思/升级 16 + 记忆 18 + 评分 13
需要重启 DSH 才生效(host 侧)。
v0.4.1 — 修「候选永远凑不够 3 次」的聚合 bug
问题
连着三晚候选都卡在「1 次/1 天」。原因不是素材不足,是聚合键用整句归一化:同一件事换个措辞就变成一条新候选,永远够不上「≥3 次且跨 ≥2 天」。升格通道实际上等于关着。
修法
soul_journal新增key参数(稳定主题 key,如identity:name、memory:boundary、user:preference),写入格式变成[tag@key]- 候选聚合理由 key 决定;没给 key 的旧观察仍按整句归一化 —— 向后兼容,历史 journal 不用改
- key 形状校验:
^[a-z0-9:._-]{1,64}$,非法直接拒 soul_candidates输出会显示(key: xxx),一眼看出这条为什么能聚合
验证
- 同 key 三种措辞跨三天 → 聚成 1 条 3 次/3 天 → 够格 ✅
- 无 key 的不同措辞 → 仍各自独立(旧行为)
- 测试 63 项:存储 17 + 反思/升级 16 + 记忆 17 + 评分 13
顺带
夜间反思任务(schedule-a64d0c18)改成四步:看候选 → 看评分闸门 → 记观察(必须带 key)→ dream 并汇报闸门状态。
需要重启 DSH 才生效(host 侧改动)。
v0.4.0 — 人类评分决定人格写不写
每条回复下面多三档评分
挂在官方操作栏同一槽位(conversation.chat.assistant-actions,order 20,官方 👍👎 旁边):
👎 / 😑 / 👍 —— 点一下记分,再点一次取消。
评分怎么变成闸门
weight = Σ(score × 0.5^(ageDays/7)) / Σ(decay) → [0,1]
score ∈ {-1, 0, +1}|最近 20 条|样本 <3 不设闸门
| 权重 | 效果 |
|---|---|
| 无样本 / 样本<3 | 不设闸门(冷启动不拦) |
| < 0.35 | 拒绝写人格(只许写 journal / 日笔记) |
| 0.35 ~ 0.6 | 只许小修(单次 ≤300 字符) |
| ≥ 0.6 | 正常写入(≤800 字符) |
| ≥ 0.75 | 日笔记升格门槛 3 次 → 2 次(好评加速毕业) |
每次写入把 rating= 记进 CHANGELOG,事后能查到「这条人格是在什么评价下写进去的」。
其它
- 新工具
soul_ratings(15 个工具) - 新端点:
POST /rating、GET /ratings;/state带 ratings - 设置页「人格」tab 记忆区显示:样本数 / 权重 / 写入闸门
- 测试 60 项:存储 17 + 反思/升级 13 + 记忆 17 + 评分 13
- 端到端实测:4 差评 → weight 0 → 写人格被 400 拒绝;改打 4 好评 → weight 0.5 → 放行(单次 ≤300)
升级注意
host 侧新增路由与工具,需要重启 DSH;客户端评分按钮刷新页面即可出现,但没重启前点击会 404。
v0.3.0 — 人格记忆层(只记性格与对话)
新增:记忆层
人格不再只有「人格」,还有关于自己和你的记忆。
~/.dsh/soul/MEMORY.md 长期人格记忆(注入,3000 字符预算)
~/.dsh/soul/memory/YYYY-MM-DD.md 日笔记(不注入,可检索)
只管性格与对话:关于我(自我认识)· 关于你(对你的认识)· 对话里的事 · 我学到的教训 · 偏好怎么变。
不记项目:代码、技术决策、环境配置、踩坑归项目记忆 —— 塞进来会把每轮注入预算吃光,也会让人格记忆变成技术台账。
升格规则:被反复用到才毕业
日笔记不注入;只有被 soul_recall 命中 ≥3 次 的条目才够格,soul_memory({action:"promote"}) 时按维度写进 MEMORY.md 对应小节,并带 来源 memory/...#L3;命中 4 次。
3 个新工具
soul_remember— 记一条人格记忆(kind: self / user / talk / lesson / pref)soul_recall— 检索人格记忆,命中即 +1 hit(升格的唯一依据)soul_memory— 状态 / 升格
其它
- 设置页「人格」tab 增加记忆区:长期字符/预算、日记忆条数、待升格清单、最近记的、一键升格
- 注入前剥离
<!-- -->注释:本机注入段 2406 → 1605 字符(≈401 tok) - 检索评分 clamp(覆盖 0.6 + 密度 0.2 + 新近 0.2,再乘 hitBoost 1~1.5)
- 测试 47 项:存储 17 + 反思/升级 13 + 记忆 17
实测(本机完整闭环)
记 2 条 → recall 4 次 → 2 条够格 → promote → MEMORY.md 574/3000,分别落进 ## 关于你 与 ## 我学到的,带来源行号与命中次数。
v0.2.0 — 四层自主 + 设置页「人格」tab
首个公开版本。
四层能力
- 注入:每轮读
~/.dsh/soul/*.md进 system prompt,改文件即生效(无需重启) - 自改:RULES 只读 / 单次 ≤800 字符 / 每日 ≤3 次 / why 必填,每次落 git + CHANGELOG,可回滚
- 反思:journal → 候选池(≥3 次且跨 ≥2 天才够格)→ 升格进 SOUL,写 DREAMS.md
- 升级:提案(含 before 快照)→ 必须 confirm=APPLY → 白名单 + node --check,语法不过整体还原
其它
- 11 个工具:soul_status / read / history / update / rollback / journal / candidates / dream / propose_upgrade / apply_upgrade / upgrade_rollback
- 设置页 设置 › 人格 tab:看/编辑四份配置、候选池、提交与 diff
- 30 项测试(存储 17 + 反思/升级 13)
安装
设置 → 插件 → 添加插件 → 填 CC19990113/dsh-plugin-soul → 重启 DSH。
已知边界
真实浏览器渲染未逐像素验证;通过仓库地址安装的形态未实测(本机用 symlink 开发安装);Windows 未测。