dsh-fastswitch:更快切換會話窗口與去重只讀 RPC 請求

前言

在 DeepSeek Harness 中切換會話時,有時會感到明顯的等待。這通常是因爲 Host 需要加載大量歷史消息,以及頁面在初始化時多次發起相同的只讀請求。

dsh-fastswitch 針對這兩個環節做了一次瀏覽器端的優化:把首次加載的歷史消息窗口從 50 條調小到 20 條,並對只讀 RPC 請求做去重與緩存。兩個功能可以獨立開關。

這是什麼

dsh-fastswitch 是一個 DeepSeek Harness 客戶端插件,由 guofug 維護,通過瀏覽器端的 window.fetch 包裝和請求重寫來實現性能提升。它不修改 DSH 本身或 Host 的行爲,隻影響本地請求。

核心功能

1. 可配置的首次加載窗口

當切換 Session 時,DSH 會請求 Host 返回該會話的初始快照。默認的窗口大小是 50 條消息。對於長對話,這會生成約 2 MB 的響應幀,造成等待。

dsh-fastswitch 在發送 session/follow 請求前,將 turnWindow.minMessages 從 50 修改爲 20。Host 對 0 < minMessages <= maxMessages 的請求是支持的,因此這是合法的請求重寫,而非補丁。

如果需要加載更早的消息(例如 200 條),可以手動將該值設爲 200,插件不會覆蓋它。

2. 只讀 RPC 去重與緩存

頁面初始化時,多個組件會在掛載時各自發起相同的只讀請求,如 session/modelCatalog、credentials/describe、agentPresets/list、cotTranslation/limits 等,沒有去重也沒有緩存。

dsh-fastswitch 通過包裝 window.fetch,將只讀的 catalog 請求緩存 5 分鐘,並將同一時間窗口內的併發請求合併爲一次網絡調用。

安裝與啓用

在插件市場中搜索 fastswitch,或使用以下命令安裝:

dsh plugin --profile web add github:guofug/dsh-fastswitch

安裝後重啓一次(或等待 HMR 重新加載)即可生效。

典型用法

所有配置通過 localStorage 完成,沒有配置文件。

默認配置:

Key 默認值 說明
dsh-fastswitch — 設爲 off 可關閉所有功能
dsh-fastswitch-window 20 首次加載窗口大小,設爲 0 則不修改
dsh-fastswitch-ttl 300000 緩存過期時間(毫秒),設爲 0 禁用緩存
dsh-fastswitch-merge 800 併發請求合併的時間窗口(毫秒)

示例:將窗口設爲 10 條,同時關閉緩存:

localStorage.setItem('dsh-fastswitch-window', '10')
localStorage.setItem('dsh-fastswitch-ttl', '0')

檢查是否生效

在瀏覽器控制台執行:

window.__dshFastswitch

返回對象示例:

// { installed: true,
//   ws: { rewritten: 3, untouched: 40 },
//   fetch: { calls: 51, hits: 10, dedup: 8, bypass: 33 } }
  • ws.rewritten:每次成功重寫 turnWindow.minMessages 的次數
  • fetch.calls:總請求次數
  • fetch.hits:命中緩存的次數
  • fetch.dedup:去重合並的次數
  • fetch.bypass:未命中緩存且未被去重的請求次數

適用場景與注意

  • 僅對 Web 客戶端生效,SDK、ACP 等其他客戶端不受影響。
  • 不修改 DSH 或 Host 的文件,卸載後即可恢復默認行爲。
  • 插件不維護會話緩存,無法實現跨會話的即時切換,因此不適合需要“快速切回上一個會話”的場景。
  • 緩存僅覆蓋只讀的 catalog 請求,不涉及寫入、流式響應或認證接口。

生態背景

DeepSeek Harness 的插件化架構允許在不修改核心代碼的情況下擴展能力。dsh-fastswitch 是社區維護的插件,獨立於 DeepSeek 或幻方,其功能與行爲由源碼與文檔保證。

鏈接

  • 插件目錄頁:https://www.skillhub.cn/plugins/guofug/dsh-fastswitch
  • GitHub:https://github.com/guofug/dsh-fastswitch
羽毛球分组比赛记分
小程序二维码

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

小夜