dsh-session-workbench:讓歷史會話可搜索、可召回

前言

在 DeepSeek Harness(dsh)裏用上一段時間後,歷史會話會越積越多。某次會話裏調好的 MCP config、定下來的方案,隔幾天想引用,卻記不起它在哪個工作區、哪一天聊的。逐個翻會話不現實,憑記憶讓模型複述也不可靠。

dsh 本身提供了會話全文索引(session-query-sqlite)和跨會話引用的注入機制,但這兩項能力此前沒有直接的用戶入口。dsh-session-workbench 補的就是這一層:搜索、定位、召回三步串成一個界面,另加會話視圖標籤欄的管理。下面按功能、安裝、用法逐節介紹。

這是什麼

dsh-session-workbench 是 dsh web profile 的一個插件,作者 PolinniZhong,MIT 許可證。一句話定位:搜索所有歷史會話,把需要的會話以 @references 召回給模型,同時管理會話視圖標籤欄的顯示/隱藏與排序——一個插件,三個入口。

它遵循 dsh「一切皆插件」的思路,以靜態 bundle 形式裝進 web profile,由客戶端運行時加載。

名稱說明:目錄頁與抓取來源用的是 dsh-session-kb,而 README 標題與 package.json 的 name、repository 均爲 dsh-session-workbench,本文以 package.json 爲準。

核心功能

README 用 v1.1 / v1.2 標註部分功能的引入版本,package.json 當前版本號爲 1.0.1,兩者的對應關係資料中未確認,下文沿用 README 的標註。

跨會話搜索

  • 覆蓋所有歷史會話(所有工作區)的全文搜索,支持工作區、時間範圍、歸檔三類篩選與遊標分頁;
  • 搜索默認包含已歸檔會話,結果帶 Archived 徽標,可按「全部 / 僅活躍 / 僅歸檔」篩選;
  • 無關鍵詞時顯示最近會話列表,默認排除已歸檔;
  • 匹配是字面短語(FTS 限制),輸入 MCP config 就按這個短語找;
  • 被壓縮(compacted)的會話內容仍可被搜索:官方 FTS 索引包含被 shadow 的內容。

片段命中與定位

搜索結果按會話返回片段命中卡片(v1.1):每張卡給出該會話的最佳命中片段,高亮命中句並附上下文,懶加載。展開片段卡可查看同會話的其餘命中(v1.2):先列 5 條,可加載更多,均高亮。

點卡片上的 Locate 會打開對應會話,滾動到確切的命中消息並閃爍高亮;v1.2 起使用複合錨點。匹配失敗時以非阻塞 toast 提示手動滾動,不打斷當前操作。

召回(Recall)

在結果裏勾選會話(每條消息最多 3 個),點 Insert references into input,輸入框出現 @session 引用 chips;繼續輸入問題併發送後,平臺注入只讀快照(## Referenced sessions),模型結合歷史上下文作答。

每會話快照默認上限 64 KB,過大的會話可能只保留部分內容,預覽裏會給出提示。

會話視圖管理

1.0.0 新增:管理會話標籤欄上的自定義視圖,支持顯示/隱藏與拖拽排序。兩個入口:設置頁的「會話工作臺 → 會話視圖」,以及會話標籤欄的右鍵 / 雙擊面板。

本地運行與設置

插件完全本地運行,零網絡請求;只讀取會話元數據與命中片段,不修改、不刪除任何會話,細節見項目的 PRIVACY.md。界面的顏色、間距、圓角、字體與交互均按 DSH 自身設計系統度量。設置項包括啓用/禁用開關、默認搜索範圍和隱私聲明。

安裝與啓用

插件要求 dsh 的 web profile。安裝命令:

dsh plugin --profile web add dsh-session-workbench

插件是靜態 bundle,客戶端在運行時提供:客戶端內容變更刷新頁面即可生效,host/profile 變更則需要重啓。

要使用會話庫搜索,還需手動啓用持久化 FTS 索引。web profile 默認禁用 FTS(openAt: never),需要在 <DSH_HOME>/profiles/web/cordis.patch.yml 裏覆蓋 session-query-sqlite 的配置:

- id: session-query-sqlite
  config:
    path: '/Users/<you>/.dsh/session-query.sqlite'
    openAt: startup

兩點要求:path 必須是絕對路徑,平臺用 path.resolve 解析,不展開 ~ 或環境變量;索引用 openAt: startup 在啓動時構建並複用,不要用 :memory:——它會在每次搜索時重建並阻塞 host。

配置改完後,重啓 DSH 應用。

典型用法

下面是完整走一遍「搜索 → 定位 → 召回」的步驟:

1、在右側欄打開 Session KB 標籤頁(可在「設置 → Session KB」啓用/禁用);
2、無關鍵詞時顯示最近會話;點右上角搜索圖標展開輸入框,輸入關鍵詞(字面短語匹配,例如 MCP config)切換到搜索結果;
3、點 ⋯ 按鈕,按工作區、時間範圍、歸檔狀態篩選;
4、點結果展開預覽(命中上下文 + 會話元信息);點 Locate 打開會話並滾動到命中消息;確認後勾選(最多 3 個);
5、點 Insert references into input,輸入框出現 @session chips;
6、繼續輸入問題併發送,平臺注入只讀快照,模型結合歷史上下文作答。

管理會話視圖是另一條獨立路徑:打開「設置 → 會話工作臺 → 會話視圖」,或右鍵 / 雙擊會話標籤欄,在面板裏切換各視圖的顯示並拖拽 ⋮⋮ 排序。

適用場景與注意事項

適合的用戶:在多個工作區長期使用 dsh、經常需要回翻舊會話取上下文的人;已歸檔的會話默認就在搜索範圍內,翻舊賬不用先取消歸檔。

使用前注意:

  • 插件以當前 dsh 進程的權限運行,安裝前建議先審閱源碼與許可證(MIT);
  • 搜索是字面短語匹配,不支持同義詞或語義檢索;README 的 Platform limitations 一節列有完整限制,本次抓取時該節不完整,以原文爲準;
  • 每條消息最多引用 3 個會話,每會話快照默認 64 KB;
  • 隱私方面:完全本地運行、零網絡請求,只讀不寫(詳見 PRIVACY.md)。

結語

dsh-session-workbench 把 dsh 已有的會話索引和引用能力串成了可操作的界面:搜得到、跳得準、召回得了,另附會話視圖標籤欄的整理能力,全程本地運行。

相關鏈接:

  • 目錄頁:https://www.skillhub.cn/plugins/PolinniZhong/dsh-session-kb
  • GitHub:https://github.com/PolinniZhong/dsh-session-kb

說明兩點:目錄站點 skillhub.cn 是社區維護的獨立站點,與 DeepSeek / 幻方無官方從屬關係;package.json 中的 repository/homepage 寫的是 dsh-session-workbench,與上面鏈接中的 dsh-session-kb 不一致(可能爲倉庫改名),當前規範地址未能確認。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