dsh-johnny:万事通强尼与「付费问答」小剧场

前言

在 DeepSeek Harness(DSH)里做对话插件,常见做法是改提示词或加工具,让模型直接「扮演」某种角色。实测里,若让模型自己演「装傻要钱」的线人,容易被判为操纵性注入而拒演;即便能演,每轮问答也会消耗 token。dsh-johnny 走另一条路:强尼模式在客户端捕获层拦下发送,用固定搪塞台词写进会话,装傻阶段零模型调用;只有用户「敲钱」并喂给 dsh-pet 大肥鱼之后,才把被扣下的问题交给 agent 做一轮真回答。下面介绍这个插件的定位、用法与配置。

这是什么

dsh-johnny 是社区维护的 DSH 插件(仓库 wobenshiwomu/dsh-johnny,目录页 SkillHub),分类为趣味换装。它给桌宠场景配一段「Police Squad!」式擦鞋线人 Johnny 小剧场:对话里 /johnny 出摊后,问什么强尼都只打太极;想要真话,得先敲钱,再把钱拖给 dsh-pet 大肥鱼,鱼「收钱」后真答案才进入对话。

维护者:wobenshiwomu。当前 package 版本 0.1.0,许可证 MIT。引擎要求:dsh >= 0.2.0-rc.1,node ^22.19.0 或 >= 24.0.0。

核心功能

强尼模式与装傻环节

  1. 对话输入 /johnny 进入强尼模式(再输入一次可收摊)。
  2. 屏幕角落会出现「强尼模式」徽标和红色 ×,点 × 可立即退出。
  3. 模式开启后,你发的每句话会被扣下:问题记入会话,强尼只回招牌搪塞(默认语义为「有可能知道,有可能不知道。」);若已安装 dsh-pet,鱼可同步动画与气泡帮腔。
  4. 上述装傻环节不惊动模型、零 token。

三通道「敲钱」

任选其一生成可拖给鱼的钱:

  • 桌面:鼠标 左左·右右(连续两次左键再两次右键)。
  • 手机:摇一摇。
  • 输入框发送「发钱」(及配置里可扩展的同义词);该条被拦下,不发给模型、不花 token。

喂鱼解锁真答案

把钱拖到 dsh-pet 大肥鱼上:鱼播放动画、气泡文案(默认「TOKEN 的味道……不错……」),随后被扣下的问题经 resolveAgent → agent.followup 以「鱼已收钱」上下文交给模型,仅这一轮调用模型得到真答案。

与 dsh-pet 的关系

README 建议搭配 dsh-pet(大肥鱼桌宠);喂鱼环节依赖其 /dsh-pet-7340 一类接口。没有鱼时:出摊、装傻、敲钱、红叉退出仍可用;喂鱼步骤会提示鱼无反应。

安装与启用

在 web profile 下添加插件(命令来自仓库 README):

dsh plugin --profile web add 'https://codeload.github.com/wobenshiwomu/dsh-johnny/tar.gz/v0.1.0'

图形界面:侧栏「插件」→ 添加插件 → 填入同一条 URL。安装后重启 DSH 生效。升级时将 URL 末段 v0.1.0 换为仓库新版本标签后重装即可。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认可接受后再启用。

典型用法

按 README 的「三步玩起来」操作即可复现:

  1. 出摊:输入 /johnny。
  2. 敲钱:左左·右右、摇一摇,或输入「发钱」。
  3. 喂鱼:把钱拖到肥鱼身上,等待真答案出现在对话里。

收摊:再输入 /johnny,或点角落红色 ×。

可选配置

在 profile 用户层 cordis.patch.yml 中覆盖 dsh-johnny 的 config(字段均以 README 为准):

- id: dsh-johnny
  config:
    bubbleText: 'TOKEN 的味道……不错……'   # 喂钱后鱼气泡文案
    bubbleMeme: ''                          # 可选气泡配图(dsh-pet 表情包名)
    eatAnim: '余额-钱袋满溢'                 # 喂钱时鱼动画
    askBubbleText: '有可能知道,有可能不知道。'  # 扣下时鱼气泡(留空=不冒泡)
    askAnim: '工作状态-思考冒泡'              # 扣下时鱼动画(留空=不动)
    # petId: main
    # petBase: /dsh-pet-7340
    # moneyWords: [发钱, 给钱, 付钱, 交钱, 小费]
    # storageDir: ''                        # 默认 $DSH_HOME/storages/dsh-johnny

原理简述

强尼模式下,客户端在捕获层拦截发送;「点单」经 HTTP 进入宿主后,用 session.append(…, { surfaceOp: 'append' }) 写入问题与搪塞台词。喂钱后触发 agent 跟读,把被扣问题包进「鱼已收钱」消息。鱼的动画与气泡由客户端同源调用 dsh-pet 接口完成。

仓库提供 node test/sim.mjs(README 称 66 项断言)覆盖模式开关、点单扣话、解锁载荷、HTTP 路由与配置透传;真机 E2E 验证扣下时 assistant 计数不变、喂钱后模型可答出约定暗号。

适用场景与注意

适合谁:已在用 DSH Web 对话、想加一层零 token 互动梗,并愿意(或已经)安装 dsh-pet 的用户。

已知限制(来自 README):

  • Android/Termux 上使用 dsh-pet 可能因 @electron-internal/extract-zip 无安卓预编译而在插件加载期报错;需按上游说明用 pnpm patch 等方式绕过,或等待 dsh-pet 改为动态 import。
  • dsh-pet 的 Electron 桌面透明窗在安卓不可用;Web 模式不受影响。

DSH 生态理念是「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-johnny 用拦截式固定台词实现强尼装傻,把模型调用压缩到「喂鱼」之后一轮,既省 token,也避开模型拒演线人的坑。完整说明与更新见 GitHub 仓库 与 SkillHub 目录页。

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

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

小夜