dsh-send-mode:输入框里的排队/引导开关

前言

智能体在跑长任务时,输入框里按 Enter 默认是排队,等当前回复结束后再发送。有时你想插一句话立刻让 AI 处理,有时又怕中途插入打断思路,希望先排队。DSH 原生只提供了「设置 → 通用 → 繁忙时的发送行为」这一个入口,切换要离开输入框,改完再回来。下面介绍的 beisheng2333/dsh-send-mode 把同样的开关放进输入框工具栏,运行中也能切。

这是什么

由 BeiSheng2333 维护的客户端插件 beisheng2333/dsh-send-mode,在 DSH 输入框的工具栏提供一个分段开关,用来切换智能体运行时 Enter 键和发送按钮的行为:排队(等当前回复结束后再发送)或引导(指令追加到当前任务,AI 尽快处理,处理前可能继续输出)。插件是纯客户端 bundle,不发起网络请求。

仓库里 package.json 的 description 原文为 “Queue/steer switch in the DeepSeek Harness composer: choose what Enter and Send do while the agent is running.”,当前版本 1.0.0,许可证 MIT。

核心功能

一句话概括:一个工具栏开关,读写 DSH Host 的 ui-conversation.busyEnter 设置。

具体行为:

  • 排队:运行中按 Enter 或点发送,消息进入队列,等当前回复结束后再发送。
  • 引导:运行中按 Enter 或点发送,指令追加到当前任务,AI 尽快处理;AI 在处理前可能继续输出。
  • 开关决定 Enter 和发送按钮的行为;Cmd/Ctrl+Enter 始终使用另一模式,可以在两种行为之间快速往返。
  • 开关写入的是 Host 侧的 ui-conversation.busyEnter,与内置的「设置 → 通用 → 繁忙时的发送行为」是同一份状态,两边双向同步,任一处改动另一处跟着变。
  • 设置未加载时开关不渲染;写入失败时边框短暂变红,并保留原选择。

安装与启用

README 给的安装方式有两种,没有命令行一键脚手,按自己的工作流选:

在 DSH 的「插件」管理界面中选择本仓库目录安装。

或者下载 Releases 中的压缩包后添加:

从 https://github.com/BeiSheng2333/dsh-send-mode/releases 下载 dsh-send-mode-1.0.0.tgz,
在 DSH 的「插件」管理界面中添加。

安装后按提示重载或重启 DSH。插件是纯客户端 bundle,安装会向当前 profile 的 bundle 列表加入 dsh-send-mode,不需要额外配置。下面这段是 package.json 里 dsh 字段的原样内容,说明了 bundle 补丁位置和 client 端的注入依赖:

{
  "dsh": {
    "bundle": {
      "patch": "./cordis.patch.yml"
    },
    "client": {
      "platform": "web",
      "immediately": true,
      "inject": [
        "@deepseek-ai/dsh-client-ui-slots",
        "@deepseek-ai/dsh-client-ui-settings",
        "@deepseek-ai/dsh-client-locale"
      ]
    }
  }
}

实现与兼容性

插件目录很小,想知道开关怎么落到工具栏,直接看这几个文件:

  • client.js — 在 conversation.input.right 注册分段开关,通过 ctx.configForms.get('ui-conversation') 读写 busyEnter。
  • index.js — Host 侧空实现,所以这是一个纯客户端插件,Host 端没有额外逻辑。
  • cordis.patch.yml — 向 profile 插入 dsh-send-mode 条目。
  • locale/ — 插件卡片文案(界面文案在 client.js 中注册到 send-mode 命名空间)。
  • icon.svg — 插件图标。

兼容性方面,README 写明插件在 DSH 0.2.1-rc.3 的 Web 客户端上开发和验证。它依赖 DSH 自带的 ui-conversation(提供槽位和设置命名空间)、ui-settings(提供 ConfigForms)和 ui-locale(提供文案),这几个依赖默认启用。engines.node 要求 >=20。

典型用法

安装并重启后,操作顺序如下:

  1. 在输入框工具栏找到分段开关(位于 conversation.input.right 槽位)。
  2. 智能体运行时,想先攒后发选排队,Enter 或点发送的消息进入队列,等当前回复结束再发出。
  3. 想立刻追加指令选引导,AI 会尽快处理,处理前可能继续输出。
  4. 需要临时切到另一边时按 Cmd/Ctrl+Enter,无需手动改设置。
  5. 界面里切到的开关状态与「设置 → 通用 → 繁忙时的发送行为」双向同步,任一处改动都能在另一处看到。

适用场景与注意

适合的场景:

  • 会在运行中持续追问的智能体对话:排队模式下先攒后发,引导模式下边跑边插话,想切就切。
  • 希望切换入口贴近输入框,不想来回进出设置页。
  • 可以接受纯客户端 bundle,不需要 Host 侧逻辑。

注意:

  • 插件以当前 DSH 进程的权限运行,安装前应先检查源码,确认它是「读写本地 busyEnter、无网络请求」这两点。
  • 只在 Web 客户端生效;其行为依赖 DSH 自带的 ui-conversation、ui-settings 和 ui-locale,三者默认启用。
  • SkillHub 目录页与 GitHub 仓库均为社区维护,与 DeepSeek / 幻方无官方从属关系,当前星标为 0。
  • 使用前确认你的 DSH 版本与 0.2.1-rc.3 兼容,或在当前版本自行验证。

小结

这个插件不增加模型能力,也不改 Prompt,只解决一件事:把 DSH 原生的 busyEnter 设置从设置页搬到输入框工具栏。代价是依赖 ui-conversation 槽位和 ui-settings 的 ConfigForms,收益是运行时可以随手切换排队与引导。属于客户端分类,当前版本 1.0.0,MIT 许可。

相关链接:

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

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

小夜