Skip to content

Releases: CC19990113/dsh-plugin-soul

v0.4.3 — 清掉候选池的迁移残留

Choose a tag to compare

@CC19990113 CC19990113 released this 31 Oct 19:00

0.4.1 换了聚合键(整句归一化 → k: / n: 前缀)之后,旧键条目没被清场:同一段文本同时以 staged 和 gone 出现两份,候选数虚高一倍(实测 14 条里 6 条是重复)。

修法:refresh 时如果旧条目的证据已被新条目覆盖(且不是 promoted),直接丢掉 —— 那是迁移残留,不是需要留档的历史。

验证:临时目录灌一份旧格式候选池再 refresh → 候选 1 条(修前 2 条)。测试 65 项。

需要重启 DSH 生效。

v0.4.2 — MEMORY.md 的升格也进 git 了

Choose a tag to compare

@CC19990113 CC19990113 released this 30 Oct 03:43

修的 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

Choose a tag to compare

@CC19990113 CC19990113 released this 30 Oct 01:10

问题

连着三晚候选都卡在「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 — 人类评分决定人格写不写

Choose a tag to compare

@CC19990113 CC19990113 released this 27 Oct 07:09

每条回复下面多三档评分

挂在官方操作栏同一槽位(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 — 人格记忆层(只记性格与对话)

Choose a tag to compare

@CC19990113 CC19990113 released this 26 Oct 03:13

新增:记忆层

人格不再只有「人格」,还有关于自己和你的记忆。

~/.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

Choose a tag to compare

@CC19990113 CC19990113 released this 26 Oct 02:57

首个公开版本。

四层能力

  • 注入:每轮读 ~/.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 未测。