前言¶
在 DeepSeek Harness (DSH) 开发流程中,当智能体处于忙碌状态时,开发者常需将后续消息加入队列以进行调试或特定的提示工程。此时,调整队列中消息的顺序对于控制执行逻辑至关重要。官方的队列停靠栏默认仅提供查看功能,缺乏直接调整顺序的交互手段。dsh-queue-reorder 插件在官方停靠栏的 DOM 结构上进行装饰,添加了拖拽和微调按钮,允许用户直接在界面中重新排列消息,无需切换至其他面板。
插件简介¶
这是一个客户端插件,由 damlys99 维护,采用 MIT 开源许可证。它不替换官方的队列停靠栏组件,而是作为一种装饰层介入,在不破坏原有功能的前提下扩展交互能力。
核心功能¶
-
拖拽与按钮操作
- 队列中的每一行消息都增加了一个 grip 手柄,支持按住拖拽来改变位置。
- 每行提供 ↑/↓ 精确移动按钮。最后一行的 ↓ 按钮会被禁用,因为其后没有元素可移动。
-
非侵入式设计
- 插件仅装饰官方停靠栏,保留预览、内联编辑、引导、移除、附件和折叠等所有原有功能。
- 卸载插件后,队列停靠栏恢复原状,不受影响。
-
零依赖
- 无需构建步骤,无运行时依赖,开箱即用。
安装与启用¶
在 DSH Web 环境下执行以下命令进行安装:
dsh plugin --profile web add -w dsh-queue-reorder
安装完成后,需要重启 DSH Web 进程并刷新页面以使插件生效。
典型用法¶
# 卸载插件
dsh plugin --profile web remove dsh-queue-reorder
# 运行单元测试(无网络、无浏览器环境)
node selftest.mjs
适用场景与注意事项¶
适用场景:
* 需要在 DSH Web 界面中频繁调整队列消息顺序的开发者。
* 希望在不离开官方停靠栏的情况下进行提示工程排队的用户。
注意事项:
- 版本要求:插件要求 DSH 版本在
>=0.1.2-alpha.1 <0.2.0-0范围内。更早的版本没有conversation.input.dock插槽支持。 - 内部实现依赖:插件依赖内部 DOM 结构(如
[data-queue-dock])。如果官方停靠栏的 DOM 结构被重构,控件可能失效(但不会导致崩溃,只是失去交互)。 - 消息类型限制:插件仅移动
next-turn(排队中)的消息,next-step(下一步)的消息保持静止。 - 拒绝移动的条件:在尝试移动时,如果遇到以下条件,操作将被拒绝且不产生任何改变:
QUEUE_CHANGED:视图中的队列状态与实时队列不匹配。NON_USER_MESSAGE:试图移动由 Harness 仍跟踪来源的消息(如目标回合提示词)。SUBAGENT_UNSUPPORTED:子代理会话的队列由父会话拥有。
- 网络限制:插件的 HTTP 路由仅监听回环接口,浏览器发起的跨站请求会被 CORS 协议阻止。
总结¶
dsh-queue-reorder 通过在官方队列停靠栏中添加 grip 拖拽和 ↑/↓ 按钮,解决了消息顺序调整不便的问题。它以装饰模式工作,保持了与官方 UI 的兼容性,适合需要在 DSH Web 界面中精细控制队列顺序的用户。