dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 下一句预测插件:对话结束后显示灰字建议,Tab 填入、Esc 忽略,始终由你发送。
DeepSeek Harness 的下一句预测插件。助手回完一轮,如果你的输入框是空的,它会在里面放一行灰字,是它猜你接下来要说的话。想用就按 Tab,不想用就按 Esc,或者直接打你自己的。消息永远由你自己发送。
简体中文 | English
v0.1.0 MIT DSH >=0.2.1-rc.1 <0.3.0 无新增运行依赖
聊着聊着,你常常已经知道下一句要追问什么,只是懒得再敲一遍。这个插件帮你省掉这一遍。
灰字出现在空输入框里,有三种处理方式:
灰字只是显示在输入框上的一层,不是草稿的内容,也不会被发出去。读屏软件能从输入框的描述里读到建议和按键提示。封面图是示意图,不是真实截图。
下面这些情况它不会出建议:输入框里已有草稿、附件、引用,或者有消息在排队;助手这一轮还没跑完、被取消或者出错了;输入法正在组词,或者 /、@ 菜单开着。只有助手正常结束的回合才算数,用户一发新消息或者开始新回合,旧的预测马上作废。
超时、模型出错、没有合适的下一句,这一轮就直接跳过,输入框里不会冒出错误提示。具体原因可以在设置页的“当前状态”里看。
猜之前先挑上下文。只看当前会话里真正的用户消息和助手回复的文字,工具输出、模型的推理过程、DSH 自己注入的消息都不算用户的意思。具体怎么挑:
user_constraints 一起交给模型。每个完成的回合最多发一次预测请求,提示词让模型扮演“用户的写作助手”,而不是助手本人。几条主要规则:
模型返回之后还有一道检查,没通过的整条丢弃,不会裁剪成半句再显示:
{"suggestion": 字符串} 形式的 JSON,空字符串、null、非字符串都不要。.tgz 格式,不用解压。这个包的 SHA-256 是 0b430ffa25a23f4ce7121515141c5458b27f0daaeba4a7dbc7f54e0d102443aa。也可以用 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 外壳和转义都算在内 |
设置页里没有的一项是输出 token 上限(maxTokens,默认 160,范围 64–384),插件启动时的初始配置可以传它。设置保存在文件里,文件里的值优先于初始配置。
“跟随当前会话”时,用的是这个会话实际选择的服务商和模型,并且挑这个模型声明支持的最低推理档位(优先 off、none、minimal,否则取列表第一个)。设置在两个窗口里同时改的话,后保存的那个会收到冲突提示并重新读取。
同一个回合、同样的上下文和同样的模型设置只预测一次,成功、空结果和失败都会缓存。多个界面同时在等同一个预测时共用一次请求,只有最后一个等待者离开才会取消它。
真实的响应速度和建议质量取决于你用的服务商、模型和对话长度,我没法承诺固定的延迟或命中率。设置页目前只有中文界面。
预测走的是 DSH 自带的模型服务。插件会把当前会话里挑出来的近期文本发给你选的模型服务,费用或额度按那边的正常规则算。插件自己没有单独的第三方 API 地址。
sk- 和 sk-proj- 开头的 key、GitHub 的 ghp_ 这类 token、Bearer 令牌、PEM 私钥。这只是兜底,认不出所有敏感信息,会话内容还是要按你所选服务商的规矩对待。$DSH_HOME/next-message.json,没设置 DSH_HOME 时是 ~/.dsh/next-message.json。写入是先写临时文件再改名,文件权限是仅自己可读写,里面没有对话内容,也没有密钥。0.2.1-rc.2):原生模块加载、灰字不污染草稿、Shift+Tab 保持焦点切换、输入法组词、Tab 整句采纳、不自动发送、一次撤销、Esc 忽略、自己打字优先、原生设置页、保存立刻生效、关闭后不再发请求。模型回复由本地的固定测试提供者生成,里面的 180 毫秒是测试延迟,不是服务商测速。这些验证的是工程链路和边界行为,说明不了预测效果和 Codex 一样好。真实的采纳率、费用和网络延迟,还得实际用起来才知道。完整记录在 docs/VALIDATION.md,机器可读的结果在 docs/browser-results.json 和 docs/replay-results.json。
需要 Node.js ^22.19 || >=24。客户端用的是 DSH 提供的 React,没有新增运行依赖。
git clone https://github.com/746445568/dsh-next-message.git
cd dsh-next-message
npm run check
npm pack
npm run check 会依次构建客户端、跑单元测试、跑离线回放,npm pack 之前也会自动跑一遍。
目录结构:
lib/index.js:插件入口,注册 POST /api/dsh-next-message(请求体上限 32 KB),处理 predict、cancel、config.get、config.set、status、catalog、feedback 这几种请求lib/engine.js:判断回合是否正常结束、选模型、单次飞行与缓存、取消和超时、读取尚未加载的历史会话(只读,不会恢复任务)lib/context.js:上下文挑选与裁剪、密钥遮蔽、提示词、输出检查lib/config.js:设置的校验、原子写入和版本冲突检测lib/client-state.js:浏览器侧的控制器,所有异步结果都绑定到同一个空草稿版本,旧结果不会覆盖新草稿src/client-entry.js:灰字渲染、Tab 和 Esc 处理、输入法保护、设置页client.js:由前两者生成的客户端包,改完代码后运行 npm run buildeval/replay.jsonl 和 scripts/evaluate.mjs:离线回放tests/:单元测试qa/:可选的真实浏览器测试,步骤见 qa/README.md欢迎提 Issue。麻烦带上 DSH 内核版本、系统、模型名称和复现步骤,别附密钥和私人对话。
这个项目是在 Tieboyh/dsh-next-step(MIT,0.5.2 版)的基础上改的。宿主通信、已完成回合的单次飞行、客户端生命周期的设计来自它;上下文挑选、预测提示词和输出检查、设置、客户端状态控制器、带版本校验的编辑器接入是重写的,上游的提示词优化功能没有带过来。详细的来源和改动范围见 NOTICE,许可证见 MIT LICENSE。
这是独立的社区项目,跟 DeepSeek、OpenAI 都没有官方关系。想找更多 DSH 插件,可以去 dsh-plugin 这个 topic 下看看。