前言¶
在 DeepSeek Harness(DSH)的 composer 中,回合结束后的“下一句”往往需要手动敲击或复制粘贴。常见的做法是依赖通用提示词模板(如“继续”),或者依赖其他插件的预测,但它们要么不够贴合上下文,要么会抢夺 Enter 键的发送行为。dsh-next-hint 在 DSH Desktop 和 web profile 上提供了另一种选择:当回合结束且 composer 草稿为空时,在输入框第一行显示一条灰色幽灵文本,按下 Tab 键采纳,不触发发送。
这是什么¶
dsh-next-hint 是一个 DSH 插件,由维护者 xiaoshenming 开发,分类为客户端。它利用一个独立的辅助请求读取当前会话的最近几轮对话上下文,从而生成贴合当前工作的下一句建议。建议以“幽灵文本”的形式呈现,可见、可撤销,且不会自动发送。
核心功能¶
- 幽灵建议:回合 settle、草稿为空时,在 composer 第一行显示灰色幽灵文本,右侧显示 Tab accept。
- 按 Tab 采纳:Tab 将幽灵文本插入到草稿末尾,光标随之移动,不发送。
- 不打字即消失:开始打字时幽灵文本自动消失。
- 切换会话即丢弃:切换到其他会话时幽灵文本被清除。
- 静默失败:超时、无路由、模型拒绝等情况下,幽灵文本不出现,日志最多一条 warn,不向用户暴露错误。
- 不上传对话原文:浏览器只发送 sessionId,对话原文由主机进程读取并保留在本地,不写入外部存储或日志。
安装与启用¶
DSH Desktop¶
- 打开 DSH Desktop 设置。
- 进入 Plugins 页面。
- 添加 Git 包,输入:
github:xiaoshenming/dsh-next-hint#main
- 重启应用一次,插件随启动加入列表。
Web profile¶
若使用 self-managed 的 web profile:
dsh plugin --profile web add "github:xiaoshenming/dsh-next-hint#main"
同样需要重启应用一次。
更新¶
从插件页面更新,或在 desktop profile 下:
cd ~/.dsh/profiles/desktop && pnpm update dsh-next-hint
更新后若未生效,再次重启应用即可。
典型用法¶
- 在 DSH 中完成一轮对话,等待 composer 草稿为空。
- 若插件启用,第一行会出现灰色幽灵文本(例如“fix the two failing cases as well”)。
- 将焦点保持在 composer,按下 Tab 键。
- 幽灵文本被插入到草稿末尾,光标跟随其后,此时按 Enter 才会发送。
- 若开始打字,幽灵文本自动消失。
配置项¶
进入 DSH 设置 → Plugins → dsh-next-hint,每个配置项都有默认值,无需手动填写。
| 配置项 | 默认值 | 含义 |
|---|---|---|
enabled |
true |
总开关 |
provider / model |
空 | 空时跟随会话最后一条路由;两者必须同时设置或不设置 |
locale |
auto |
建议语言 |
maxTurns |
3 |
采样最近几轮对话 |
maxInputBytes |
8000 |
辅助请求的输入预算 |
maxOutputTokens |
128 |
输出 token 上限 |
maxHintChars |
48 |
幽灵文本长度上限;过长的段落会被丢弃,长句会被截断 |
timeoutMs |
15000 |
单次请求超时时间 |
perSessionCooldownMs |
0 |
会话冷却时间,默认每回合都建议 |
技术实现¶
- 职责分离:浏览器负责判断是否显示幽灵文本(草稿是否为空、是否正在打字、当前会话 ID),主机负责生成建议。
- 单次请求/响应:浏览器向主机的
/api/next-hint发送 sessionId,主机据此读取最近几轮对话,调用一次独立的 LLM,返回建议或静默失败。 - 官方插槽:幽灵节点挂载在
conversation.composer.dock,由插件自己渲染与清理。 - 失败策略:模型返回“无建议”时,插件会用更严格的指令再问一次;若仍无建议,则不再显示幽灵文本。
生态与兼容性¶
- 与其它插件的关系:
- dsh-composer-prediction:同样是“回合结束 + 幽灵文本 + 浏览器决策 + 主机生成”,但使用覆盖层插槽、独立设置页、会话级缓存,并通过 Esc 关闭;本插件使用官方 dock 插槽,切换会话时丢弃建议。从 0.7.7 起,它会检测本插件并自动暂停,避免重叠。建议只启用其中一个。
- dsh-input-assist:补全你正在输入的句子并检查拼写,本插件建议回合结束后的下一句。两者仅在空闲空 composer 时可能同时出现,此时关闭其中一个即可。
- 版本要求:已测版本为 DSH Desktop
0.2.1-rc.2(Windows)与同一版本的 web profile(macOS)。主机需要ctx.llm、ctx.sessions和ctx.webServer.register;浏览器需要conversation.composer.dock插槽与 composer 输入门面。若上游调整这些接口,幽灵可能失效,但不会报错。 - 权限与安全:插件以当前 DSH 进程权限运行,请求仅允许来自 loopback,外部请求会被拒绝。对话原文仅保存在本地进程,不写入日志或外部存储。
适用场景与注意¶
- 适合需要连续对话、并在回合间快速推进工作流的场景。
- 安装前建议阅读源码与许可证(MIT),确认其行为与你的使用习惯一致。
- 若已安装 dsh-composer-prediction 或 dsh-input-assist,请按文档提示只启用其中一个,避免幽灵重叠。
结尾¶
dsh-next-hint 在回合结束时提供贴合上下文的下一句建议,以幽灵文本的形式呈现,Tab 采纳,不自动发送,适合作为 DSH 中连续对话的辅助工具。更多细节与源码可参考:
- 技能目录:https://www.skillhub.cn/plugins/xiaoshenming/dsh-next-hint
- GitHub:https://github.com/xiaoshenming/dsh-next-hint