前言¶
在 DSH(DeepSeek Harness)里写对话时,聊着聊着常常已经知道下一句要追问什么,只是懒得再敲一遍。这个插件帮你省掉这一遍。
插件会在助手回完一轮、输入框为空时,在输入框里放一行灰字,是它猜你接下来要说的话。想用就按 Tab,不想用就按 Esc,或者直接打你自己的。消息永远由你自己发送。
它是什么¶
dsh-next-message 是 DeepSeek Harness 的下一句预测插件,由维护者 746445568 开发,分类为模型推理。
灰字只是显示在输入框上的一层,不是草稿的内容,也不会被发出去。读屏软件能从输入框的描述里读到建议和按键提示。输入框里有草稿、附件、引用,或者有消息在排队时不会出建议。
核心功能¶
灰字出现在空输入框里,有三种处理方式:
- Tab:把整句填进输入框,变成一份普通草稿。你可以接着改,也可以按一次撤销回到空输入框。
- Esc:忽略这条建议。同一轮里改了草稿再清空,它也不会再冒出来。
- 直接打字:灰字立刻消失。
它是怎么猜的¶
猜之前先挑上下文。只看当前会话里真正的用户消息和助手回复的文字,工具输出、模型的推理过程、DSH 自己注入的消息都不算用户的意思。
具体挑选规则:
- 最近一条用户消息和最近一条助手回复一定保留,分别占上下文预算的 48% 和 32% 左右。
- 再从最近 8 条用户消息里找带约束的句子(”不要”“必须”“只做”“保持”,或者 must、don’t、only、keep 这类),最多留 8 句,作为 user_constraints 一起交给模型。
- 剩下的预算先给更早的、带约束的用户消息,再按时间从近到远补助手和用户的消息,总共最多 12 条。
- 太长的消息保留头尾,中间用一个标记表示被裁剪。整个过程没有额外的摘要请求。
模型返回之后还有一道检查,没通过的整条丢弃,不会裁剪成半句再显示:
- 必须是
{"suggestion": 字符串}形式的 JSON,空字符串、null、非字符串都不要。 - 长度不超过上限(默认 80 个字符),不含控制字符和双向文本控制符。
- 不能是助手口吻的开头(”我来”“让我”“以下是”“Sure”“Here is”这类),也不能是”继续”“好的”“thanks”这种空话。
- 建议里的链接、文件路径,以及”端口”“预算”“金额”后面的数字,必须在对话里出现过。
- 对话是中文的话,建议里必须有中文。
模型如果去调工具、没有正常结束、或者输出过长,这一轮同样跳过。
安装¶
- 下载 dsh-next-message-0.1.0.tgz,保持
.tgz格式,不用解压。这个包的 SHA-256 是0b430ffa25a23f4ce7121515141c5458b27f0daaeba4a7dbc7f54e0d102443aa。 - 在 DSH 里打开”插件 → 添加插件”,填入安装包的完整本地路径,安装并启用,然后完全退出 DSH 再重新打开。
- 到”设置 → 下一句预测”确认开关是开着的。聊完一轮,保持输入框为空,等灰字出现。
也可以用 dsh 命令。以 PowerShell 和 desktop profile 为例:
dsh plugin --profile desktop add "C:\Downloads\dsh-next-message-0.1.0.tgz"
网页版把 profile 换成 web。如果同时装了别的灰字预测插件,本插件发现它的灰字显示在输入框里时会主动让出,状态里会写”检测到另一个灰字插件,已让出输入框”。
兼容性¶
package.json 里声明的范围是 DSH >=0.2.1-rc.1 <0.3.0-0,Node.js ^22.19 || >=24。实际只在 0.2.1-rc.2 的 Linux + Chromium 网页界面上验证过。Windows 和 macOS 的原生桌面壳、0.2.1-rc.1 都还没实测。
设置¶
“设置 → 下一句预测”里可以调下面这些项,改完点”保存设置”才生效,保存后会立刻取消正在进行的预测。
| 设置页里的名字 | 默认 | 范围 | 说明 |
|---|---|---|---|
| 启用预测 | 开 | 关掉之后不再发任何预测请求 | |
| 模型来源 / 预测模型 | 跟随当前会话 | 可以单独选一个 DSH 里已配好的快速模型,不需要给插件填 API Key。服务商和模型必须成对选 | |
| 建议语言 | 跟随最近一条用户消息 | 中文 / English | 自动模式看最近一条用户消息里有没有中文 |
| 等待上限(毫秒) | 3000 | 1000–10000 | 超时就跳过这一轮,不会自动重试 |
| 建议最长字符数 | 80 | 24–160 | 超出的整条丢弃 |
| 上下文字数预算 | 12000 | 3000–24000 | 发给模型的上下文上限,连 JSON 外壳和转义都算在内 |
设置保存在 $DSH_HOME/next-message.json,没设置 DSH_HOME 时是 ~/.dsh/next-message.json。写入是先写临时文件再改名,文件权限是仅自己可读写,里面没有对话内容,也没有密钥。
数据去向¶
预测走的是 DSH 自带的模型服务。插件会把当前会话里挑出来的近期文本发给你选的模型服务,费用或额度按那边的正常规则算。插件自己没有单独的第三方 API 地址。
- 只处理当前会话,不读别的会话,不调用工具,不访问新网站,也不会替你发消息。
- 发出去之前会先遮蔽几种常见的密钥:
sk-和sk-proj-开头的 key、GitHub 的ghp_这类 token、Bearer 令牌、PEM 私钥。这只是兜底,认不出所有敏感信息,会话内容还是要按你所选服务商的规矩对待。 - 请求数、缓存命中、显示数、接受和忽略数、耗时,以及服务商返回的 token 统计,只放在宿主内存里,重启就清空。
没出现灰字怎么办¶
- 到设置页看一下插件是否启用、能不能连上、模型来源是否可用。
- 让助手正常回完一轮,再清空输入框。回合还在跑、被取消或者出错时不会预测。
- 看设置页的”当前状态”。如果是超时,就调大等待上限或换个更快的模型;如果是模型请求失败,先确认 DSH 本身能正常用这个模型。
- 完全退出并重启 DSH,查看有没有插件加载错误,顺便确认没有别的灰字插件在跑。
生态背景¶
DSH 理念是「一切皆插件」,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
适用场景与注意¶
适合需要频繁追问、连续对话的开发者。使用前应检查源码与许可证,插件以当前 dsh 进程权限运行。
短结尾¶
这个插件通过智能预测下一句对话,让连续对话更流畅。完整文档在 GitHub:https://github.com/746445568/dsh-next-message