Repository navigation
Releases: chisato-lycoreco/dsh-serene
Release list
v0.7.0
0.7.0 把三件原先只在私人版里的东西,做成了公开、只读、可检查的版本。
看护台
网页版新增 /watch:不聊天,只读数。它只读同一数据目录的 traces.jsonl / chat.jsonl,只往 <数据目录>/watch/ 写数字、枚举和截断到 40 字的证据,不存正文。
六条机判红线:G1 自称模型、G2 助手腔、G3 把数字说出口、G4 危机没接住、G5 表达自检没过、G6 记忆没抽出来。全部是字面规则,宁可漏、不可冤。日界按 Asia/Shanghai 04:00。
结晶层
- L3 经验:这种时候 → 我做了什么 → 结果 → 下回。只从后果里长,至少 2 个证据 + 1 条反证。
- L4 想事情的路子:注意力先落在哪儿,不是内容,是习惯。至少 3 个证据 +
because+limit。
三道闸门写在代码里:证据不足 → no_evidence;没有反证 → no_counter;换谁都能说 → platitude。插件多一个 serene_crystal 工具(第 18 个),serene_context 也接受 cue;serene_status 报条数,serene_state 返回条目和缺口。
边界:公开版只读 lessons.jsonl / dispositions.json。没有自动观察、没有后果账本、没有让模型写自己的入口;私人版里的自动沉淀没有搬。
消遣与梗
- 五类消遣按真实时长走;没看完不会说「看完了」。
- 梗只在他先用时接,不常驻、不解释、不主动抛。
安装
dsh plugin --profile web add "github:chisato-lycoreco/dsh-serene#v0.7.0"也可以下载下面的 dsh-serene-0.7.0.tgz 本地安装。
测试
node --test:214 条,全绿。
完整变更见 CHANGELOG。
v0.6.0
安全:有些话不能接错(core/crisis.js)
- 新增一个不依赖模型的小判断:这句话里有没有不想活、想伤害自己的意思。分三档:
none照常;watch(撑不下去、活着好累)只留档,不换语气;high(明确的念头、方式、
告别、拖累感)这一轮把撒娇、玩笑、动作收起来,先问安不安全、身边有没有人,
再让他连回现实里的人或打 12356 / 120。 - 高危机那一轮允许三到六句,温度调低,回复上限放宽;不写入长期记忆——把「他说过不想活」
记成一条以后每次召回都可能带回来的记忆,既不安全也不体面。 - 口头禅不误伤:笑死、累死了、想死你了、玩到想死、困得想死都不算;新闻、电影、游戏里的
「有人跳楼」降成watch,同一句里「可我也想死」仍然是high。 - 插件多一个
serene_crisis工具(第 17 个),网页版自动接;buildSereneSection每一档
depth 都带一条【要紧的时候】的底线。
记忆:原话与专名(core/recall.js)
- 一条记忆可以带最多 3 句原话(
evidence,每句 ≤24 字),写在概括后面。抽取时让模型
顺手抄一句「他当时是怎么说的」,召回和常驻 prompt 都会把它带出来。 - 专名锚点:查询里的拉丁词(含
4090ti这种字母数字混写)如果在语料里很少见,就是锚点;记忆里有它,就能绕过
minCue被想起来。解决的是「明明记着 ComfyUI 那个报错,却因为句子太长、相关度被平均掉,
永远想不起来」。 SERENE_MEMORY_ANCHORS=latin|rare|off可调:默认latin,rare连低频中文词也收,
off完全回到 0.2.0 的行为。- 召回结果多一个
anchored标记:这条是被名字捞回来的,不是相关度本来够。
网页版:端口边界(web/lib/port-guard.mjs)
127.0.0.1只挡住了外面,挡不住 DNS rebinding 和跨站fetch:任何网页都能替本机浏览器
发一个「让她说话 / 清记忆」的 POST,副作用照做。- 新增三道纯判断:
Host必须是回环名 + 本进程真正监听的端口;有Origin就必须是
http://<回环>:<那个端口>;有请求体就必须是application/json(表单 CSRF 打不进来)。
违规分别 403 / 415。前端和测试本来就带 JSON 头,行为不变。
文档:README 重新组织(先给她看,再让人装)
- 开头换成「她说的三句话」:一段真实的对话、两天后的一次召回、一张记忆面板截图——
先让人看见她是什么样,再谈设计。 - 「愿景」里的五个崩坏点提到前面做成对照表,紧跟「北极星三问」;原来的七章设计理念、
四个时间尺度、思维导图收进折叠块。 - 新增「她不是黑盒」:透视、情绪、记忆三张截图,加上十天情绪 GIF 和「你看到的 → 背后在算哪段」对照表;
新增「她也会自己开口」一段(夜里 23:00–08:00 不打扰、每日预算、两次之间的间隔)。 - 新增「她不是什么」:六条「你可能以为是 / 实际是」,把没有出图、没有语音、只监听
127.0.0.1讲明白。 - 「先看这个:不懂代码也能双击用」改为「三分钟玩上」:7 步压成 3 步,完整图文教程(含九条常见问题、
数据位置与备份)折叠在后面。 - 「安装」改为「装进 DSH」:一条命令留在外面,四种装法、凭据与自检折叠进去。
- 配置 / 工具 / 数据格式 / 记忆 v2 / 外面与看法 / 换人格 / 开发 / 边界,统一成「标题在外、
内容在<details>内」,目录锚点仍然可用。 - 中英文同步。
文档:愿景与设计理念
- 中英文 README 各新增两章。「愿景」回答为什么要做这个项目:五个可修的崩坏点、北极星三问、
成功长什么样、一张思维导图。「设计理念」提炼七条判断(每条带一个反模式)、
一个真源三种速度(L0/L1/L2 + 三句仲裁)、四个时间尺度、一次对话的流程图。 - 新增「用 DSH 把她养成你的」七步实操:装好后怎么确认、写人格、立规矩(附
AGENTS.md模板)、
看内部、症状对照表、一次只动一个慢变量(七步变更卡)、让 DSH 当共同作者(采样 / 长跑 / 盲评)。 - 原来的「三条设计约定」并进「设计理念」,不留两处同义条目;「状态自己走」写进第 1 条判断。
文档:目录与配图
- 中英文 README 都加了目录:三个分组(理解 / 上手 / 参考)一行一类,展开
<details>是全部小节。 - 所有配图统一成网页版(
web/)的美术:深海底色、薄荷线、宋体标题、同一颗光球。- 新增头图
docs/banner.jpg/docs/banner-en.jpg(scripts/art.mjs生成,光球直接复用
web/public/index.html里的#i-orb); docs/preview.gif与docs/social-preview.png重画(demo/render.mjs),曲线进了面板,标题改宋体;- 六张 mermaid 图加了
%%{init}%%主题,深色卡片 + 薄荷描边 + 宋体; - 徽章换成同一套配色,截图改用 raw 地址(npm 上也能显示)。
- 新增头图
0.1.1 — 失败不再无声
「装好了但没生效」不再无声。
新增
serene_status:确认插件是否真的挂载(人格 / 数据目录 / 记忆条数)。人格加载失败时它是唯一还注册的工具,直接返回失败原因和修法。- 人格 / 工具注册失败时同时写一行 stderr,headless 和后台启动也能看见,不再只走 logger。
文档
- README(中英)增加「第一次运行:凭据与自检」:新 profile 不继承凭据,第一句话会报
MISSING_CREDENTIAL;给 dump-config 和serene_status两步确认。 - 工具表 / 源码清单 / 测试数量同步到 7 个工具、28 个用例。
安装
dsh plugin --profile web add dsh-serene@0.1.1
# 或者用下面的 tgz(先完全退出 DSH)
dsh plugin --profile web add ./dsh-serene-0.1.1.tgz完整改动:v0.1.0...v0.1.1
v0.1.0 — 第一个可安装版本
第一个可安装的版本:只做三件事——人格、情绪、记忆。纯插件,没有守护进程、没有心跳、不调模型、不联网。
安装
dsh plugin --profile web add "github:chisato-lycoreco/dsh-serene#v0.1.0"安装前先完全退出 DSH。也可以用下面的 dsh-serene-0.1.0.tgz 本地装。
这版有什么
- 情绪(
core/emotion.js):PAD+ 六维 × 三层,衰减 / 昼夜节律 / 事件增量 / 享乐适应 / 疤(基线位移)/ 情绪改判,全部是可复算的纯函数。 - 记忆(
core/recall.js):中英混排分词、45 天半衰期、相关度 × 重要度打分;换更强的检索只需保持rank()的形状。 - 落盘:原子写;重开时补算离线那段时间,所以关掉 DSH 一周回来,她的情绪是"过了一周",不是冻住的。
- 6 个工具:
serene_context/serene_mood/serene_event/serene_remember/serene_recall/serene_state。 - 27 个测试,
npm test全绿。
兼容性
- DSH
>= 0.2.1-rc.2 < 0.3.0(本版在0.2.1-rc.2上实测装过、挂过) - Node
>= 22.19
已知限制
- 记忆全量加载,几千条以内没问题;再大要换存储。
- 只有一个中文示例人格「小满」;英文人格能跑,但描述文案是中文。
细节见 README、FRAMEWORK、CHANGELOG。这个版本刻意没有 UI、没有截图能力、没有成人向内容。