用 dsh-sidechain 给 DeepSeek Harness 加上不写入主会话的侧链

前言

用 DeepSeek Harness(dsh)跑智能体时,主会话往往已经堆了很长的任务上下文:读过哪些文件、改过哪段代码、下一步要提交什么。这时突然想确认「这个目录里哪个文件最大」,或者想单独分析一段事件流,如果直接把问题丢进主对话,答案会进模型上下文,后续回合很容易被带偏。

OpenAI Codex 用 /side 开持续性侧会话,Claude 用 /btw 做一次性旁问,思路都是:旁路提问,主线程不动。社区插件 dsh-sidechain 把这两类命令接到了 dsh 上:在当前会话的临时 fork 里跑侧链,主会话历史保持不变。

DeepSeek Harness 的核心理念是「一切皆插件」。本文介绍的目录页来自社区站点 DeepSeek Harness 插件库,它和 DeepSeek / 幻方没有官方从属关系,不是官方应用商店。下文按该目录详情页、GitHub 仓库 README / package.json / dsh.plugin.json,以及 deepseek-ai/deepseek-harness 交叉核对,整理这个插件是什么、怎么装、怎么用。

这是什么

dsh-sidechain 是一款会话与消息类插件,由 GitHub 组织 omdsh-dev 维护,仓库地址是 omdsh-dev/dsh-sidechain。npm 包名为 @dsh-external/dsh-sidechain,当前版本 0.6.4,许可证 BSD-3-Clause,主要语言 TypeScript。2026-08-18 打开 GitHub 时显示 9 颗星;社区目录页同期仍显示 6 颗星,以仓库页面为准。

它要解决的问题很具体:在不中断、不污染主会话的前提下,再开一条侧问或可持续追问的子会话。实现方式是 fork 当前会话,得到独立子会话。侧会话继承主会话里已经完成的回合作为参考上下文,但拥有自己的消息记录和工具执行过程;提示、思考、工具调用和回答都不会进入主会话的模型上下文。Web UI 里会在右侧打开侧链面板,主会话界面保持原样。

dsh.plugin.json 声明的引擎范围是公开版 DSH 0.0.1-rc.5^0.1.0-rc.6。仓库 README 写明当前版本按这两档适配,开发依赖固定到 0.1.0-rc.6。目录页「更多介绍」仍只写到 rc.5,应以仓库 dsh.plugin.json 和 README 为准。

核心功能

插件对外暴露三条斜杠命令:

命令 用途
/btw <问题> 一次性侧问,适合快速确认信息
/side <问题> 创建可持续追问的侧会话
/side list 列出当前会话的直接子代理

/btw 对标 Claude 风格的一次性旁问:命令立刻返回,侧链面板自动打开,后台跑完单轮问答。这条线程是只读的,不能继续追问。主会话在它跑的时候仍可继续用。

/side 对标 Codex 风格的持续性侧会话:面板打开新线程后,在线程底部输入消息并按 Enter,就可以接着聊。/side/btw 都必须带上问题;README 写明当前 subagent API 不支持先建空线程、再等第一次输入。

右侧面板是这个插件的主要界面。会话标题栏有侧链按钮;快捷键是 Ctrl/Cmd+Shift+E。面板可以拖拽调宽、展开、手动刷新。列表里会显示当前会话的直接子代理,以及类型、标题、运行状态和活动摘要。选中一条线程后,时间线里能看到:

  • 用户消息与模型回答
  • 上下文注入与模型思考
  • 工具调用、结果和错误
  • Markdown、代码块、表格与公式

子会话历史会持久化,重启 DSH 之后仍可查看。面板只读取子会话日志,不会切换或激活主会话里的当前对话。

隔离边界也写在 README 里,需要单独记住:

  • fork 不包含父会话正在进行的那一轮。
  • 继承内容只作参考,boundary 之后的消息才是侧会话的当前任务。
  • 侧会话的消息、工具活动和回答留在子会话中,不会作为用户消息或子代理通知写回主会话。主会话只保留「创建侧会话」这条命令的结果。
  • 默认 persona 偏向非破坏性探索:不会主动改文件、请求提权、再创建子代理,或向父会话汇报。用户如果在侧会话里明确要求修改,实际权限仍由 DSH 的 sandbox 和工具配置决定。

可选配置项如下(均来自仓库 README):

配置项 默认值 说明
providerName fork 用来创建子会话的 subagent provider
persona 内置侧会话 persona 侧会话行为约束;空字符串表示沿用部署 persona
readOnlyTools 未设置 可选工具 allow-list,例如 ['read', 'grep', 'glob']

安装与启用

社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行即可:

dsh plugin add github:omdsh-dev/dsh-sidechain

