在 DeepSeek Harness (DSH) 的开发流程中,当代理处于忙碌状态时,新消息会被自动加入队列。默认情况下,按 Enter 键通常只会将下一条消息加入队列,或者等待当前回合结束。这种机制导致在调试或快速测试时,开发者对消息执行的顺序缺乏即时控制力。dsh-queue-first-enter 插件通过改变空编辑器下 Enter 键的行为,提供了一种直接干预队列的方式。
插件简介¶
dsh-queue-first-enter 是一个 DSH Web 插件,由 himeope 维护。它的核心逻辑是:当编辑器为空(无文本、无待发送图片)时,按下 Enter 键会将队列中的第一条消息导向当前正在进行的回合。
安装与启用¶
安装该插件需要使用官方提供的命令。该插件仅通过仓库分发,未发布到 npm。
dsh plugin --profile web add github:himeope/dsh-queue-first-enter
安装后需要重启 dsh web。该插件需要 dsh web 0.1.0-rc.6 或更新版本。在设置界面(Settings → General)中,可以找到“Enter sends the first queued message”或“回车立即发送队列首条”的开关来控制此功能。
核心功能¶
功能仅在满足以下所有条件时生效:
* 编辑器为空(无文本且无待发送图片);
* 代理正在运行(有进行中的回合);
* 队列中至少有一条状态为 queued 的消息;
* 当前会话为普通会话(非子代理会话)。
在上述条件下,按下 Enter 键会将队列中的第一条消息导向当前回合。其余队列消息保持原有顺序。如果回合瞬间结束或消息已被占用,操作会静默失败,消息留在队列中。此外,Ctrl/Cmd+Enter 键仍保留原有功能(导向所有队列消息)。
典型用法¶
该插件主要用于在代理忙碌时调整消息执行的优先级。
-
场景一:强制插入队列首条
当代理正在处理消息,且队列中已有内容时,清空编辑器并按 Enter。此时队列的第一条消息会在下一个回合边界被导向当前回合,而不是等待队列填满。 -
场景二:调整队列顺序
假设代理忙碌,先发送消息 A(入队),再发送消息 B(入队)。此时清空编辑器并按 Enter,消息 A 将优先被导向当前回合。
注意事项¶
- 该功能仅影响普通会话,不影响子代理会话。
- 必须确保编辑器为空且没有待发送图片。
- 注意版本兼容性:需要 dsh web 0.1.0-rc.6 或更新版本。
通过这个插件,开发者可以在不中断当前回合的情况下,灵活控制队列中消息的导向顺序,从而优化调试和测试流程。