DeepSeek Harness 插件:dsh-plugin-subagent-delete

DeepSeek Harness (DSH) 的原生子代理控制面僅提供 send_message、interrupt_agent 和 list_agents,缺乏刪除或釋放子代理的接口。這導致一次性子代理和過期的可繼續子代理會在 Web UI 列表中持續堆積。dsh-plugin-subagent-delete 插件填補了這一空白,提供了基於所有權檢查的模型調用工具,以及可選的 HTTP 路由。

安裝與啓用

在終端中執行以下命令將插件添加到 Web 配置文件中:

dsh plugin --profile web add github:heiheiha798/dsh-plugin-subagent-delete

安裝完成後重啓配置文件,並在新的會話中啓動。該會話將獲得三個工具。

核心功能

list_subagents

列出調用會話的後代子代理。返回結果包含子代理的 ID、標籤、模式(one-shot | continuable)、狀態(running | inactive)、深度、父 ID 及是否有子節點。

// 獲取所有後代
list_subagents({})

// 僅獲取正在運行的
list_subagents({ activity: "running" })

// 僅獲取一次性子代理
list_subagents({ mode: "one-shot" })

delete_subagent

永久刪除子代理會話並將其從 Web UI 列表中移除。操作包括驗證目標爲調用會話的後代、停止實時代理或排空常駐的 Continuable Activation、從會話管理器中分離會話、刪除磁盤上的日誌目錄、清理數據庫記錄以及更新工作區會計信息。

// 永久刪除指定 ID 的子代理
delete_subagent({ subagent_id: "<id>" })

// 遞歸刪除(目標及其所有後代)
delete_subagent({ subagent_id: "<id>", recursive: true })

release_subagent

停止並釋放子代理,但保留其記錄和對話歷史。這使得子代理可以在未來通過 send_message 恢復。

// 釋放而不刪除
release_subagent({ subagent_id: "<id>" })

// 遞歸釋放
release_subagent({ subagent_id: "<id>", recursive: true })

Web UI 自動刷新

DSH 原生沒有針對子代理刪除的刷新路徑。該插件通過發佈一個短暫的標記會話來繞過這一限制,並利用官方的 prepare → enter → announce → detach 生命週期接口。客戶端組件監聽 sessions.list 快照,在標記會話被移除後觸發 sessions.refresh() 和 sessions.refreshSubagents(parentId),從而無需手動刷新頁面即可更新子代理計數。

HTTP 路由

除了模型調用工具,該插件還註冊了 HTTP 端點,便於客戶端集成和本地調試。

  • GET /dsh-plugin-subagent-delete/list?parentSessionId=<id>[&activity=…][&mode=…]
  • POST /dsh-plugin-subagent-delete/delete { "parentSessionId": "<id>", "subagentId": "<id>", "recursive": false }
  • POST /dsh-plugin-subagent-delete/release { "parentSessionId": "<id>", "subagentId": "<id>", "recursive": false }

權限控制與依賴

權限規則

  • 所有權檢查:僅允許會話樹祖先刪除子代理。嘗試刪除非後代或未知 ID 的子代理會返回 not-your-subagent 或 not-found 錯誤。
  • 遞歸刪除限制:若未設置 recursive: true,嘗試刪除擁有後代的子代理將被拒絕。
  • 運行等待:運行中的子代理在刪除前會等待 15 秒以確保完全停止。

環境依賴

  • DeepSeek Harness: 兼容 DSH 0.1.0-rc.8
  • Node.js: 需要版本 ^22.19.0 或 >=24.0.0
  • 依賴庫: 依賴 @deepseek-ai/dsh-tools,版本範圍爲 >=0.1.0-rc.8 <0.2.0-0

總結

dsh-plugin-subagent-delete 爲 DSH 提供了完整的子代理生命週期管理能力,特別是針對清理 Web UI 中堆積的會話提供了有效的解決方案。開發者可根據上述命令和示例進行集成,確保在會話管理中保持環境整潔。

羽毛球分组比赛记分
小程序二维码

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

小夜