目录页同时说明:如需可复现安装,可固定 commit 哈希。2026-08-18 核实时,仓库 master 最新提交是 b56038b22e037c52b189cef37f96702ab307bf3c(提交说明为支持官方 DSH rc.6):

dsh plugin add github:omdsh-dev/dsh-sidechain#b56038b22e037c52b189cef37f96702ab307bf3c

仓库 README 有两点补充,安装前值得看一眼。

第一,这个插件依赖 DSH 自带的 dsh-subagentdsh-subagent-forkdsh-commands。默认 Web profile 已经包含这些依赖。package.json 里也把客户端平台写成了 web,会向 Web UI 注入侧链面板。因此装到网页界面时,更稳妥的是带上 --profile web

dsh plugin --profile web add github:omdsh-dev/dsh-sidechain

README 原文里的 GitHub 路径写成了 github:Buyi-wsgzg/dsh-sidechain。该路径对应另一份同名仓库,最近向 omdsh-dev/dsh-sidechain 提交代码的作者也是 Buyi-wsgzg,两边内容接近。本文介绍的是目录收录、由 omdsh-dev 维护的这一份,安装命令以目录页的 github:omdsh-dev/dsh-sidechain 为准。

第二,pnpm 10 及以上首次安装 Git 依赖时,可能会提示允许执行 prepare。按命令输出把插件键加入 Web profile 的 pnpm-workspace.yaml,再重新执行安装命令。插件会向 Web profile 写入类似下面的配置层:

- insert:
    - id: dsh-sidechain
      name: '@dsh-external/dsh-sidechain'

需要限制侧会话只用只读工具时,可以在同一层加上 config

- insert:
    - id: dsh-sidechain
      name: '@dsh-external/dsh-sidechain'
      config:
        providerName: fork
        readOnlyTools:
          - read
          - grep
          - glob

安装或更新代码后,重启 dsh web 并刷新页面。卸载命令在 README 中是:

dsh plugin --profile web remove @dsh-external/dsh-sidechain

它会同时去掉 profile 依赖和插件配置层,完成后同样需要重启 dsh web 并刷新。

目录页和 README 都提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前应检查源代码仓库和许可证。

典型用法

一次性侧问,适合那种不想写进主会话的确认:

/btw 这个目录下哪个文件最大?

命令会马上返回。侧链面板打开后,可以看到执行过程和答案。这条线程不能追问;还要继续挖,改用 /side

持续侧会话:

/side 分析一下当前插件的事件流

面板会打开新线程。在底部输入框发后续消息即可。主会话可以继续原来的任务。

查看当前会话下已经挂上的直接子代理:

/side list

注意:/side list 和侧栏列出的是当前会话的全部直接子代理,不限于本插件创建的线程。如果同时装了其他会 fork 子会话的插件,列表里也会出现它们。

适用场景与注意事项

比较适合这些情况:

  • 主会话正在改代码或写方案,只想旁路确认一个事实,答案不必进主上下文
  • 需要单独分析事件流、目录结构或某段实现,并可能追问几轮
  • 使用 DSH Web UI,希望在右侧面板里看侧链的思考、工具调用和回答,而不是把主对话切走

使用前注意下面几条,均来自目录页或仓库说明,不是额外发挥:

  1. 先核对 DSH 版本。 当前适配 0.0.1-rc.50.1.0-rc.6。DSH 仍处于 developer preview,核心插件和 API 还会变,升级前应再看仓库 engines 字段。
  2. 侧链不是空会话。 /side 必须带首个问题;fork 也不包含父会话正在进行的回合。
  3. /btw 只有一轮。 只读、不能续聊。需要多轮就用 /side
  4. 默认 persona 不等于零权限。 它约束的是侧会话「不会主动破坏」;用户明确要求改文件时,仍走 DSH 的 sandbox 和工具策略。若希望侧问尽量只读,用 readOnlyTools 收紧 allow-list。
  5. 这是社区插件,不是官方应用。 发现渠道是独立目录站和 GitHub topic dsh-plugin。安装前读源码和 BSD-3-Clause 许可证;需要可复现环境时固定 commit,而不是长期追踪浮动的默认分支。
  6. Web 界面是一等能力。 侧链面板、快捷键和实时摘要都挂在 Web profile 上。只在纯终端环境里装,README 描述的右侧面板将不可用。

小结

dsh-sidechain 把 Codex 的 /side 和 Claude 的 /btw 接到 DeepSeek Harness:用 fork 开独立子会话,主会话的模型上下文不被侧问污染。一次性确认用 /btw,需要追问用 /side,列表和面板用来查看子代理状态。对已经在 Web UI 里跑长任务、又经常需要旁路提问的人,它补的是会话隔离,而不是新的模型能力。

参考地址:

  • 社区目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-sidechain/
  • GitHub 仓库:https://github.com/omdsh-dev/dsh-sidechain
  • DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

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

小夜