前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在多會話並行開發或複雜任務拆解中,開發者常面臨上下文混亂、記憶難以跨會話共享、以及長對話歷史導致的 Token 消耗劇增等問題。dsh-projects-mode 是一個爲 DSH Web GUI 打造的客戶端插件,它引入了 WorkBuddy 風格的「項目模式」,旨在通過統一的項目視圖和上下文管理機制,解決會話歸屬模糊、指令更新滯後和上下文冗餘的問題。
核心功能¶
全屏管理臺與側邊欄入口
插件在側邊欄功能行新增「📁 項目」入口,點擊後會在中間欄全屏打開項目管理臺。這是所有項目管理的操作中心,支持創建、重命名和刪除項目(刪除操作有二次確認,僅刪除分組配置,不影響底層會話)。
實時上下文注入
這是該插件的核心差異化能力。它支持爲項目編寫「指令」和「記憶」:
* 指令:通過 DSH 的 system-prompt 動態段實現。寫入後,指令會實時注入到本項目所有會話的上下文中,修改後立即生效,無需重啓會話。
* 記憶:跨會話共享的記憶塊。保存後,記憶內容會在下一個模型步驟中原位替換刷新,而非僅僅注入一次快照,確保上下文始終最新。
自動項目簡報
爲解決新會話建立時需要拖拽老會話歷史導致 Token 消耗巨大的問題,插件會從本項目最近會話的真實歷史中蒸餾出一份簡報(包含標題、需求和會話時間)。
* 效果:新會話僅需約 1 千 token 的簡報,相比拖拽完整歷史可節省 95% 以上的 Token。
* 機制:簡報按會話緩存 30 分鐘,之後每步原位刷新。
Token 計量
在編輯指令或記憶的輸入框中,插件會實時估算當前內容的 Token 佔用。超過閾值(如 1500)會顯示黃色警告,超過 4000 則顯示紅色,提醒開發者精簡內容。
工作目錄自動歸屬(v0.4)
在項目設置中指定工作目錄路徑後,該目錄及其子目錄下發起的會話會自動歸入該項目,無需手動拖拽。
* 優先級:當多個項目路徑重疊時,遵循「最長前綴優先」原則。
* 交互:手動歸入會話會覆蓋自動歸屬,且「退出選擇」後不會被自動歸屬重新拉回。
失效歸屬清理與維護
* 清理:項目詳情頁提供「🧹 清理失效歸屬」功能,可一鍵移除指向已刪除會話的記錄。插件啓動時會自動執行一輪清理。
* 活躍時間:會話的活躍時間基於日誌文件的修改時間(mtime)計算,反映真實最後活動時刻。
* 狀態行隱藏:插件會自動隱藏側邊欄底部的「Cordis Plugin · N running」狀態行。
API 加固與安全
* 新增 Host 頭校驗和 Origin 同源校驗,防止 DNS rebinding 和惡意頁面跨域驅動 API。
* 簡報緩存設置了上限(300 條)並在歸屬變更時修剪,防止長期運行導致內存膨脹。
安裝與啓用¶
請確保環境滿足依賴要求:Node.js >= 20。
# 克隆插件到指定目錄
git clone https://github.com/BertramWang12399/dsh-projects-mode.git ~/.dsh/plugins/dsh-projects-mode
# 通過 DSH CLI 註冊插件
dsh plugin --profile web add link:$HOME/.dsh/plugins/dsh-projects-mode
安裝完成後,需要重啓 dsh web 進程(DSH Desktop 會自動拉起子進程)。在瀏覽器中,請執行硬刷新(Mac: Cmd+Shift+R,Windows: Ctrl+Shift+R)以清除緩存並加載新代碼。
典型用法¶
- 啓動項目臺:點擊側邊欄的「📁 項目」,在中間欄打開全屏管理臺。
- 管理上下文:在管理臺中編寫項目的「指令」和「記憶」,保存後,新創建的會話或當前會話會立即獲得這些上下文。
- 新建會話:在項目詳情頁點擊「✨ 新建會話」,系統會自動注入項目簡報,並立即將新會話歸屬到該項目。
- 監控 Token:在編輯指令或記憶時,觀察輸入框上方的實時 Token 估算,避免超出模型限制。
- 利用工作目錄:將項目的工作目錄設置爲
/path/to/project,在該目錄下打開新會話時,無需手動操作,系統會自動將其歸入項目。 - 快速切換:在對話區右上角,點擊浮動的項目徽標,可以快速切換當前會話所屬的項目或移出項目。
- 維護會話列表:在項目詳情頁使用「🔎 過濾會話標題」快速定位特定會話,或在需要時使用「🧹 清理失效歸屬」清理數據。
注意事項¶
- 數據存儲:插件的數據文件保存在
~/.dsh/.dsh-projects.,卸載時建議手動保留該文件(或遷移)。 - 兼容性:該插件在 macOS arm64 平臺及 DSH Desktop(DSH 0.1.1-rc.2)上經過驗證,理論兼容 Linux 和 Windows。
- 日誌寫入:插件不會向
session log寫入任何自定義事件,以避免觸發上游事件白名單導致的讀取問題。 - 依賴:需要 Node.js 版本大於等於 20。
結語¶
dsh-projects-mode 通過將 DSH 的會話管理與項目化視圖相結合,提供了一套從指令注入、記憶同步到 Token 優化的完整解決方案。對於需要在 DSH 中進行長期、多會話協作的開發者而言,這是一個實用的工具。