🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

muzhou91/dsh-steer

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
⚠ 装前注意

为 DeepSeek HarnessDSH提供的一键式 ⏩ Steer 按钮。

基本兼容但装前注意:npm 同名包「dsh-steer」归属 dushaobindoudou/dsh-plugin,装到的可能不是本插件 · 最近上游提交 2026/9/15 · 已提供中文文档

DeepSeek Harness(Cordis)的运行时引导:一键 ⏩,将你的消息注入正在运行的回合,而不是将其排队。

综合分
29.3
GitHub 分
29.3
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add muzhou91/dsh-steer
npm 同名包「dsh-steer」归属 dushaobindoudou/dsh-plugin,装到的可能不是本插件,改用 GitHub 源安装
信任档位:已验证本站已于 1 天前真实安装成功
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 10 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-steer @ 0.0.1
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

npm 同名包「dsh-steer」归属 dushaobindoudou/dsh-plugin,装到的可能不是本插件

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 21:39:20

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-steer

为 DeepSeek Harness(DSH)提供的一键式 ⏩ Steer 按钮。

当 agent 正在运行时,输入框(conversation.input.right 插槽)的右端会出现一个 ⏩ 按钮。输入引导内容并点击它,即可引导当前轮次——将你的消息注入到已经在执行中的运行里,而无需等待它结束或排在它后面。

个人项目

这是我在 DSH v0.1 开发者预览版上的一次独立插件实践。使用 dsh 本身构建(由一位从内部学习 harness 的产品经理 vibe-coding 而成)。未合并进 deepseek-ai/deepseek-harness;面向可能发生变化的预览版 API。

为什么做这个

长时间的 agent 运行既昂贵又粘滞:一旦模型认定了错误的计划,它可能会花上几分钟和大量 token,而你却无法插话。通常的两个选择都不太好——要么等待并付出代价,要么停止并丢失上下文。

DSH 的输入层其实已经理解两种投递模式——queue(默认)和 steer——但早期预览版(我是从 0.1.2-rc.1 开始的)只在 UI 中暴露了 queue。dsh-steer 将隐藏的 steer 模式呈现为一个按钮,并回答了我关心的两个问题:

1. 一个 Cordis 客户端插件要挂载到输入框并干净卸载,所需的最小契约是什么?
2. 用户如何在运行期间介入,而不是眼睁睁看着它沿着错误路径烧掉 token?

“steer”到底做了什么(语义)

关于这些保证要说得精确——它们来自 DSH 核心,而非本插件:

- Steer 是尽力而为的。投递窗口由 Host/Agent 掌控。你的消息仅在会话处于可引导(continuable)状态时才会被注入到正在运行的轮次中。
- 如果引导窗口已关闭,DSH 核心会将消息转换为下一个唤醒队列项,而不是丢弃它(针对每个队列的引导,可能会浮现错误码 session/steer-unavailable / session/queue-item-not-found)。
- Steer 不会回滚 agent 已经做过的事情——它会在下一个决策点将你的指令与实时轨迹合并,让模型就地重新规划。这是人在回路中的航向修正,而不是撤销。

与 DSH 内置引导功能的关系

DSH 演进得很快:到 0.1.5-rc.1 时,核心已经自带引导 UX——一个忙碌时回车的偏好设置(设置中的 Queue 与 Steer)、Cmd/Ctrl+Enter 加速快捷键,以及队列停靠区中每行的 Steer / 插话发送 按钮。本仓库中的补丁在 0.1.5-rc.1 上仍能干净应用(输入外壳包装器和输入框插槽均未改变)。

| 路径 | 手势 | 可发现性 |
| --- | --- | --- |
| DSH 内置 | 设置 + Cmd/Ctrl+Enter,或队列停靠区中每行的按钮 | 隐藏在设置/快捷键之后 |
| dsh-steer | 在输入框中始终可见的一个 ⏩ | 一键操作,零配置 |

换句话说:我最初构建这个是因为 steer 投递模式在协议中存在,但输入框里没有入口;上游后来用自己的 UX 验证了这个问题。这个插件仍然是专用的、一键式的界面(同时也是对 DSH 客户端插件进行补丁 + 插槽注入的一个完整示例)。

要求

- DeepSeek Harness Web UI(dsh web)——基于 0.1.2-rc.1 开发,已验证可在 0.1.5-rc.1 上打补丁。
- Node.js ≥ 20(仅在运行一次性补丁脚本时需要)。

工作原理

两个小部分:

