前言¶
DeepSeek Harness (DSH) 是一個智能體開發工作流工具。傳統更新方式通常涉及全量 npm install,這會重建整個包倉庫,容易在內存受限環境(如 Docker)中觸發 OOM。dsh-updater 旨在解決這一更新效率與穩定性問題。
什麼是 dsh-updater¶
dsh-updater 是一個社區插件,由 Takinggg 維護,採用 MIT 協議。它不 fork DSH 或執行 git pull,而是通過增量下載 npm tarballs 來更新。
核心功能¶
該插件提供以下能力:
1. 一鍵更新:在 DSH 界面中直接觸發更新。
2. 增量更新:複用現有引擎(node_modules),僅下載發生變化的 @deepseek-ai/* 包。
3. 保留第三方依賴:當版本匹配時,保留第三方依賴(如 commander、koffi)。
4. 備份與回滾:更新前自動備份引擎,並在更新失敗時自動回滾。
安裝與啓用¶
安裝該插件需要先克隆倉庫,然後使用絕對路徑添加。不要使用 github:owner/repo 這種非固定引用方式。
- 克隆插件倉庫:
git clone https://github.com/Takinggg/dsh-updater.git
- 添加插件到 DSH(使用絕對路徑):
dsh plugin --profile web add /absolute/path/to/dsh-updater
- 啓用後,在 DSH 界面中打開 Settings → Updates 面板即可進行操作。
典型用法¶
在 DSH 的設置面板中,可以查看更新進度和結果。插件支持通過環境變量控制部分行爲:
* DSH_UPDATE_MODE:覆蓋顯示設置。
* DSH_UPDATE_RESTART:控制進程退出行爲(強制重啓或保持運行)。
* DSH_HOME:設置備份、緩存和暫存目錄的根路徑(默認爲 ~/.dsh)。
適用場景與注意事項¶
- 適用場景:需要在 Docker 容器、nvm 全局安裝、Windows
%APPDATA%\npm或其他可寫位置運行 DSH 的環境。 - 安全與限制:
- 這是一個社區插件,非 DeepSeek 官方軟件。
- 插件不會運行
sudo或curl | bash。 - 目標版本必須是 npm registry 中發佈的
next或latestdist-tag。 - 插件會校驗 tarball 路徑防止目錄遍歷攻擊。
- 如果驗證失敗,會自動從
engine-bak恢復。
總結¶
dsh-updater 通過增量更新和自動回滾機制,解決了 DSH 在特定環境下全量安裝導致內存溢出的問題。對於需要頻繁更新或部署在資源受限環境的用戶,該插件提供了一個可行的維護方案。