DeepSeek Harness 進程面板插件介紹

前言

在使用 DeepSeek Harness(DSH)開發智能體時,智能體經常會啓動後臺服務(如數據庫、API 服務)。這些進程通常通過 shell 命令或 Start-Process 啓動,開發者難以在 Web GUI 中直觀地看到“哪個對話啓動了哪些服務”,也無法快速查看日誌或進行啓停操作。

dsh-process-board 插件解決了這個問題。它是一個 DSH 服務面板插件,可以在 Web GUI 側邊欄查看服務歸屬、進行啓停管理、實時查看日誌,並支持啓動參數的重放。

核心能力

該插件提供以下功能:

  • 會話歸屬:通過 DSH 宿主注入的 DSH_SESSION_ID 環境變量,結合進程樹血緣,將每個服務歸屬到啓動它的對話。面板會按會話的中文標題分組顯示。
  • 服務視圖:內置三道過濾邏輯(端口/日誌標記閘門、剔除 npm/cross-env 啓動器殼、合併 nginx master-worker),只展示真正的服務進程,避免刷屏。
  • 三態探測:提供三種狀態展示。
    • running:端口處於監聽狀態。
    • pid-alive:進程存在但端口未監聽(如 Java 冷啓動階段)。
    • stopped:進程已結束。
    • 支持通過 HTTP 探測檢查服務的響應碼。
  • 啓停管理:停止服務時採用禮貌終止(SIGTERM/taskkill),給予寬限期後對進程樹進行強殺。當服務狀態爲 stopped 時,行內會出現「啓動」按鈕,可重放登記的啓動參數。
  • 日誌查看:啓動時注入 DSH_PB_LOG 環境標記。面板採用分欄設計,實時 tail 日誌流。支持 ERROR 紅色高亮和 WARN 黃色高亮,每 4 秒自動刷新,且支持滾動吸底。
  • 全屏模式:面板 ⛶ 鋪滿視口;日誌 ⛶ 覆蓋整個面板。支持按 Esc 逐級退出(日誌全屏 → 面板全屏 → 關閉)。

安裝與啓用

前置條件是已安裝 DSH(dsh 命令可用)。

使用以下命令安裝插件:

dsh plugin --profile web add dsh-process-board

安裝完成後,必須重啓 DSH 宿主(重新執行 dsh web),並在瀏覽器刷新頁面。此時側邊欄會出現「進程面板」入口。

典型用法

要讓面板正確顯示服務和日誌,需要正確啓動服務。

1. 帶日誌標記啓動(Shell/Bash)
啓動服務時,通過環境變量 DSH_PB_LOG 指定日誌文件,並將標準輸出重定向到該文件。

export DSH_PB_LOG=/tmp/my-service.log
java -jar app.jar >> /tmp/my-service.log 2>&1 &

2. 顯式登記並啓動(API)
如果需要更精細的控制,可以通過 API 顯式登記服務信息(名稱、啓動參數、工作目錄、端口、日誌文件),之後面板可直接點擊「啓動」按鈕重放。

curl -X POST http://127.0.0.1:3080/api/plugins/process-board/start \
  -H 'content-type: application/json' \
  -d '{"name":"my-svc","argv":["java","-jar","app.jar"],"cwd":"/path/to/app","port":8080,"logFile":"/tmp/my-svc.log"}'

3. PowerShell 啓動
在 Windows PowerShell 中,可以使用 Start-Process 並配合重定向。

$env:DSH_PB_LOG = "$env:TEMP\my-service.log"
Start-Process java -ArgumentList '-jar','app.jar' -RedirectStandardOutput $env:DSH_PB_LOG -WindowStyle Hidden

注意事項

  • Mac 平臺限制:當前版本在 Mac 上安裝後插件可加載,但掃描器返回空。原因是 scanner.js 中存在 process.platform !== 'win32' 的提前返回邏輯。探測和停止層已跨平臺就緒,但進程掃描功能暫未在 Mac 上生效。
  • 安裝路徑限制:使用 link: 方式安裝時,只接受本地目錄路徑。例如 dsh plugin --profile web add link:~/dsh-process-board 是有效的,而 link:https://... 會被解析失敗。
  • 運行時依賴:插件客戶端爲純 DOM 實現,零運行時依賴。

結語

dsh-process-board 是一個面向 DSH 開發者的實用工具,通過環境變量和進程樹分析,實現了服務歸屬的可視化與標準化管理。對於需要頻繁管理後臺服務的智能體開發場景,它能夠顯著提升調試和運維效率。

GitHub 倉庫

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

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

小夜