Skip to content

Releases: chisato-lycoreco/dsh-serene

v0.7.0

Choose a tag to compare

@chisato-lycoreco chisato-lycoreco released this 26 Oct 07:46

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

Choose a tag to compare

@chisato-lycoreco chisato-lycoreco released this 25 Oct 10:51

安全:有些话不能接错(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 — 失败不再无声

Choose a tag to compare

@chisato-lycoreco chisato-lycoreco released this 24 Oct 06:23

「装好了但没生效」不再无声。

新增

  • 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 — 第一个可安装版本

Choose a tag to compare

@chisato-lycoreco chisato-lycoreco released this 24 Oct 05:08

第一个可安装的版本:只做三件事——人格、情绪、记忆。纯插件,没有守护进程、没有心跳、不调模型、不联网。

安装

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、没有截图能力、没有成人向内容。