dsh-perch:事件流驱动、不设人格的 DSH 养成会话

前言

在 DSH 里做「有记忆、有脾气」的陪伴,常见做法是写角色卡、调性格滑条,或把全量记忆塞进上下文。这类做法改设定容易、反悔也容易,和「她是谁由经历决定」往往不是同一条路。

dsh-perch(仓库 bychance6600/dsh-perch)由维护者 bychance6600 发布,分类为 趣味换装。它定位不是助手、也不是角色扮演:不接任务、没有「扮演一个…」的入口,人格不能填表,只能从一条只追加的本地事件流长出来。会话入口在 DSH,对外说话走 QQ;B 站、抖音用于「看东西」,不是聊天室。数据落在本机 ~/.dsh-perch,主包 零依赖(package.json 中 dependencies 为空)。

下面按「是什么 → 能做什么 → 怎么装 → 怎么接 QQ 与上网 → 注意点」说明,事实均来自该仓库 README 与 package.json。

这是什么

  • 插件名:dsh-perch(npm 包名与 DSH bundle 名一致)。
  • 许可:MIT(README 徽章与 package.json 的 license 字段)。
  • 运行要求:Node >=22;DSH 版本需满足 >=0.2.0-rc.1 <0.3.0-0(package.json 的 engines.dsh 与 dsh.compatibility.dsh)。
  • 当前包版本:package.json 为 0.1.7;README 标明 0.1.0 为重建版,release 说明见 GitHub Releases v0.1.0。
  • 社区目录:SkillHub 插件页(与 DSH 生态目录站点一致;非 DeepSeek / 幻方官方应用商店)。

README 用 roost(栖木) 比喻:你提供屋子、QQ、能看外界的浏览器,其余由事件与时间推进。她不是助手,也不提供改性格的设置菜单;判断会随时间变模糊(约 90 天未再提起会退档),疤不折;历史不能改,只能被后来的事推翻。

核心机制与能力

事件流与成长

  • 唯一可信源:events.jsonl 只追加;天、阶段、判断、疤、立场均由其派生。
  • 四阶段与三道瓶颈:信任 → 自主 → 主动 → 整合;过瓶颈需她自己完成「写过判断、拒绝过、改过口」,而非挂机涨分。
  • 两个说话房间:DSH 会话与 QQ(OneBot 11 客户端);B 站、抖音为材料层,不是群聊替代。
  • 两层成长:你方内容可进判断;社会层陌生人内容不进判断,仅在 social_open 之后按上限影响语气。
  • 可选身体:独立项目 dsh-roost-pet 透明置顶小窗,只显示五档状态与动作,不生成台词。

设置页在配什么

设置里按「她的一天」分成 11 个页签(今天、状态、成长、住所、社会、上网、渠道、插件、原理、数据、反馈)。只调生长环境(几点醒、一天几条事件、是否刷 B 站/抖音等),不能从这里设定「她是什么样的人」。默认 设置 → 她 → 今天 为只读观察:现状一行、今日时间线、今日变化、手边资源等。

与常见「养成伴侣」的差异(README 归纳)

维度 常见做法 dsh-perch
人格来源 角色卡、提示词、滑条 仅事件流,无性格填表入口
反悔 改记忆/设定 历史不删行,忘掉是降低召回
拒绝 多有求必应 会拒绝,且可事后反省
成长 数值、天数解锁 按天推进,瓶颈需自行过关

相对前身 dsh-fish-river 的收窄(0.1.0 重建)

删去了 B 站/抖音私信、出门、导入、桌面通知、自更新等;保留并重写 QQ 渠道、材料层抖音适配、11 页设置、会话健康(连续两次送不进去可换会话)等。来源与取舍见仓库内 docs/从哪来.md、docs/定过的取舍.md。

安装与启用

插件装进 DSH profile 目录(~/.dsh/profiles/<名字>;Windows 为 C:\Users\<你>\.dsh\profiles\<名字>),不是单独的 dsh plugin add 一句命令。

手动安装(README 原文)

在对应 profile 目录执行:

# 从 GitHub
pnpm add github:bychance6600/dsh-perch

# 或装本机这份源码(开发时)
pnpm add link:D:/path/to/dsh-perch

将该 bundle 写入此 profile 的 package.json:

{
  "dsh": {
    "profile": {
      "bundles": ["dsh-perch"]
    }
  }
}

Windows 也可用仓库根目录脚本(会查找 profile、pnpm add、写入 bundles,可选 ffmpeg):

