前言¶
用 DeepSeek Harness(DSH)跑 agent 會話時,一個常見的問題是:agent 在工作過程中創建和修改了大量文件,也可能通過工具提交了一些狀態變更,但這些信息並不直觀。想確認 agent 到底動了哪些文件、產出了哪些交付物、提交了哪些 Memory 提案,往往需要離開對話界面去翻文件系統。
dsh-workshpace-plugin 針對的就是這個場景。它在本地 DSH Web UI 的會話視圖中添加一個 Workspace 標籤頁,讓你在不離開會話的前提下檢查 agent 觸及的文件、審閱會話 artifacts、預覽有邊界的內容,並管理本地 Workspace Memory。這也符合 DSH「一切皆插件」的思路:能力以插件形式接入,不改動外殼。
下面介紹這個插件的定位、功能、安裝與使用。
這是什麼¶
dsh-workshpace-plugin 由 kaiqiangh 維護,README 標題爲 DSH Workspace Plugin,package.json 中的版本號爲 0.8.0。一句話定位:在本地 DeepSeek Harness Web UI 中添加 Workspace 標籤頁,用於檢查 agent 觸及的內容、審閱只讀 Sub-agent Trace、審閱會話 artifacts、預覽內容、檢查 Git 變更,並管理受治理的本地 Workspace Memory,全程不離開對話。社區目錄將其歸類爲「記憶」,與其 Workspace Memory 管理功能相符。
一個命名細節需要留意:倉庫/目錄名爲 dsh-workshpace-plugin,而 package.json 中的包名是 dsh-workspace-plugin,兩者拼寫不一致。安裝命令引用的是倉庫目錄名,輸入路徑時別拼錯。
核心功能¶
以下能力均來自倉庫 README:
1、會話視圖中的 Workspace 標籤頁。位於 Trajectory 旁邊;v0.2 起移除了舊的浮動面板與右下角 pill,該標籤頁是唯一入口。
2、只讀 Sub-agent Trace。位於 Workspace 各標籤頁上方,提供帶邊界的子代理後代樹與選中子項詳情,用於跟進本地 Session-backed 子 Agent;不可用或損壞的子項會保留標籤,而不是顯示爲空。
3、會話摘要塊。Workspace 頂部按需彙總 agent 觸及的內容:按類型統計的文件、artifacts、memory/decision 計數、活動 span。因爲是按需派生,活躍會話與重新打開的會話表現一致。
4、Artifacts 標籤頁。展示按類型分組、可按名稱搜索的會話交付物,逐項顯示大小、修改時間、預覽狀態,支持複製路徑與一鍵下載。預覽爲只讀多標籤形式;Markdown 預覽可渲染相對圖片與 mermaid 圖,PDF 支持流式預覽。
5、Memory 標籤頁。可查看、創建、驗證(Verify)、置頂、歸檔、遺忘項目/會話 Memory 記錄。Agent 通過 workspace_memory_propose 提交的提案存儲爲 unverified,需要人工 Verify 或 Reject。v0.2 起會話自動寫入器按會話從 agent 工具活動派生 fact 記錄。支持 Export 導出。
6、Git 標籤頁(承載 Changes 與 History 兩個視圖)。頂部是倉庫狀態頭:分支加短 head、dirty/clean、staged/unstaged/untracked 計數、ahead/behind。Changes 按三個區分組、可按狀態過濾,提供彩色行號的 unified/split diff、+N −M 統計與複製 diff;History 提供提交列表與逐提交的文件/diff 詳情。非 Git 工作區顯示乾淨的 “not a Git repository” 狀態。
7、界面細節。三個標籤頁共享視覺系統,支持自動刷新、友好的空/錯誤狀態、鍵盤可操作。樣式是 scoped 的,不會全局改變 Harness 外殼。全部文案提供英文與中文並跟隨 Harness 應用語言,瀏覽器語言僅作回退。
安裝與啓用¶
環境要求:Node >= 22.18.0。
先從本倉庫構建插件。npm run build 會把產物寫入 lib/,並將 mermaid vendor bundle 複製到 lib/assets/:
npm install
npm run build
再在 Harness 項目目錄運行註冊命令(相對路徑按本倉庫的檢出位置調整)。註冊信息會存入本地 Harness profile:
dsh plugin --profile web add ../dsh-workshpace-plugin
然後啓動 Web UI,瀏覽器打開 http://127.0.0.1:3080/:
dsh web
兩點提醒:重建插件後需重啓 Web UI 才能加載最新 bundle;只有註冊或鏈接路徑變化時才需要重新運行 add 命令,重建已鏈接的插件只需重啓。
典型用法¶
README 給出的使用流程如下:
1、打開 Harness Web UI,選擇模型。
2、選擇或創建 Workspace-backed session。
3、開始對話,讓 agent 創建或檢查文件。
4、打開會話視圖中的 Workspace 標籤頁。
5、查看標籤頁上方的 Sub-agent Trace,跟進本地 Session-backed 子 Agent。
6、按需使用 Artifacts / Memory / Git 標籤頁。
如果需要本地開發驗證,可運行以下命令:
npm test
npm run check
npm run build
npm run smoke:compat
適用場景與注意¶
適合的開發者:需要在會話過程中或會話結束後覈對 agent 行爲的人——確認 agent 改了哪些文件、審閱會話產出的 artifacts、處理 agent 提交的 Memory 提案、檢查工作區 Git 狀態,同時不想離開對話界面。
使用時注意以下幾點:
1、Artifacts 和 Memory 讀取的是會話級數據而非全局文件列表,需從活躍的 Harness 會話打開 Workspace;Git 視圖要求工作區根目錄是 Git 倉庫。
2、v0.6 之前創建的歷史會話無法重新打開。舊版本曾向會話日誌持久化自定義 workspace/summary 事件,DSH 的冷持久化路徑拒絕加載含未知非可忽略事件類型的日誌;受影響日誌無法安全重寫,這些會話不可恢復,只能刪除或新建會話。v0.6 起不再持久化該事件,新會話可正常重新打開。
3、若 Web UI 在 v0.6 重建之前啓動,Markdown 圖片與 mermaid 圖可能不顯示,需重啓 dsh web 以註冊新路由(/workspace/vendor/mermaid.js、/workspace/resource 的 Range/ETag)。
4、Memory Export 下載到空 bundle("records":[])僅在會話既無 Memory 也無 agent 文件活動時屬預期;活躍會話即使沒有手動記錄,也會導出自動派生的 facts。
5、舊 Web 進程可能提供緩存 bundle(例如舊浮動面板仍然可見),需停止當前進程並重新運行 npx @deepseek-ai/dsh web。
另外必須說明:插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。該插件的已抓取資料中未提及許可證信息,安裝前請自行到倉庫確認。想深入瞭解設計,可參考倉庫內的 CONTEXT.md(項目術語)、docs/adr/(架構決策)、docs/DSH_Workspace_PRD.md 與 docs/DSH_Workspace_ARD.md(產品/架構文檔),以及 docs/MEMORY_STORAGE.md(Memory 存儲細節)。
結尾¶
dsh-workshpace-plugin 把 agent 會話中分散的文件、artifacts、Memory 與 Git 狀態收攏到 Web UI 的一個標籤頁裏,讓覈對 agent 行爲這件事留在對話流程內完成,適合在本地認真使用 DSH 的開發者。
- 社區目錄頁:https://www.skillhub.cn/plugins/kaiqiangh/dsh-workshpace-plugin (該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/kaiqiangh/dsh-workshpace-plugin