dsh-side-conversation:在主对话旁开原生侧栏分支会话

前言

在 DeepSeek Harness(DSH)里跑长任务时,主对话往往已经堆了不少上下文。若想在不影响主线程的前提下,单独问一句「这段工具输出什么意思」、做旁路分析,或把结论写回主对话,常见做法是再开一个新会话或依赖子智能体目录——前者丢失实时主上下文,后者更偏向编排子 agent,而不是「人在旁边开一条可回传的侧枝」。

下面介绍社区插件 dsh-side-conversation(维护者 vaniawang,分类:客户端)。它在当前主对话旁打开一条 Live Side Branch:继承主对话已完成的历史,使用 Harness 自带的完整对话界面与工具,并在每次请求时带上主对话的实时快照;侧栏 agent 可通过 relay 把内容送回主对话,并展示 token 与 cache 用量。插件不以官方 DSH 插件身份发布,与 DeepSeek 无从属关系;npm 包名为 dsh-side-conversation,当前 package 版本为 0.6.0,许可证 MIT。

这是什么

dsh-side-conversation 是 DSH 的客户端插件:在当前会话标题栏工具区点按钮,即可 fork 出一条侧栏会话。侧栏不是第二套 subagent 目录——官方 subagentchat Sidebar 用于浏览、续聊真正的 subagent 子会话;本插件面向需要 实时主上下文 + 回传主对话 的人工侧枝讨论。

侧栏会话是真实 fork:每个主对话、每个「已完成轮次边界」对应至多一条侧栏会话;在父对话未推进新轮次前再次打开会 resume 同一条;父对话完成新轮次后会从新边界重新 fork。

核心功能

原生对话界面

侧栏使用宿主自带的聊天视图:composer、模型选择、reasoning effort、权限选择、附件、命令与停止控制等与主对话一致。

继承历史与边界约束

Fork 时继承父对话已完成的历史,作为参考材料注入;侧栏 agent 被指示不得擅自延续父任务或改动工作区,除非用户明确要求。

实时主上下文(Inline & Spill)

每次请求附带父对话当前状态,以及紧凑的引用索引(消息/工具 ID、短片段、进行中的引用)。长正文默认不进窗口,直到模型通过引用按需展开。

Chain recall

工具 recall_main_conversation({kind, id}) 可展开父对话中的单条消息或工具调用,并返回下一跳引用,按需遍历长历史,而不是整段塞进每次请求。

工具防护与 Relay

subagent、teammate、goal、workflow、loop 等工具仍在 schema 中,但在侧栏会话内会被拒绝。侧栏可通过 send_to_main_conversation 把用户要求的内容 relay 到主对话。

用量与历史

侧栏右上角 badge 显示最近一次请求的 input tokens 与 cache 命中率,以及累计 token/cache 用量;agent 可用 read_main_conversation 请求更大的父快照。侧栏 History 控件列出该主对话下更早的侧栏会话,可在独立标签中重新打开。

宿主 HTTP 接口(实现概要)

宿主侧监听父对话与侧栏 agent,公开路由包括:

  • POST /dsh-side-conversation/open — 为父对话最新已完成轮次边界创建或恢复侧栏会话
  • GET /dsh-side-conversation/stats — 侧栏 token、cache、上下文用量
  • GET /dsh-side-conversation/history — 该主对话下历史侧栏会话列表
  • GET /dsh-side-conversation/health — 宿主与客户端构建信息

侧栏是普通独立 session,不会在父对话追加 subagent 通知;父状态通过动态 runtime context 注入,边界与说明注册为 per-agent prompt sections。

隐私说明

插件自身不发起独立网络请求;模型请求走 Harness 已配置的 provider。侧栏 transcript 会包含自父对话继承的上下文;父对话中的文件不会被复制,侧栏 agent 需要时通过常规模型工具读取。

环境与要求

  • DeepSeek Harness:0.2.1-rc.1 及以上,且位于 0.2.1 线(engines.dsh:>=0.2.1-rc.1 <0.3.0-0);当前构建在 0.2.1-rc.5 上测试。
  • Node.js:22.19 或更新。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证。社区目录页:https://www.skillhub.cn/plugins/vaniawang/dsh-side-conversation;源码:https://github.com/vaniawang/dsh-side-conversation。

DSH Desktop:打开 Settings → Plugins,搜索 dsh-side-conversation 安装;插件管理器会把 bundle 链接或安装到当前 profile。npm 包:https://www.npmjs.com/package/dsh-side-conversation。

DSH CLI(将 <profile> 换成你的 profile 名):

dsh plugin --profile <profile> add dsh-side-conversation

若需从本地目录安装:

dsh plugin --profile <profile> add /path/to/dsh-side-conversation

若 npm 上尚不可用,可从仓库或 release tarball 安装:

dsh plugin --profile <profile> add github:vaniawang/dsh-side-conversation
# 或
dsh plugin --profile <profile> add ./dsh-side-conversation-0.1.0.tgz

安装后若插件列表未自动刷新,请重新加载 Web UI。

典型用法

  1. 打开一条主对话,在标题栏工具区点击 side-conversation 按钮。
  2. 在侧栏就父对话提问、做分析,或进行独立讨论。
  3. 若要把结果写回主对话,让侧栏 agent 发送到主对话(使用 relay 工具 send_to_main_conversation)。
  4. 侧栏面板右上角 badge 查看最近一次请求的 input tokens 与 cache 命中率。

适用场景与注意

适合:主对话在推进实现时,需要旁路澄清、对照父上下文做解读,并把结论 relay 回主线程;希望侧栏仍是「完整 Harness 对话」,而不是轻量弹窗或纯 subagent 列表。

注意:

  • 与官方 subagentchat 侧栏职责不同,不要混为「再开一个 subagent 子目录」。
  • 侧栏继承的是已完成历史 + 实时快照;边界指令限制其默认不替父对话改仓库。
  • 目标 DSH 版本为 0.2.1 线;升级 Harness 大版本前请核对 engines.dsh。
  • 社区插件,非官方 bundle 自带组件。

结尾

dsh-side-conversation 把「fork 主对话、侧栏原生 UI、按需 recall 父历史、relay 回主对话、用量 badge」收在一个客户端插件里,适合在 DSH 长会话里开一条带 live 父上下文的侧枝。目录与文档:

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

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

Xiaoye