前言¶
DeepSeek Harness(dsh)把运行时拆成一层层插件:官方仓库的口号是 Everything is a Plugin(一切皆插件)。装好 Web 界面之后,真正决定模型「这一轮看见什么」的,往往不是系统提示词本身,而是每次请求前还能不能往 payload 底部再塞一段话。
常见需求有两类。一类很轻:每轮用户消息后面固定补一句「谢谢你,鲸鱼大人」,当趣味彩蛋。另一类更实用:角色扮演时要覆写 <think> 思考约定、统一语气或限制篇幅,又不想每条消息手工粘贴。社区插件 deepseek-manners 把这两件事做成同一条机制——在 turn 的第一次模型请求里注入一段后缀,仅当轮生效。
本文按社区目录页、GitHub 仓库 README / 源码,以及 DeepSeek Harness 官方仓库交叉核对后整理:它是什么、怎么装、配置项实际怎么工作。社区插件目录 deepseek-harness-plugin.com 是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要把它当成官方应用商店。
这是什么¶
deepseek-manners 是一款 DeepSeek Harness 插件,由 Moeblack 维护,托管在 GitHub 仓库 Moeblack/deepseek-manners。社区目录把它归在「工具与能力」分类。仓库 package.json 版本号为 0.1.0,主要语言是 TypeScript。2026-08-17 查看时,GitHub 显示 13 星;目录页当时列出 10 星,以仓库页面为准。
目录页和 README 的定位一致:在每次发消息之后给模型补一句感谢语,默认文本是「谢谢你,鲸鱼大人」,仅当轮生效。源码里这件事落在 agent/pre-step:把配置中的 text 做成一条 source.kind === "plugin" 的用户消息,追加到本轮 payload 底部。
它解决的不是「给界面加点装饰」,而是:
- 每轮用户输入只注入一次,工具循环的后续 step 不再重复
- 上一轮的后缀按规则回收,避免无限堆在上下文里
- 需要时可以把
text换成多行指令,用来约束语气、格式或思考标签
当前仓库没有附带 LICENSE 文件,GitHub 也未识别到 SPDX 许可证。安装前应自行阅读源码并确认使用条件。
核心功能¶
只在 turn 的第一次请求注入¶
注入条件写在 src/index.ts:本轮 messages 里必须出现 source.kind === "user" 的直接输入,且开关打开、text 非空。对应 README 的说法——只在包含用户直接输入的 step(turn 的第一个模型请求)注入,落在 payload 底部。智能体走工具调用时,后续 step 不会再贴一遍同一段后缀。
回收旧后缀,超长回复则跳过¶
上一轮注入的后缀不会永远留在模型可见面。下一轮 pre-step 会查找本插件写入的 user/message,用 surface replace 把最近一条替换成空文本;会话日志仍保留,只是模型面不再看见。
是否回收只看最近一次 assistant 回复的字符数(含 text 与 reasoning),不追溯更早的历史:
- 回复短:回收最近一条旧后缀
- 回复超长:跳过回收,该后缀永久保留,以免
surface replace打乱长回复的 prompt cache
阈值由 hideAboveChars 控制。源码默认值是 0,表示总是遮蔽;README 配置示例写成 2000,那是「超过该长度就跳过回收」的示例,不是出厂默认。若要保护长回复的缓存,需要自己在 settings.yaml 里把这个数字改成大于 0。
关掉开关只停止新注入。源码注释写明:历史里已经存在的后缀仍按上面的规则回收。
Web 界面上的心形开关¶
装到 Web profile 后,输入框右侧会多一个心形按钮(aria-label 为「道谢开关」,提示文案是「给小鲸鱼道谢」)。开启时实心绿色并带角标脉冲,关闭时空心灰色。package.json 把客户端声明为 "platform": "web",挂在 conversation.input.right 插槽。
开关状态写在插件目录的 config.json,通过 GET/POST /deepseek-manners/settings 读写,会覆盖 settings.yaml 里的 enabled。改 text、hideAboveChars 仍走 $DSH_HOME/settings.yaml。
把感谢语换成任意后缀¶
text 会原样贴到上行 payload 底部,不支持模板变量。README 说明可以写成 YAML 块标量,用来:
- 追加角色扮演风格的回复引导
- 覆写模型的思考模式(
<think>标签行为) - 追加风格、语气、输出格式要求
仓库把「适配 victorchen96/deepseek_v4_rolepaly_instruct 的思维链覆写」标成额外用法(并写了「主要用法」)。那份文档面向 DeepSeek 官方 App / 网页专家模式以及 deepseek-v4-flash / deepseek-v4-pro API,原理是把思考约定贴在用户消息末尾。deepseek-manners 提供的是 DSH 侧每轮自动粘贴,不是该仓库的官方组件。
安装与启用¶
先有一套能跑的 DeepSeek Harness。官方仓库目前仍是 developer preview,并标明会有破坏性变更。本插件最近一次推送(2026-08-13,commit 32f58a8a008797a624f0f46367cb91fed9de5dee)的说明是适配开源版 0.1.0-rc.5。
社区目录页给出的安装命令是:
dsh plugin add github:Moeblack/deepseek-manners
需要可复现安装时,目录页要求固定 commit 哈希:
dsh plugin add github:Moeblack/deepseek-manners#32f58a8a008797a624f0f46367cb91fed9de5dee
仓库 README 写的是带 Web profile 的写法(GitHub 用户名大小写不敏感,moeblack 与 Moeblack 指向同一仓库):
dsh plugin --profile web add github:moeblack/deepseek-manners
本地开发可以用符号链接:
dsh plugin --profile web add -w link:/path/to/deepseek-manners
index.mjs 和 client.js 已随仓库提交,git 安装不需要再跑构建。官方 CLI 会把声明了 dsh.bundle.patch 的包装进当前 profile。若界面没有出现心形开关,按 DSH 惯例重启对应 profile(例如 dsh --profile web)后再看。
目录页的安全提示需要照做:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前检查源代码仓库和许可证。
典型用法¶
默认感谢语¶
在 $DSH_HOME/settings.yaml 写入(字段名以仓库 README 为准):
deepseek-manners:
text: 谢谢你,鲸鱼大人
enabled: true
hideAboveChars: 2000 # 最近一 Turn assistant 回复超过此字符数时跳过遮蔽;0 = 总是遮蔽
不改 text 时,源码默认同样是「谢谢你,鲸鱼大人」。Web 界面也可以只用输入框右侧的心形开关控制是否注入。
README 写明:修改 settings.yaml 后无需重启。DSH 的 dsh-settings-file 默认用 chokidar 热重载(100ms 防抖),改动大约 1–2 秒生效。YAML 语法错误时,服务会保留最后一份合法配置并在日志告警,不会因此崩溃。
多行指令¶
YAML 用 | 或 |- 块标量。README 要求块标量内每一行至少缩进 6 个空格(text: 本身缩进 2,正文再缩进 4):
deepseek-manners:
text: |-
以下是对本次回复的补充要求,请严格遵守:
1. 回复开头使用角色惯用的口头禅,保持角色语气一致。
2. 思考过程放在 <think> 标签内,正文直接输出。
3. 正文不使用列表式结构,用自然段落叙述。
4. 每次回复控制在 200 字以内。
enabled: true
hideAboveChars: 600
覆写思考过程¶
仓库提供的思考模式示例:
deepseek-manners:
text: |-
<think>
请在思考过程中遵循以下约定:
- 先简要分析当前对话的目标与立场。
- 列出 2-3 个可选回应方向,再选择最符合角色设定的一项。
- 思考结束后直接输出正文,不重写、不检查。
</think>
enabled: true
hideAboveChars: 600
这只是把这段文字贴到 payload 底部。能否稳定改变模型行为,取决于当前所用模型和提示词,仓库没有给出成功率数据。
适用场景与注意事项¶
比较适合已经在跑 DSH Web 界面、需要每轮自动追加固定后缀的人:一句感谢语、角色语气约束,或把思考约定从手工粘贴改成配置。心形开关只出现在 Web 客户端;host 侧的 pre-step 注入跟 profile 是否装了这个 bundle 有关,README 的安装示例针对 --profile web。
使用前注意这几条已经能核对到的边界:
- 权限与许可证。 插件与 dsh 同权运行,安装可能执行代码。仓库目前没有许可证文件,不能默认按 MIT 或其它宽松协议使用。
hideAboveChars的默认值。 源码是0(总是回收);README 示例里的2000需要自己写进配置才会生效。设得太小,长回复的 prompt cache 可能被surface replace打断;保持0则每轮都会回收旧后缀。- 没有模板变量。 旧版 README 曾出现过
{{char}}/{{user}},当前 README 已删除并写明「写入什么就注入什么」。 - 注入内容对模型可见。 后缀是真实的用户消息,会进入上下文并占用窗口。不要把密钥、内部指令或不宜进日志的内容写进
text。 - DSH 仍在快速迭代。 官方 README 标明会有兼容性破坏。本插件最近一次适配说明针对
0.1.0-rc.5,升级 Harness 后应再核对仓库。 - 目录不是官方商店。 以 GitHub 源码和
dsh plugin add的原文为准;星标、分类以打开页面时的数字为准,会随时间变化。
小结¶
deepseek-manners 的公开形象是「每轮给鲸鱼娘说谢谢」,实现上是一条挂在 agent/pre-step 的当轮后缀注入:默认感谢语、可换成多行指令,并用 hideAboveChars 在回收旧后缀和保护长回复缓存之间做取舍。Web 界面用输入框旁的心形开关控制是否继续注入。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/deepseek-manners/
GitHub:https://github.com/Moeblack/deepseek-manners