前言¶
DeepSeek Harness(簡稱 dsh)是 DeepSeek 開源的 Agent 運行時,官方口號是「一切皆插件」:模型、工具、技能、會話、沙箱、存儲、循環、調度,以及 Web UI 本身,都可以在配置層替換,而不必改核心代碼。當前仍處於開發者預覽階段,API 會持續變動。
Web UI 默認用 ui-workspace 管理左側的工作區與會話。會話一多,扁平列表就不容易按項目定位:最近用過的會話、某個工作區裏按日期排開的記錄、還沒歸組的會話,會擠在同一條時間線上。社區插件 dsh-plugin-ya-workspace-sidebar 專門替換這塊瀏覽界面:頂部固定 5 條全局最近會話,下方改成 Workspace → Session 二級菜單,並用麪包屑標明當前位置。
需要先說明兩點。第一,社區插件目錄(例如 deepseek-harness-plugin.com)是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。第二,同類界面增強裏還有 DSH-better-sidebar,那是右側欄/底部面板工作臺,並開放 ctx.betterSidebar 給其他插件註冊頁面;本文介紹的插件只替換工作區/會話瀏覽器,兩者不要混用成同一個東西。
這是什麼¶
dsh-plugin-ya-workspace-sidebar 是一款面向 DSH Web UI 的界面增強插件,由 HuanLinOTO 維護,npm 包名爲 @huanlin/dsh-plugin-ya-workspace-sidebar。截至 2026-08-18,npm 最新版本是 0.3.0(2026-08-16 發佈),GitHub 倉庫星標爲 11,目錄頁同步到的星標爲 8,以倉庫頁面爲準。主要語言是 TypeScript,客戶端聲明的運行平臺是 web。
它要解決的問題很具體:在不改 DSH 源碼、也不重做會話存儲的前提下,把官方工作區側欄換成「最近會話 + 工作區二級導航 + 麪包屑」的信息架構。搜索、添加工作區、重命名、刪除、Fork、歸檔仍然走 DSH 原生 Host 能力,插件自己主要負責瀏覽結構。
實現上它是 bundle 插件。cordis.patch.yml 會禁用官方 ui-workspace,再插入 @huanlin/dsh-plugin-ya-workspace-sidebar。官方 ui-workspace 同時佔用 sidebar.workspaces 和 conversation.hero.workspace 兩個插槽,替換插件必須把這兩個座位都接上,對話頁頂部的工作區選擇器纔不會空掉。Host 側的 apply() 是空實現,邏輯集中在瀏覽器端。倉庫裏的 dsh/ 只作類型和行爲參考,插件不會修改 DSH checkout。
核心功能¶
結合目錄頁介紹、倉庫 README、AGENTS.md 以及 src/client 源碼,當前已覈實的能力如下。
1、頂部全局最近會話。側欄上方固定展示最多 5 條最近會話,按 updatedAt 新到舊排序。搜索進行時這塊會隱藏,避免和搜索結果搶位置;無搜索時可以摺疊。子 Agent 來源的會話、已歸檔會話不會出現在這份列表裏。
2、Workspace → Session 二級菜單。第一級列出真實工作區,並額外提供一個虛擬的「未分組」項,用來收未歸屬任何工作區的會話。點進某個工作區後,第二級只顯示該工作區的會話。工作區行會顯示會話數量和路徑。
3、麪包屑導航。進入二級後,頂欄變成「工作區 > 當前工作區名稱」。點「工作區」返回一級列表。倉庫說明裏寫過:手動點麪包屑返回後,會停在根級,直到當前會話 id 變化。
4、按本地日曆日期分組。真實工作區的會話按本機日曆分成「今天 / 昨天 / 更早日期」,組按日期從新到舊,組內按 updatedAt 從新到舊。未分組列表仍按最近活動平鋪,不做日期分組。從 0.2.0 起,日期分組視圖關閉了拖拽排序。
5、搜索。側欄提供會話搜索,本地會匹配會話標題和工作區名稱;同時調用 Host 的 sessions.search。內容搜索不可用時,界面會提示僅顯示名稱匹配。搜索防抖是 250 毫秒。
6、工作區與會話操作仍走 Host。添加工作區、在工作區裏開新會話、重命名工作區/會話、刪除工作區、Fork 會話、歸檔會話,都調用 ctx.workspaces / ctx.sessions。刪除工作區的文案寫得很清楚:只從工作區列表裏移除該項,文件夾和會話記錄會保留。
7、歸檔/刪除顯示模式(0.3.0)。會話行的破壞性操作默認是「歸檔」。可以切換成「刪除」外觀:紅色垃圾桶圖標,並彈出二次確認。底層調用仍是 Host 的 archiveSession,作用是讓會話從分組界面消失,日誌還在。這個偏好寫在瀏覽器 localStorage 鍵 ya-workspace-sidebar:action-mode 裏,不跨設備同步。
8、中英文案。插件註冊了 ya-workspace-sidebar 語言包,側欄文案有中文和英文兩套。會話行還能顯示進行中、等待交互、已完成等狀態。
安裝與啓用¶
先確認本機已經能打開 DSH Web UI。官方快速啓動方式是:
npx @deepseek-ai/dsh web
默認地址是 http://127.0.0.1:3080。插件要求 Node.js 不低於 22。
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可:
dsh plugin add github:HuanLinOTO/dsh-plugin-ya-workspace-sidebar
如需可復現安裝,目錄頁建議固定 commit 哈希。當前 0.3.0 對應的提交是 d8bcf353c77beb2d99b8e242a3d7dca2c11a820a,可以寫成:
dsh plugin add github:HuanLinOTO/dsh-plugin-ya-workspace-sidebar#d8bcf353c77beb2d99b8e242a3d7dca2c11a820a
倉庫 README 把 npm 安裝標爲推薦,並且顯式加了 web profile,因爲這是瀏覽器端插件:
dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar
本地開發(熱更新)在 README 裏的示例是:
dsh plugin --profile web add "link:D:/Projects/deepseek-harness/ya-workspace-sidebar"
路徑要換成你自己的倉庫目錄。改源碼後需要重新執行 pnpm run build,再重啓 dsh web,並在瀏覽器裏硬刷新。倉庫發佈時會提交預構建的 lib/,其中 lib/client.js 用 window.__ModuleLoader__.load() 包裝。
目錄頁有一條安全提示,需要照原文理解:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。
使用方法¶
安裝完成後,按 README 重啓 Web UI 並硬刷新瀏覽器。官方工作區側欄會被替換成下面這套結構。
1、看最近會話。側欄頂部是「最近會話」,最多 5 條,帶相對時間(剛剛、n分鐘、n小時等)。點某一條即可打開對應會話。
2、按工作區往下鑽。下方第一級是工作區列表。點某個工作區進入第二級,只看這個工作區的會話;真實工作區裏會按「今天 / 昨天 / 日期」分組。沒歸組的會話在「未分組」裏。點麪包屑的「工作區」返回一級。
3、搜索會話。在搜索框輸入名稱或關鍵詞。有匹配結果時,頂部最近會話會讓位給搜索列表。Host 內容搜索失敗時,會退回名稱匹配。
4、管理工作區。側欄提供「添加工作區」。真實工作區的菜單裏可以重命名或刪除;刪除會再確認一次,並且只移出列表。工作區行上的加號會在該工作區開新會話。
5、管理會話。會話菜單提供重命名、分叉、歸檔(或刪除外觀)。右上角可以切換歸檔/刪除模式。刪除模式只改變按鈕樣式和確認框,不會改成另一套 Host API。
6、對話頁頂部的工作區選擇。因爲插件同時接管了 conversation.hero.workspace,對話英雄區裏選工作區、添加工作區仍然可用,不會因爲禁用了官方 ui-workspace 而缺一塊。
以上步驟都來自倉庫 README、AGENTS.md 和客戶端源碼,沒有額外配置項需要手寫。
適用場景與注意事項¶
適合已經在 DSH Web UI 裏開了多個工作區、會話數量比較多,希望按「項目 → 會話」、再按日期回看記錄的人。如果你主要用終端 TUI,或者需要的是文件預覽、Git、子智能體那一類右側工作臺,這個插件對不上,那些需求應看 dsh-TUI、DSH-better-sidebar 等其他界面增強插件。
使用前有幾件事需要注意。
1、只面向 Web。package.json 裏 dsh.client.platform 爲 web,不要指望它改 headless 或純終端界面。
2、它會禁用官方 ui-workspace。同一套側欄座位上不要再疊另一個工作區瀏覽器。裝完後如果側欄空白,優先檢查是否硬刷新、以及 web profile 是否裝到了正在運行的那個實例。
3、日期分組和拖拽互斥。0.2.0 爲了按本地日期分組,去掉了會話拖拽排序;不要再按舊 README 片段去找拖拽。
4、所謂「刪除會話」不是物理刪日誌。源碼註釋寫明:Host 對外只提供 archiveSession,刪除模式只是把歸檔做成更醒目的確認流程。工作區「刪除」也只是移出列表。
5、許可證。package.json 與倉庫 LICENSE 聲明爲 AGPL-3.0。GitHub 和社區目錄目前把許可證顯示成 NOASSERTION,這是元數據識別結果,以倉庫內的許可證文本爲準。AGPL 對網絡服務有源碼 reciprocal 義務,二次分發或改過再掛出去之前應自己讀一遍條款。
6、權限與預覽版風險。插件以當前 dsh 進程權限運行;DSH 仍在開發者預覽,插槽和 Host API 都可能不兼容升級。安裝前看源碼,生產或共享環境建議固定 commit。
7、社區目錄不是官方商店。本文依據的是社區目錄頁和 GitHub/npm 倉庫,不是 DeepSeek 官方應用列表。
小結¶
dsh-plugin-ya-workspace-sidebar 做的事情很收束:替換 DSH Web 的工作區側欄信息架構,把全局最近會話、工作區二級菜單、麪包屑和按日分組疊在官方 Host 能力之上,而不去改會話存儲,也不去改 DSH 源碼。會話多、工作區多的時候,這條導航路徑比扁平時間線清楚。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-ya-workspace-sidebar/
GitHub:https://github.com/HuanLinOTO/dsh-plugin-ya-workspace-sidebar
npm:https://www.npmjs.com/package/@huanlin/dsh-plugin-ya-workspace-sidebar