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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye