前言¶
DeepSeek Harness (DSH) 採用 “Effects” 機制管理插件生命週期,允許插件隨其所有者一同銷燬。這種機制在處理資源清理時非常強大,但在插件加載失敗、處於掛起狀態或卸載緩慢時,通過原始日誌排查具體問題非常困難。
dsh-lifecycle-inspector 是一個獨立構建的社區插件,旨在將 DSH 內部的生命週期狀態轉化爲操作員友好的儀表盤和簡潔的診斷命令,幫助開發者快速定位問題。
這是什麼¶
dsh-lifecycle-inspector 是一個 DeepSeek Harness 插件,用於可視化 Cordis Effects 的生命週期診斷、檢查插件健康狀態以及驗證 Teardown 清理過程。
- 維護者: Rex16200513
- 許可證: MIT License
- 定位: 獨立社區插件,專門爲 DSH 設計,遵循 DSH 的插件優先架構,通過觀察現有 Cordis 生命週期而非修改 Agent 循環來工作。
核心功能¶
該插件提供以下能力:
- 原生 DSH Web 儀表盤: 在 Settings → Plugins → Lifecycle 中提供健康總覽、搜索、僅顯示問題項的過濾、刷新以及可展開的 Effect 詳情。
- 可讀的生命週期報告: 將底層的 Effect 標籤歸類爲服務、事件監聽器、命令、工具、子插件和清理敏感資源。
- Fiber 健康信號: 高亮顯示失敗的、掛起的和卸載中的插件,並區分活躍、禁用、已銷燬和未掛載的條目。
- Teardown 觀察: 記錄最近的 Fiber 轉換,並標記超過可配置閾值的清理操作。
- Agent 可診斷性: 暴露只讀的
lifecycle_inspect工具,同時支持/lifecycle命令。 - 生命週期安全實現: 插件本身的命令、工具、事件監聽器、HTTP 路由、本地化和 UI 槽位都註冊爲可銷燬的 Effects。
- 雙語支持: UI 和文檔支持英語和中文,跟隨 DSH 的當前語言環境。
安裝與啓用¶
安裝前請確保環境滿足要求:
* DSH Web profile
* Node.js ^22.19.0 || >=24.0.0
使用以下命令安裝:
dsh plugin --profile web add github:Rex16200513/dsh-lifecycle-inspector
安裝完成後,重啓 DSH Web 進程,並在 Settings → Plugins → Lifecycle 中找到該插件。
使用方法¶
插件提供命令行工具和 Agent 工具兩種方式。
命令行¶
/lifecycle list
/lifecycle list --verbose
/lifecycle inspect lifecycle-inspector
/lifecycle inspect <plugin-id> --verbose
list:提供簡短的健康摘要。inspect:接受 loader 路徑、配置的入口 ID、完整包名或不帶dsh-前綴的包名。僅在需要精確 Effect 標籤時添加--verbose。
Agent 工具¶
Agent 可以調用只讀的 lifecycle_inspect 工具,該工具接受一個可選的 plugin 參數,用於觀察運行時狀態,不會卸載或修改插件。
配置說明¶
插件通過 DSH patch 安裝,包含以下默認配置:
- insert:
- id: lifecycle-inspector
name: dsh-lifecycle-inspector
config:
slowTeardownMs: 2000
historyLimit: 100
slowTeardownMs: 控制何時將觀察到的 teardown 報告爲慢速。historyLimit: 限制保留在內存中的 Fiber 轉換歷史記錄數量。
適用範圍與限制¶
該插件驗證的是 Cordis Effects 樹是否被清理,即 Cordis 完成了它管理的每個註冊銷燬器的清理。它不能證明插件沒有創建 DSH 之外的進程、定時器、套接字、觀察者或其他資源。
雖然外部資源探測是自然的功能擴展方向,但它們應保持爲獨立的提供者:核心檢查器應保持只讀,並報告權威的 Cordis 狀態。
結語¶
dsh-lifecycle-inspector 提供了從內部視角審視 DSH 插件生命週期的能力,適合需要嚴格監控資源清理過程的開發者使用。其文檔和 UI 的雙語特性降低了使用門檻。