dsh-esc-enter:DeepSeek Harness Web UI 的 Esc 取消与追加/停止按钮插件

前言

DeepSeek Harness (DSH) 采用插件化架构。在 Web UI 端,开发者有时需要更精细的交互控制,比如在生成过程中快速取消当前回合,或者在不打断当前生成流的情况下追加指令。dsh-esc-enter 插件针对这些需求,提供了 opencode 风格的 UX 支持。

插件简介

该插件由 Liangebra 维护,归类为客户端插件,采用 MIT 许可证。它不包含宿主逻辑,纯客户端实现,主要解决两个问题:一是通过 Esc 键取消运行中的任务,二是在输入框 dock 槽中提供直观的“追加”与“停止”按钮。

核心功能

  1. Esc 取消当前任务
    在 agent 运行时按下 Esc 键,会立即取消当前回合。该机制与“停止”按钮完全一致,均调用 Session.cancel(),且队列中未执行的工作会保留到下一回合。
  2. Dock 槽追加与停止按钮
    插件挂载于 conversation.composer.dock 槽位。当 ConversationSnapshot.running 为 true 时,会在输入框旁渲染“追加”和“停止”两个按钮。
    - 追加按钮:调用 inputActions.submit(),将当前输入框草稿提交为队列指令。若草稿为空,按钮自动禁用。
    - 停止按钮:调用 sessions.binding(sessionId).session.cancel(),用于中断当前任务。
    两按钮仅在运行中显示,空闲时自动隐藏以保持界面整洁。
  3. Enter 行为不重复实现
    插件不会覆盖 DSH 内置的“运行中按 Enter”的行为。该行为由 DSH 内置设置决定,可能是“追加指令”也可能是“打断”。
  4. 空闲时不拦截 Esc
    在 agent 空闲时,Esc 键不会触发插件逻辑,命令菜单或弹层可以正常关闭。

安装与启用

在终端中执行以下命令安装插件:

dsh plugin --profile web add github:Liangebra/dsh-esc-enter

安装完成后,重启 dsh web 服务,并在浏览器中执行硬刷新(Ctrl / Cmd + Shift + R)以加载更新。

典型用法

  • 取消任务:当智能体正在生成回复时,直接按下键盘上的 Esc 键,即可取消当前回合。
  • 追加指令:在输入框旁的 dock 槽中,点击“追加”按钮将当前草稿加入待发队列;点击“停止”按钮则中断当前回合。
  • Enter 交互:运行中按下 Enter 键,具体行为(追加或打断)取决于 DSH 内置的设置。

适用场景与注意

该插件适合需要在 Web UI 中获得更清晰任务控制反馈的开发者。

注意事项:
- 插件完全基于客户端逻辑运行,无宿主后端逻辑。
- Esc 取消机制与停止按钮共享同一底层路径。
- 下载使用前,建议检查源码与许可证(MIT)。

结语

dsh-esc-enter 通过键盘快捷键和 UI 按钮的结合,优化了 DeepSeek Harness Web UI 的交互体验。更多细节可查阅社区目录或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