前言¶
DeepSeek Harness(DSH)的「一切皆插件」理念,让开发者可以通过组合插件来定义 agent 行为。但同一个 profile 里往往存在多种对话场景:有的需要长篇输出,有的则要求短促回应。如果只用一份系统提示去管所有渠道,很难同时满足「短长结合」的长度约束。
dsh-qq-voice 就是为此设计:它把一份单独的渠道口径(Markdown 文件)挂进指定 preset 的系统提示里,让那条线答得短,别的会话保持正常篇幅。它不往消息历史注入,只在每次组装提示时按需读取并挂载。
它是什么¶
- 名称:dsh-qq-voice
- 维护者:hzh5021
- 分类:模型推理
- 功能:将一份 Markdown 文件挂成系统提示里的一个段落,只对安装它的 preset 生效,不影响其他会话
核心功能¶
- 按 preset 挂载:只挂在目标 preset 的插件行里,从而只影响那一条会话;不会全局生效。
- 系统提示段:以
qq-voice:channel为名,作为系统提示的一个独立段落插入,内容不会被当作模板变量解析(interpolate: false)。 - mtime 缓存:每次组装提示时检查文件 mtime,未变动则使用缓存,变动后重新读取,无需重装插件。
- 失败不阻塞:文件不存在、位置取不到等异常情况只打日志,不会让会话建不起来。
安装¶
使用官方安装命令:
dsh plugin add hzh5021/dsh-qq-voice
安装完成后,插件会出现在 ~/.dsh/plugins/dsh-qq-voice/ 目录中。
启用与配置¶
配置项¶
| 键 | 默认值 | 说明 |
|---|---|---|
home |
"" |
口径文件所在目录;空 = 不挂这一段(即关闭) |
file |
"QQ线口径.md" |
相对 home 的文件名 |
after |
"DEPLOYMENT_PERSONA_SUFFIX" |
插在这一节后面——位置比内容要紧 |
fallbackOrder |
10201 |
拿不到 after 那节的顺序值时用的 order |
手动挂载(示例:dsh-qq)¶
以 dsh-qq 为例,在 profile 的 cordis.patch.yml 中需要做三处修改:
1) 插件行,指向口径文件所在目录
- insert:
- id: qq-voice
name: dsh-qq-voice
config:
home: /path/to/your/home # 放着那份渠道口径 md 的目录
file: QQ线口径.md
2) 目标渠道的 preset 里带上它
- id: preset-qq
name: '@deepseek-ai/dsh-agent-preset'
config:
id: qq
order: 3
plugins:
- id: persona
name: '@deepseek-ai/dsh-persona'
# …其余子插件照你别的 preset 抄…
- id: qq-voice
name: dsh-qq-voice
3) 让那条线走这个 preset
- id: qq
name: dsh-qq
config:
# …wsUrl / ownerId / cwd…
agentPreset: qq
注意:只做第 1 步而不把它列进 preset,这段口径要么不生效,要么挂在所有会话上(取决于是否把它放进了 profile 顶层花名册)。不要把它放在 profile 顶层——这份口径是给一条线的,不是给所有会话。
工作原理¶
- 服务声明:只声明
inject = ["systemPrompt"]。Cordis 的规则是没报名的服务连读都不允许,而除了往提示词里放一段字,插件不干任何运行时状态操作。 - 位置获取:通过
ctx.systemPrompt.getSectionOrder(opts.after)获取目标段落的顺序值,然后+1插在它后面。获取不到时使用fallbackOrder,保证段能挂上。 - 段落挂载:名字为
qq-voice:channel,interpolate: false,在正文前加一句固定中文前言,声明「本段只约束当前渠道」。 - 文件读取:每次组装提示都求值,利用 mtime 缓存避免重复读盘。文件不存在或读不动时返回空串,段仍在但内容为空。
- 错误处理:位置取不到、段挂不上,都只打日志,绝不让 agent 建不起来。
适用场景与注意¶
- 适用场景:需要为某个对话渠道(如 QQ)设定固定长度约束(如一两行)的 DSH profile 开发者。
- 注意:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证;建议保持渠道口径文件短小。
结尾¶
dsh-qq-voice 通过在系统提示中挂载一段渠道口径,让一条线保持短促回应,同时不影响其他会话。修改 Markdown 文件后,下一轮即可生效。如果你需要为不同渠道设置不同的输出长度策略,这个插件是一个轻量且可控的方案。
- 目录页:https://www.skillhub.cn/plugins/hzh5021/dsh-qq-voice
- GitHub:https://github.com/hzh5021/dsh-qq-voice