dsh-predict
Verified@hwfee/dsh-predict · v0.1.2 · MIT · Web UI
下一句:在回答后建议下一条输入,Tab 填入,不自动发送;支持选择预测模型。 / Next Prompt: next-message suggestions with Tab to fill, no auto-send, and a configurable model.
Install
dsh plugin add @hwfee/dsh-predict Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-predict · 下一句
在每轮回答结束后,根据当前对话预测你下一句想说什么,用浅灰文字提示在输入框里。按 Tab 填入输入框但不发送,你审完再按 Enter。

安装
dsh plugin --profile desktop add @hwfee/dsh-predict
装完必须彻底退出并重开 DSH。 客户端 bundle 在页面启动时加载,只刷新页面不够,而且重建产物后再刷新会因 rev 不匹配让整页 boot 失败。
卸载:
dsh plugin --profile desktop remove @hwfee/dsh-predict
设置
设置 → 通用设置,多出一行 下一句:
- 开关:关掉后宿主不再发起预测请求。
- 预测模型:默认 跟随当前模型;也可以从宿主的模型目录里固定一个模型。固定值存的是
provider/model,模型下线时会原样显示而不是被悄悄改掉。
行为
| 时机 | 行为 |
|---|---|
| 新会话第一轮 | 不预测(还没有可参考的对话) |
| 第二轮起,每轮回答结束 | 预测一次,结果只画在空输入框里 |
| 打字 / 按 Esc | 预测消失;下一次回合结束再出现 |
| 按 Tab | 填进输入框,不发送 |
| 空输入框里的宿主占位符 | 有预测时让位给预测文字,预测消失后恢复 |
| 连续失败 3 次 | 冷却 10 轮,避免对着坏路由反复请求 |
| 单次预测超过 20 秒 | 放弃这一次,不影响对话 |
预测是旁路:它不写会话日志、不占回合、失败也不会在对话里留下错误消息。宿主只在页面通过 predictSettings/* 请求时才把结果交出去。
它怎么工作
两半:
- Host(
lib/):监听会话的session/event,在turn/end后取最近几轮对话,走ctx.llm用与当前回合相同的 provider/凭据发一次短请求。 - Client(
client/client.js):在页面里监听当前会话的事件流,收到turn/end后向宿主要这次的结果,画成输入框上的叠层。
模型调用走宿主自己的 LLM 服务,所以供应商切换、凭据、重试和计费与正常回合一致,插件不自己拼 HTTP。
数据去了哪里(请按功能数据流理解)。 每次预测都会把最近几轮对话的片段(含你的输入和模型回复的文本)作为提示词,发给你在 DSH 里配置的那个 provider 和模型——和正常回合走同一条通道、同一份凭据、同一家供应商。插件本身不建任何自己的网络连接,不向第三方上报,也不写额外日志;但「本地计算」这个说法不适用于本插件:预测必然要请求一次模型,否则它无法产生结果。不希望对话片段离开本机,就只能关掉这一行设置。
预测请求关闭推理(reasoningEffort: 'off',DeepSeek 侧即 thinking: { type: 'disabled' }):预测只要一行字,思考纯属浪费,而且思考块一旦漏出来就会出现在输入框里。即使某条路由不认这个开关,流里的推理块也会被丢弃,正文里内联的 <thinking>…</thinking> 也会被剥掉——只有正文能变成 ghost 文字。预测不写会话日志,所以对话记录里不会多出一条消息或一个思考块。
已知边界
- 预测会把对话片段发给你的 provider。 见上文「数据去了哪里」;这条不是边界细节,是使用前必须知道的事实。
- 预测的上下文窗口有限(最近若干轮),不包含工具调用的完整结果。
- 宿主自己的设置行、侧栏文字的字号写死在盐化 CSS Modules 里;能跟随「字号大小」的是插件注册的行和消费主题令牌的控件(见根目录
AGENTS.md第十二节)。 - 模型可能什么都不给(返回空或拒绝),这时这一轮就没有预测——这是正常结果,不是错误。
开发者
cd plugins/predict
npm test # 新鲜度 + 清单契约 + 解析/退避/幽灵文字/宿主/客户端/选择器/请求/推理过滤,共 9 套
npm run build # 重新生成 client/client.js(产物提交进 git)
目录职责、改包名的四个位置、发布流程见仓库根 AGENTS.md。