前言¶
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 環境提供。