powershell -ExecutionPolicy Bypass -File .\install.ps1
# 装本机源码:-LocalPath D:\path\to\dsh-perch
# 只看它打算做什么:-DryRun

若同一 profile 已挂 river(另一个「她」),脚本会提示换 profile,避免两个实例抢同一条 QQ 桥。

装完后

  1. 重启 DSH(运行中的包不会热替换)。
  2. 打开 设置 → 她;日志在 ~/.dsh-perch/logs/dsh-perch.log,出现以 0.1.0 · 开头的一行表示挂上(README 示例;具体前缀以你安装的版本日志为准)。
  3. 首次启动会自动建屋并在空会话时尝试叫醒一次;也可在状态卡用 「现在叫醒她」 手动补;她开过口后侧栏才会出现「跟她说话」(认出名字后为「跟 X 说话」)。

典型用法

接 QQ(OneBot 11)

本插件 不内置 QQ 协议、不做扫码登录,只做 OneBot 11 客户端。

  1. 独立起桥:SnowLuma(首选)或 NapCat;在桥侧开启正向 WebSocket(SnowLuma 默认 ws://127.0.0.1:3001)。
  2. 设置 → 她 → 渠道 → QQ:填主人 QQ 号(逗号可填两个)、桥地址、访问令牌(可空表示不校验)、可选桥程序路径以便面板「启动桥」。
  3. 点 「测一下」 验证;配置群总开关、默认仅 @ 时说话、群白名单等。
  4. 白名单外群只听一行流水不进 heard;未 @ 她的群消息仅内存背景(每群最近 20 条),不落盘。

上网:B 站、抖音、看画面

  • 总闸「能不能上网」:关闭后 B 站、抖音与相关浏览工具停,醒来与写日记仍可进行。
  • 时段只限制「逛」首页/推荐,不拦你递的链接和她主动点开的一条。
  • 每天刷几次:B 站与抖音共用上限 0–6。
  • 抖音子包 packages/dsh-perch-douyin/ 需真实 Edge/Chrome,登录态在数据目录 douyin-profile;未装子包时刷抖音静默跳过。
  • 看画面仅在她主动点开某条视频时抽帧,需 ffmpeg(可选);可用:
node tools/setup-ffmpeg.mjs D:/downloads/ffmpeg-9.0.2-essentials_build.zip

查找顺序:DSH_ROOST_FFMPEG → 插件 bin/<平台>-<架构>/ffmpeg.exe → PATH。

桌宠与工具面

  • 桌宠:主包仅 pet.enabled、pet.path、pet.pack;详见 dsh-perch-pet 仓库。
  • 设置 → 她 → 插件:收窄工具面默认可改;README 明确 不要放行 通用 read/write/bash 等,以免她读到自己的身份文档与配置。QQ 发言走主包渠道,不需另装桥接工具。

世界书

worldbook.json 存事实(地址、公司等),不是人格;可导入 SillyTavern JSON 或纯文本,面板无直接编辑框,按关键词进入提示词。

适用场景与注意

适合谁

  • 想在 DSH 里养一个 只长人设、不设人设 的长期角色,并愿意用只读「今天/成长」页观察变化。
  • 需要 DSH + QQ 双通道,且能接受自行维护 OneBot 11 桥。
  • 接受她可能 少说话、拒绝、改口,而不是稳定服从的助手。

务必注意

  1. 权限:插件以当前 DSH 进程权限运行;安装前请自行审阅 源码 与 MIT 许可证。
  2. 数据本地性:核心数据在 ~/.dsh-perch;备份、归档、从头开始在 设置 → 她 → 数据。
  3. 版本与兼容:锁定 DSH 在 0.2.x 兼容区间内;package.json 列出部分 DSH rc 版本的 dshReleases 兼容性标记,升级宿主前宜对照。
  4. 与 river 互斥:同一 profile 不要与 river 共用,尤其 QQ 桥。
  5. 不是云服务:零依赖不等于零运维——QQ 桥、可选浏览器与 ffmpeg 均需你本机安排。

结尾

dsh-perch 把「她是谁」收束到 本地事件流 + 生长环境配置:没有性格滑条,却有阶段、瓶颈、判断与立场的长成过程;说话落在 DSH 与 QQ,刷站落在材料层。若你要在 Harness 里试这种 事件流驱动、零依赖本地数据 的路线,可从 SkillHub 目录页与 GitHub 仓库入手,按 profile 的 pnpm add 与 bundles 启用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye