前言¶
DSH 官方側欄按工作區列出會話,但默認能力有限:沒有歸檔篩選、沒有標題搜索、沒有批量操作、沒有隻讀預覽,也沒有一個地方可以持久告訴模型「該怎麼稱呼我、我的職業是什麼、有哪些長期指令」。實際用下來,會話一多就得靠翻找,模型的行爲設定也只能靠每次在對話框裏重複。
tsechiyuan/dsh-session-manager 就是針對這兩塊缺口的插件。它由 Tsechiyuan 維護,版本 1.0.0,MIT 許可證,要求 Node.js ≥ 22.13.0、dsh web ≥ 0.2.0-rc.2。插件是單包混合結構,Host 半負責路由、存儲和系統提示注入,Client 半負責全部界面,四個功能各自有獨立開關,改開關和改設定都不需要重啓 dsh web。
下面按功能、安裝、用法的順序介紹。
這是什麼¶
一句話:它是一個會話管理頁面 + 會話設定系統,外加官方側欄的兩種工作區過濾。
- 會話管理頁:左側按「全部會話 / 未分組 / 各工作區」瀏覽,右側列出該範圍的會話,提供歸檔三態篩選、標題搜索、行內重命名與歸檔、批量歸檔、全寬只讀預覽。
- 會話設定頁:全局和工作區兩級,保存稱呼、職業、給模型的指令,Host 半在組裝系統提示時注入。
- 側欄過濾:複用了原
dsh-workspace-focus的思路,提供「只顯示最近使用的工作區」和「主動隱藏工作區」兩個按鈕。 - 四個功能分別由
page、settings、sidebarRecent、sidebarHide四個開關控制,默認全開。
安裝與啓用¶
插件沒有提供 dsh plugin add 形式的命令行安裝方式,安裝走插件頁。
前置條件¶
- 已安裝並運行 dsh web,版本 >= 0.2.0-rc.2
- Node.js >= 22.13.0
- 使用本地目錄安裝時,準備好插件的絕對路徑,例如 /path/to/dsh-session-manager
方式 A:讓 Agent 安裝(需要批准)¶
幫我安裝 dsh 插件 https://github.com/Tsechiyuan/dsh-session-manager
方式 B:手動安裝¶
- 打開 DSH 插件頁,點擊「增加插件」。
- 輸入倉庫地址
https://github.com/Tsechiyuan/dsh-session-manager;本地開發也可以填插件目錄的絕對路徑。 - 重啓
dsh web(首次安裝必須重啓)。 - 打開左側欄「會話管理」,或側欄「更多」→「會話設定」。
首次安裝後必須重啓一次;之後的加載規則見插件 README 的兼容性章節。
卸載¶
dsh plugin --profile web remove dsh-session-manager
執行前需要先在 profile 的 bundle 列表(dsh.profile.bundles)中移除 "dsh-session-manager",然後重啓 dsh web。存儲文件 $DSH_HOME/storages/session_manager_settings.json 不會被自動刪除,需要時手動刪除。
會話管理頁¶
入口是左側欄「會話管理」,是一個全寬頁面,左側是範圍列表,右側是會話列表。範圍列表包含「全部會話」「未分組」和每個工作區(帶會話數)。列表不顯示子代理會話和空白會話。
篩選與搜索只作用於當前範圍:
- 歸檔三態:默認只看未歸檔,可切「全部」或「僅已歸檔」。
- 搜索:按標題或會話 ID 子串過濾。
- 「全部會話」在未搜索時按工作區分組顯示,搜索時改爲平鋪列表。
每行顯示標題、置頂 / 運行中 / 已歸檔狀態、創建時間、上次使用時間、token 用量。創建時間來自 Host 路由 GET /times,只讀查詢,不會激活會話;上次使用時間來自 sessionListMetadata.lastPromptAt,沒有則回退 updatedAt。列表顯示相對時間,懸停可看精確時間。
行尾操作:
- 重命名:只改標題,不喚醒 Agent。
- 歸檔 / 取消歸檔:歸檔仍在運行的會話時先確認「停止並歸檔」。
- 打開會話:切回對話視圖;已歸檔會話需先取消歸檔。
- 置頂:與官方工作區欄會話行的「置頂會話」共享同一份 Host 狀態,兩邊實時同步。
多選模式下可以批量歸檔、批量取消歸檔。批量歸檔會先處理能直接歸檔的會話,仍在運行的會話提示數量,確認後才處理;其餘失敗項單獨提示。
只讀詳情頁默認加載最近 30 條記錄,通過 remote.session.events 分頁拉取,打開詳情不會激活會話。工具調用摺疊成一行,thinking 不展示。
需要注意的限制:插件不支持刪除會話,DSH 目前沒有對應的 Host / Client API,用「歸檔」代替即可(可撤銷、不丟數據);只讀預覽是簡化渲染,附件只在文本末尾顯示 [n× 附件] 計數佔位。
會話設定¶
入口是側欄「更多」→「會話設定」。設定存兩份:全局一份,每個工作區一份。會話按它所屬的工作區解析生效值:
| 場景 | 注入內容 | sources |
|---|---|---|
| 未分組會話 / 子代理會話 | 只有全局設定 | global 或 none |
工作區設定存在且 override=false |
全局在前、工作區在後疊加 | global+workspace |
工作區設定存在且 override=true |
只注入工作區設定 | workspace 或 none |
工作區 override=true 且工作區總開關關閉 |
什麼都不注入 | none |
| 全局總開關關閉、工作區不覆蓋 | 只注入工作區設定 | workspace |
未分組會話與子代理會話只受全局設定影響,不繼承父會話。
表單字段和限制:
- enabled 布爾 總開關
- name <= 40 字 注入爲「請稱呼我爲「…」」
- occupation <= 60 字 8 個預設或自定義
- instructions <=1500 字 實時字數計數
- override 僅工作區 true = 只注入工作區設定;false = 與全局疊加
職業預設爲:教師、學生、工程師、產品經理、設計師、運營、研究員、自由職業,另有「自定義」。「會話稱呼」爲空且當前環境已登錄 DeepSeek 賬號時,打開表單會用登錄用戶名自動預填;只有點保存纔會寫入存儲。
保存後從匹配會話的下一輪請求開始生效,不會改寫正在生成的回覆。注入到系統提示的文本形如:
## 會話設定
以下是用戶爲本會話保存的個性化設定,請按此調整回覆:
### 全局設定
- 會話稱呼:請稱呼我爲「涼」。
- 我的職業:貝斯手。請在講解深度、術語和舉例上適配這一身份。
- 給模型的指令(請嚴格遵守):
回答用中文;術語第一次出現時用一句話解釋。
### 工作區設定(deepseek-harness)
- 會話稱呼:請稱呼我爲「涼」。
指令的每一行會縮進兩個空格,空行保持爲空。沒有任何有效內容時,整個段落不注入。
側欄過濾¶
兩個按鈕都在官方側欄工作區欄的標題行,搜索按鈕右側,功能獨立。
- 最近工作區(時鐘按鈕):只顯示最近使用的 1–10 個工作區,默認 5;當前會話所在工作區始終顯示。
- 主動隱藏工作區(眼睛按鈕):勾選「保留」的工作區,其餘隱藏;當前會話所在工作區自動保留。未勾選任何工作區時,應用後隱藏全部工作區(當前會話所在工作區除外)。側欄使用「單列表」分組時眼睛按鈕不可用,需先切回按工作區分組。
- 兩者同時開啓時,只顯示兩邊都保留的工作區。
功能開關¶
開關位置:插件頁 → dsh-session-manager 行 →「配置」。
| 開關 key | 界面名稱 | 關閉後的行爲 |
|---|---|---|
page |
會話管理頁 | 導航入口保留,頁面顯示「功能已關閉」;GET /times 返回 404 |
settings |
會話設定頁 | 側欄菜單行保留;/settings、/settings/clear 返回 404;系統提示不再注入;兩個 Agent 工具報錯 |
sidebarRecent |
只顯示最近的工作區 | 時鐘按鈕和設置項立即消失 |
sidebarHide |
主動隱藏工作區 | 眼睛按鈕和設置項立即消失 |
開關存在 Host(GET/POST /_dsh/session-manager/features),Host 半在每次請求、每次工具調用、每次組裝系統提示時讀取,所以保存後立即生效,無需刷新頁面。關閉任何開關都不會清空已保存的設定。只有改代碼才需要重啓 dsh web。
數據與安全¶
設定存儲在:
$DSH_HOME/storages/session_manager_settings.json
DSH_HOME 未設置時回退 ~/.dsh。文件在第一次保存時創建,備份複製該文件即可,遷移則拷到目標機器的同一路徑。倉庫裏的 templates/session-manager-settings.template.json 是一份格式示例,手動修復時可對照;替換線上文件前先停 dsh web。
一點必須說明的:插件以當前 dsh web 進程的權限運行。安裝前應先打開源碼和許可證(MIT)確認,再決定是否放入生產環境。同時它屬於社區目錄中的第三方插件,與 DeepSeek / 幻方沒有官方從屬關係。
適用場景¶
適合會話數量較多、需要按工作區整理和歸檔的人,以及希望把「怎麼稱呼我、我的職業、長期指令」這類穩定設定持久化、而不是每次重寫的 Agent 使用者。只想要其中一個功能的話,可以在插件配置裏關掉其餘三個,入口保留但頁面會提示「功能已關閉」。
項目地址:https://www.skillhub.cn/plugins/Tsechiyuan/dsh-session-manager
倉庫地址:https://github.com/Tsechiyuan/dsh-session-manager