1. 一次性核心补丁(scripts/patch-submit-steer.mjs)。原版输入外壳只暴露了 inputActions.submit()(它硬编码调用 submit("queue"))。该补丁添加了一个同级操作 inputActions.submitSteer(),它会调用已存在但无法访问的 submit("steer")。它不会改变任何模型或 agent 循环行为——只是把一个已有的模式接入到 UI 中。
注意:按照设计,这会修改已安装的 DSH 核心 bundle(该能力无法仅通过插件访问)。DSH 升级会覆盖该 bundle——只需重新运行补丁即可。
2. 一个客户端插件(lib/client.js),它把 ⏩ 控件注册到 conversation.input.right 位置,并且仅在会话运行期间显示它。lib/index.js 是有意保持惰性的宿主部分,它为 Cordis 加载器提供一个可挂载的插件行,以便提供浏览器 bundle。

安装(请使用官方 Queue/Steer + Cmd/Ctrl+Enter)

1) 给核心打补丁(一次性)

npm run install:dsh
or:  node scripts/patch-submit-steer.mjs

该脚本会自动发现你的 @deepseek-ai/dsh-client-ui-conversation/lib/client.js bundle(当它同时承载 dsh-web-app 时优先使用 npm npx 缓存,然后从当前目录向上查找)。发现逻辑的覆盖方式:

explicit path
node scripts/patch-submit-steer.mjs /abs/path/to/dsh-client-ui-conversation/lib/client.js
or environment variable
DSH_CONVERSATION_BUNDLE=/abs/path/to/client.js node scripts/patch-submit-steer.mjs

该补丁是幂等的——一旦 submitSteer 存在,重新运行就是无操作。然后强制刷新 Web 应用(Cmd+Shift+R);无需重启服务器,因为客户端 bundle 是实时提供的。

2) 挂载插件

选项 A——始终挂载(重启后仍然有效;推荐)。 将包复制到你的 web profile 中,并添加一个加载器行。默认 profile 路径是 $DSH_HOME/profiles/web(通常是 ~/.dsh/profiles/web):

cp -r dsh-steer ~/.dsh/profiles/web/node_modules/dsh-steer

追加到 ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
- id: dsh-steer
name: dsh-steer

重启一次 DSH 服务器(加载器行在启动时加载),然后刷新。
选项 B — 动态插件(按会话)。 将 lib/client.js 通过 DSH 的动态插件流程(cordis_define 工具 / 会话内插件 UI)加载。动态插件驻留在内存中,服务器重启后即消失。

升级 DSH 之后

升级会恢复原版核心包,因此:重新运行 npm run install:dsh 并强制刷新。选项 A 的加载器行会保留;只有补丁需要重新应用。

卸载

- 插件: 从 cordis.patch.yml 中移除 dsh-steer 行,并删除 node_modules/dsh-steer(或取消定义该动态插件)。
- 核心补丁: 从 dsh-client-ui-conversation/lib/client.js 的 actions 对象中删除 submitSteer 条目,或重新运行你的 DSH 安装程序以恢复原版包。

常见问题

- 它是否依赖模型/提供商? 不依赖——引导是一种会话传输行为;它适用于该框架运行的任何模型。
- 在工具调用过程中会发生什么? 投递由核心在其下一个窗口决定;消息不会在正在运行的工具执行过程中被注入。
- 空草稿怎么办? 核心会忽略空的、无附件的提交;该按钮仅在运行处于活动状态时显示。
- 为什么补丁核心而不是纯插件? steer 投递模式已存在于 submit(mode) 中,但没有任何输入操作能触达它;仅靠槽位插件无法添加该操作。

已知限制与路线图

- [ ] 可选的草稿保护 + 工具提示,说明当会话不可继续时为何无法使用引导。
- [ ] “引导所有排队消息”操作——核心已支持按队列的 { kind: "steer" } 更新(空草稿加速手势);将其暴露在 UI 中。
- [ ] 首次打补丁时自动备份包(.bak)+ 一个 uninstall:dsh 脚本。
- [ ] 基于分叉的引导: 在注入点对仅追加的 Trajectory 进行分支,以便原始路径与引导路径都能被重放。
- [ ] 随着 DSH 预览版本推进的兼容性矩阵。

开发

| 文件 | 作用 |
| --- | --- |
| lib/client.js | 浏览器端:⏩ 按钮、CSS、conversation.input.right 注册 |
| lib/index.js | 宿主端:用于 Cordis 加载器的惰性插件行 |
| scripts/patch-submit-steer.mjs | 版本容忍、幂等的核心补丁 |

发布
- 针对 0.1.2-rc.1 开发 /补丁已在 0.1.5-rc.1 上验证

欢迎提出问题和设计反馈——尤其是关于跨框架的运行中引导语义。

仅演示

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群