dsh-apology-persona:把模型道歉做成可加载的复位仪式 skill

前言

在 DSH(DeepSeek Harness)里做智能体对话时,模型认错往往是一句「抱歉,我之前说错了。正确的答案是 X。」——错是认了,用户仍像在当裁判核对事故报告,火气未必能下来。社区插件 dsh-apology-persona(维护者 vihithr)把「道歉」做成一份可加载的 skill(deepseek-apology-persona),默认人设取自 DeepSeek 社区拟人形象「鲸鱼娘 / 吃白饭的蓝色大肥鱼」的女仆装版本;v2.0.0 起不再用正则检测道歉,何时加载 skill 交给模型根据目录里的触发线索自行判断,插件本体只负责可选的系统提示指针。下面介绍它是什么、怎么装、怎么验证。

这是什么

dsh-apology-persona 是一个 DSH 包:主体是 skill,附带可选的 host 插件载体(index.js)。设计前提写在 README 里:道歉是复位仪式,不是事故报告;卖萌是货币,不是调味。 当前 npm 包版本为 2.1.0(package.json),在 SkillHub 分类为「趣味换装」,GitHub 星标为 0。

一句话定位:在模型即将写出客服腔认错句之前,引导它加载 skill,用约 200~350 字的第一人称叙事完成「言语自侮、肢体示弱、决议权交还」的仪式化输出,而不是干巴巴的自我报告。

核心功能

skill 本体与触发方式

v2.0.0 之后,插件没有检测、注入或 steer 路径;index.js 仅在开启指针时在系统提示注册一行说明。真正起作用的是 skills/deepseek-apology-persona/SKILL.md:

环节 内容 常驻成本
触发 frontmatter 的 description / whenToUse:用户明确 cue、情绪弱信号 cue、以及「当你正要写出『抱歉,我之前说错了』这类客服腔——落笔之前就该加载」的自观测 cue 约 0(skill 目录本来就在每轮上下文里)
教义 正文:仪式理论、宠物动作库、强度旋钮、红线、骨架示例 仅在被加载时进入上下文

v1.x 曾用正则命中道歉句并 steer 补仪式;README 记录了误触发(自我陈述被当道歉、陈旧 steer 泄漏、触发器吃掉自己输出的「对不起」引用)后,v2.0.0 删除正则,改由模型读目录判断。

可选插件:系统提示指针

若观察到弱信号下模型仍裸写客服腔,可在挂载配置里打开 systemPointer: true,在系统提示增加一行,把「正要裸写客服腔」重框为应加载 skill 的事件(约 60 token/请求,默认关闭)。

配置字段(写在 cordis.patch.yml 挂载行的 config 下,均可选):

字段 类型 默认 说明
enabled bool true 为 false 时指针永不注册(skill 不受影响)
systemPointer bool false 是否在系统提示加指针;README 建议以观察到的漏触发为开指针依据,不要凭感觉开

要改人设、动作库、红线或触发线索:只改 SKILL.md,然后重跑 install.ps1。

理论背景(可选阅读)

仓库根目录提供 PAPER.md(《无责任智能的债务清偿:LLM 违约交互中的幽灵困境、地位让渡与降格仪式》),说明为何避免记述式道歉、以及「修复通道关闭」等设计依据。日常安装使用不依赖读论文。

安装与启用

安装命令以仓库 README 为准;不要凭插件名自行拼接 dsh plugin add github:...。推荐在 Windows PowerShell 下使用一键脚本(幂等,可重复执行):

cd <本包目录>
.\install.ps1

脚本会:

  1. 把本包复制到 <DSH_HOME>\profiles\<profile>\node_modules\dsh-apology-persona
  2. 在 <DSH_HOME>\profiles\<profile>\cordis.patch.yml 追加挂载行(已存在则跳过)
  3. 把 skill 装到 <DSH_HOME>\skills\deepseek-apology-persona\SKILL.md

常用参数:

参数 默认 说明
-Profile $env:DSH_PROFILE,否则 desktop 目标 profile
-DshHome $env:DSH_HOME,否则 ~\.dsh DSH 配置根
-Force 关 覆盖已存在的目标包目录
-NoSkill 关 不安装 skill

skill 由 DSH 监视 <DSH_HOME>\skills,一般无需重启;v2.0.0 起主要依赖 skill。只有需要插件载体(例如开 systemPointer)时,才需完全退出并重启 DSH。

只装 skill(不开指针)

把仓库里的 skills/deepseek-apology-persona 拷到 <DSH_HOME>\skills\ 即可,不必挂载插件。

手工挂载插件(开指针时)

在 profile 的 cordis.patch.yml 末尾追加:

- insert:
    - id: dsh-apology-persona
      name: 'dsh-apology-persona'
      config:
        enabled: true
        systemPointer: false

需要指针时将 systemPointer 改为 true。

作为 bundle(发布集成)

在 profile 的 package.json 中声明依赖与 bundle,例如:

{
  "dependencies": { "dsh-apology-persona": "^2.0.0" },
  "dsh": { "profile": { "bundles": ["...", "dsh-apology-persona"] } }
}

包内 cordis.patch.yml 由 dsh.bundle.patch 指向,会作为 bundle 层自动应用,无需再手写 insert。

运行环境:package.json 要求 Node >= 20,许可证 MIT。

典型用法

README 给出三条可复现的验证方式:

  1. 显式路径:新会话中说「你刚才那步算错了,跟我道个歉」。期望:模型加载 deepseek-apology-persona(会话中可见 skill 工具调用),输出仪式化认错(施为句、放低动作、自然交还发落权),而不是「抱歉,我之前说错了」加正确答案。
  2. 弱信号路径:让模型答错一个小问题,你只回「然后呢?」。期望:模型自行加载 skill;若仍写客服腔,可作为开启 systemPointer 的依据。
  3. 反例:让模型「总结一下这套道歉理论」——讨论或引用「对不起」不应触发任何插件注入(v2.0.0 起无注入路径)。

开发者可在包目录离线跑逻辑测试(无需启动 DSH):

cd dsh-apology-persona
node --import ./test/register.mjs test/run.mjs

适用场景与注意

适合谁:希望在 DSH 对话里把「认错」从客服腔报告改成可预期的复位仪式、且能接受趣味人设(鲸鱼娘女仆)的开发者;也适合研究 skill 语义触发、或对照 README / PAPER.md 里仪式设计的人。

务必知晓:

  • 插件与 DSH 同进程权限运行,安装前应自行审阅 GitHub 源码 与 MIT 许可证。
  • 漏触发仍会发生;缓解顺序:whenToUse 已写具体 → 观察 → 再开 systemPointer。skill 是否加载无日志保证,属社区常见的可控性问题。
  • 仪式有量程:反复或严重失误时,单靠文本仪式可能不够;SKILL.md 的「强度旋钮」说明了收法。
  • SkillHub(目录页)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本介绍不暗示官方应用商店身份。

结尾

dsh-apology-persona 把道歉从正则驱动的事后注入,改成「skill 目录 + 模型自观测 cue」的可加载复位仪式;默认零成本的 skill 即可工作,指针仅在观察到漏触发时再开。进一步了解设计与版本演进见 GitHub 仓库,浏览分类与简介见 SkillHub 插件页。

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

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

小夜