前言¶
DeepSeek Harness 的后台任务列表 (dsh-client-ui-jobs) 最初被设计为只读,原因在于取消任务不仅需要通知模型,还涉及协议变更(kill 会标记 reported=true,导致模型可能继续等待)。虽然后端 ctx.jobs 已具备停止能力,但前端缺乏操作入口。dsh-job-stop 插件解决了这一痛点,在会话头的任务列表中增加了可操作区域,允许用户在确认后停止任务,并确保模型能接收到任务结束的通知。
插件定位¶
这是一个由 David Bruck 维护的 MIT 协议插件,旨在将 DeepSeek Harness 会话头中的后台任务列表从“只读”变为“可操作”。
核心功能¶
- 悬停交互:在后台任务列表的运行行上悬停,会覆盖状态指示点并显示一个停止按钮和提示(Tooltip)。
- 确认对话框:点击停止按钮会弹出确认框,该对话框复用了会话重命名和删除的样式,会重申完整命令、任务类型、当前状态、运行时间和任务 ID。
- 任务终止与通知:确认后,主机通过
ctx.jobs杀死任务,行状态变为stopping再变为killed,并通过inject(Agent 忙碌时)或followup(Agent 空闲时)通知所属 Agent。 - 容错处理:如果任务已经结束,插件不会调用
kill,而是直接返回already-finished,避免吞掉模型本应收到的完成通知。 - 无障碍与本地化:支持英文和简体中文,按钮支持键盘焦点和
Escape关闭对话框。
安装与启用¶
安装此插件需要 DeepSeek Harness 版本 0.1.2-alpha.1 或更高。
dsh plugin --profile web add @gorban/dsh-job-stop
典型用法¶
- 在会话头的后台任务列表中,找到正在运行的任务行。
- 鼠标悬停在该行上,点击出现的停止按钮。
- 在弹出的对话框中确认操作,任务将被终止。
配置说明¶
插件支持配置通知策略和最大唤醒次数,以防止频繁操作打断 Agent 的工作流。
- id: job-stop
name: "@gorban/dsh-job-stop"
config:
notice: wakeup # 选项:wakeup(唤醒 Agent)或 quiet(静默)
maxConsecutiveWakes: 3 # 限制单个 Agent 在收到插件输入之间最多打开的对话轮数
注意事项¶
- 插件依赖
dsh>= 0.1.2-alpha.1。 - 浏览器端通过注册低优先级的槽位(
job-list)来覆盖内置列表条目,而非创建新列表,因此会话头仍只显示一个控制项。 - 插件不声明 peerDependencies,所有依赖均由运行时的 DSH 环境提供。