dsh-side-branch:主会话的只读分支

前言

在 DeepSeek Harness (DSH) 的开发过程中,常需要在主会话中继续追问细节,但又不想打断当前的上下文流,更不希望生成的回答污染主会话的 Token 上下文。现有的侧边栏插件大多存在局限:要么是单次气泡无法多轮追问,要么会破坏前缀缓存,导致主会话推理成本激增。

dsh-side-branch 旨在解决这一问题。它从主会话派生一条独立的只读分支,利用流式传输提供实时回答,同时在执行层严格隔离,确保答案不会写入主会话上下文。

核心功能

  1. 派生只读分支:从主会话派生会话,继承上下文但互不干扰。
  2. 流式传输与推理:支持逐 Token 流式输出,包含推理过程。
  3. 多轮追问:分支内部支持连续多轮对话,上下文独立维护。
  4. 前缀缓存优化:通过执行层隔离而非 Prompt 修改,保持与主会话一致的前缀缓存。
  5. 执行层只读:安全策略在执行层生效,拒绝系统副作用(如写文件),但保留 read、web_search 等查询能力。
  6. 持久化状态:面板状态本地持久化,支持断点续问。

安装与启用

安装前请确保本地环境已安装 Node.js >= 20,且 pnpm 已加入 PATH。插件需要 DSH 版本 0.1.5-rc.2 或 0.1.7-rc.2。

  1. 安装插件:
dsh plugin --profile web add dsh-side-branch

或通过 GitHub 仓库安装:

dsh plugin --profile web add github:wucl12/dsh-side-branch
  1. 重启 DSH:
    安装完成后必须重启 DSH 客户端,插件才能正确加载。

使用方法

  1. 选择文本追问:
    在主会话中选择任意文本,点击弹出的 “Quote and ask”,会在右侧侧边栏打开一个临时会话。引用的文本会作为折叠块记录在当前轮次中,且不影响下一次提问的引用槽。

  2. 快速入口:
    在主会话输入框右侧有一个快速入口按钮 ↗,点击可直接唤起侧边栏面板。

  3. 独立配置:
    在侧边栏面板中,可以单独指定该分支使用的模型和推理努力(Reasoning Effort),而不受主会话配置的限制。

注意事项

  1. 只读边界:这里的只读是指无系统副作用(如写入文件、执行脚本)。web_fetch、web_search 和 read 工具仍可正常使用,且允许列表硬编码,无法通过设置放宽。

  2. 上下文继承机制:
    - 每次追问都会基于主会话最新已结算的内容重建上下文。
    - 未完成的轮次不会自动出现在分支中(回退到上一轮结束点),但手动引用选择文本不受此限制。
    - 当上下文达到上限时,插件会拒绝该轮次并提示清理,不会静默丢弃旧轮次。

  3. 前缀缓存说明:
    前缀缓存命中是一个测量值而非保证。虽然插件通过执行层隔离保持了 Prompt 前缀一致,但平台可能在某些情况下替换系统节点,导致缓存失效。

  4. PTC 模式限制:
    如果主会话使用了 ptc(纯代码执行工具表面)模式,由于插件强制拒绝 run_code,分支将回退为纯文本 Q&A 模式,无法调用代码执行工具。

结语

dsh-side-branch 为需要在主会话流中安全探索、追问细节提供了稳定的工具。通过执行层隔离和上下文重建机制,它在保证安全性的同时最大化了前缀缓存的利用率。

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

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

小夜