前言¶
DeepSeek Harness (DSH) 的開發流程中,Agent 需要頻繁啓動並維護長期運行的服務,例如開發服務器、調試代理或事件監聽器。這類任務與傳統的“一次性作業”在生命週期管理、狀態持久化和可見性上有本質區別。現有的機制往往難以兼顧這兩者,導致狀態丟失或生命週期混淆。
DSH Workloads 插件引入了“工作負載”這一概念,將其與“作業”解耦。它爲 DSH 提供了一個持久化、工作區所有的工作負載管理能力,並附帶了一個運行時中心,用於在會話內統一查看和管理這些長期服務。
這是什麼¶
dsh-workloads 是一個 DeepSeek Harness 插件,由 yewenyell-lang 維護。
它的核心價值在於將“長期運行的服務”從“會話臨時任務”中剝離,提供持久化的記錄、日誌存儲以及可視化的運行時中心。該插件通過 Host 服務提供進程管理能力,並通過 Client 插件在 Web 界面中展示運行時狀態。
核心功能¶
-
持久化工作區所有進程
工作負載的所有權屬於規範工作區,而非 Agent 或會話。即使會話結束,工作負載的記錄、日誌和歷史仍保留在${DSH_HOME}/runtime/workloads/目錄下。重啓時會生成穩定的workloadId和新的runId/generation。 -
運行時中心
在 Web 界面中提供運行中心入口。它展示會話內的“作業”和“工作負載”的獨立狀態,支持查看準備就緒狀態、階段、健康度、進程 ID 和日誌尾部。工作負載卡片上的操作按鈕(停止、重啓)在所有階段均可用。 -
Agent 工具集成
提供一套workload_*工具(如workload_start、workload_logs等),允許 Agent 在預設中直接控制工作負載。 -
本地進程提供者
當前版本僅提供 Windows 平臺的本地進程管理能力,命令執行需滿足安全策略。
安裝與啓用¶
安裝該插件到 Web profile:
dsh plugin --profile web add github:yewenyell-lang/dsh-workloads#v0.3.0
安裝後,Host 服務會自動掛載。驗證配置是否生效:
dsh --profile web --dump-config
在 Agent 預設中啓用工具消費者(注意:不要將共享服務隔離在此,僅將工具消費者放入 Agent 預設):
- id: tool-workloads
name: dsh-workloads-local-ui1/tools
config:
enableProcAliases: true
典型用法¶
- 通過上述命令安裝插件並重啓 DSH Web 進程。
- 在 Agent 預設中加載
./tools並配置enableProcAliases: true。 - 在 Web 界面中訪問
運行中心,查看當前會話下的所有長期服務。 - Agent 可以調用
workload_start等工具啓動服務,或通過 Web 界面手動停止/重啓。
適用場景與注意¶
適用場景:
需要長期運行的後臺服務,如本地開發服務器、中間件代理、調試器等。
注意:
1. 平臺限制:本地進程提供者目前僅支持 Windows。
2. 安全策略:命令必須爲單行,且會被拒絕包含密碼、Token、JWT 等憑據形狀的輸入。請求的 cwd 必須在規範工作區內。
3. 環境變量:Runner/子進程環境會移除 DSH_* 和常見憑據變量名。
4. 準備就緒檢查:僅支持日誌文本、127.0.0.1 TCP 和無憑據的 http:// 本地 URL 作爲準備就緒的證據。
5. 版本兼容:當前版本基於 DSH 0.1.0-rc.6 驗證,服務/API 合同處於 pre-1.0 階段。
6. 許可證:插件遵循 MIT 許可證,使用前請檢查源碼。
總結¶
DSH Workloads 通過明確區分“作業”與“工作負載”,解決了 DeepSeek Harness 中長期進程管理的痛點。它提供了持久化的存儲、可視化的運行時中心以及 Agent 工具層,幫助開發者更安全、穩定地管理後臺服務。