dsh-input-prediction:DSH 输入框灰字续写与回复后推荐

前言

在 DSH 里和智能体来回对话时,输入框往往是最常停留的地方:你要续写半句话、或在助手刚答完时想发下一条,却还要自己从头打满。常见做法是复制上一轮上下文到别处让模型帮想话术,或依赖通用编辑器的补全——它们通常看不到当前会话,也接不进 DSH 的发送链路。

下面介绍社区插件 dsh-input-prediction(维护者 fishcg,分类:客户端):它直接挂在 DSH 的 composer 上,做两件事——停顿后用灰字续写你可能要打的下一句(Tab 接受),以及每轮助手回答结束后在输入框上方给出 1–3 条可一键发送的候选。预测依据是当前会话上下文,并把你最近几条消息当作口吻样本。

这是什么

dsh-input-prediction 是 DeepSeek Harness(DSH)的输入预测插件,版本 0.2.0(MIT © 2026 fishcg)。宿主半区注册预测与推荐路由并调用 llm.stream;客户端半区对接 Lexical 输入框与官方 UI 槽位,零构建、可热重载。要求 DSH >= 0.2.0-rc.2,Node >= 20。

目录页:SkillHub - dsh-input-prediction
源码与说明:GitHub - fishcg/dsh-input-prediction

核心功能

灰字补全(Ghost completion)

在输入框里,模型把「接下来最可能的那一段」画在光标后面,用灰字显示,不改动已有草稿。

  1. 草稿至少有一个字,停顿约 320ms 后发预测;相邻请求至少间隔 650ms。
  2. 条件满足时(光标在末尾、已聚焦、非斜杠/@ 菜单、非中文输入法组合、建议非空等),灰字显示在光标后;按 Tab 接受,文字经 DSH 官方插入通道(captureInsertion + insertText)落进输入框,属于可撤销的普通编辑。
  3. 助手仍在流式输出或跑工具时,只要草稿非空,灰字仍可预测;草稿为空则不会凭空猜「下一条」。
  4. 模型不确定时会返回空串,界面宁可不提示也不乱猜。

回复后推荐(Follow-up suggestions)

每轮助手回答结束(uiSession.sessionStatus 的 running 从 true 变 false)且草稿为空时,在输入框正上方(官方 conversation.input.dock 槽)展示 1–3 条候选下一条消息。

  • 回答进行中不请求、不展示候选;开始打字、切换会话或点右下角 × 会收起。
  • 点候选等价于你自己打完再 Enter:写草稿 → 提交;同一对话版本只请求一次,过期结果按 contextEpoch 丢弃。
  • 单条候选长度默认不超过 40 字(chipMaxChars)。

设置面板

入口:设置 → 内置插件 → 「输入预测」。

项 默认 说明
输入框灰字补全 开 关则不再请求、不画灰字、Tab 不接管
回复后推荐 开 关则不再请求,已有气泡立即收起
推荐条数 3 1 / 2 / 3

偏好写入 $DSH_HOME/input-prediction.settings.json(路径可由 settingsFile 覆盖),立即生效,无需重启。用户在面板改过的值优先于 cordis.patch.yml 里的出厂默认。

安装与启用

DSH 生态里插件以「一切皆插件」方式扩展;社区目录 SkillHub 是独立站点,与 DeepSeek / 幻方无官方从属关系。安装前请自行查看仓库源码与 MIT 许可证;插件在当前 DSH 进程权限下运行。

从插件市场(设置 → 插件市场 → 搜「input-prediction」)或命令行安装:

dsh plugin --profile desktop add dsh-input-prediction

或直接从 GitHub 添加:

dsh plugin --profile desktop add https://github.com/fishcg/dsh-input-prediction

两半区支持热重载,无构建步骤、无额外依赖。改 cordis.patch.yml 中的模型相关项后,需重新载入 patch 层(保存 profile 的 patch 触发 live reload)或重启 DSH 桌面端。

典型用法

  1. 打开任意会话,在 composer 里打几个字并稍停,看光标后是否出现灰字续写;合适则 Tab 接受,再继续改或直接发送。
  2. 等助手本轮回答完全结束且输入框为空,看输入框上方是否出现 1–3 条建议;点一条即可发送。
  3. 在 设置 → 内置插件 → 输入预测 里按需关闭灰字或推荐、把推荐条数改为 1 或 2。

需要确认链路是否加载时,可开启 debugLog 后查看日志(默认关闭):

tail -f /tmp/dsh-input-prediction.log

常见事件包括 client:ready(客户端已加载)、predict / predict-done(灰字预测)、client:chips(拿到推荐候选)、client:accept(Tab 接受)。浏览器 DevTools 控制台另有 [input-prediction] 前缀输出。

配置要点

高级项写在 cordis.patch.yml(或 profile 下同 id 覆盖)。常用片段如下;完整键说明见仓库 README。

- insert:
    - id: dsh-input-prediction
      name: dsh-input-prediction
      config:
        enabled: true
        provider: ''
        model: ''
        reasoningEffort: 'off'
        maxTokens: 160
        temperature: 0.3
        contextMessages: 16
        contextChars: 600
        maxSuggestionChars: 60
        styleHint: ''
        completionEnabled: true
        chipsEnabled: true
        chipCount: 3
        chipMaxChars: 40
        chipsMaxTokens: 320
        chipsTemperature: 0.7
        settingsFile: ''
        debugLog: ''

务必保持 reasoningEffort: 'off':灰字续写通常只有十几个字,若打开 reasoning,token 预算会被思考占满,补全容易变成空文本。provider / model 留空则跟随 DSH 的默认模型设置。

适用场景与注意

适合:长期在 DSH 桌面端写对话、希望少敲重复跟进句、又希望补全与推荐跟当前会话和本人口吻对齐的开发者。

注意:

  • 依赖联网或本地配置的 LLM;预测质量随模型与上下文长度变化。
  • 切换会话会作废灰字、候选与缓存,不会把上一会话的推荐带到新会话。
  • 完全没有灰字时,可先查日志里是否有 client:ready、client:host-contact,并确认设置里灰字补全未关、enabled 为 true。

结尾

dsh-input-prediction 把「下一句写什么」收进输入框本身:灰字负责续写草稿,推荐气泡负责答完后的快捷跟进,设置与偏好文件分开,改动即生效。若要在 DSH 里试用,可从 SkillHub 目录页或 GitHub README 对照安装命令与配置表。

  • 目录页:https://www.skillhub.cn/plugins/fishcg/dsh-input-prediction
  • GitHub:https://github.com/fishcg/dsh-input-prediction
羽毛球分组比赛记分
小程序二维码

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

小夜