dsh-side-chat:在 DSH Web GUI 里用侧边会话改文件,不污染主对话

前言

在 DeepSeek Harness(DSH)里跑智能体时,主会话的 transcript 往往承载主线任务:规划、结论、需要留档的来回。若为了「试一把改文件」「单独问一句工具用法」就在同一条主对话里继续发消息,主 transcript 会被支线内容填满,会话列表和子智能体目录也会跟着变乱。常见做法是开新会话或复制上下文,但新会话要重新对齐工作目录、预设、工具和审批策略;留在主会话里则无法隔离展示。

dsh-side-chat(npm 包名 @flyer103/dsh-side-chat)面向 DSH Web GUI:从会话右侧边栏进入「侧边会话」(Side chat),在独立 tab 里使用与父会话相同的 agent、工具和同一工作区写文件,侧边轮次不会写入主对话、会话列表或子智能体目录。维护者为 flyer103,在社区目录中归类为客户端插件;源码与说明见 GitHub,许可证为 MIT。

这是什么

一句话:dsh-side-chat 是在 DSH 会话右栏提供的原生「侧边会话」tab,把当前会话 fork 成可真正编辑工作区文件的临时对话,主 transcript 保持干净。

它只面向 Web 平台(dsh.client.platform: web),不提供 CLI/TUI 界面。插件为无 @deepseek-ai/* 依赖的 ESM 包,要求 Node.js >= 22。UI 文案随 DSH 设置中的语言(中/英)切换;路由、事件名等技术细节仍为英文。

核心功能

下面能力均来自项目 README,按行为分组说明。

入口与生命周期

  • 从会话顶栏展开右侧边栏(「Open sidebar」/「打开侧边栏」),在引导页点击 Side chat(「侧边会话」)卡片,或在已打开的侧边会话 tab 里用状态栏 New side chat 再开一个。
  • 没有会话头独立按钮,也没有浮动浮层;入口固定在右栏,也可从 tab 条的添加控件进入。
  • 首次在该 tab 发送消息时才创建侧边会话;关闭该 tab 即销毁对应侧边会话,并尝试清理持久化产物,已关闭的侧边会话无法恢复。折叠侧栏或切换到其他 tab 只会暂停,不销毁。
  • 同一父会话可并行多个侧边 tab,芯片编号为 Side chat、Side chat 2…(中文为「侧边会话」「侧边会话 2」…),彼此独立。

与主会话的关系

  • 继承上下文:创建侧边会话时带上父会话已完成轮次,以及主会话当时的快照;之后主会话新增内容不会推入已有侧边会话。
  • 继承 agent:相同工作目录、预设组合、tools、skills、模型路由、沙箱模式与审批策略。
  • 真正改文件:write/edit/bash 等变更落在同一 workspace,主会话能看到文件变化。
  • 隔离 transcript:侧边轮次不出现在主对话、会话列表或 subagent 目录中。

交互与用量

  • 助手回复、推理与 tool call 通过事件流逐 token 渲染;传输无法流式时 tab 会回退到轮询。
  • 输入框下方有精简用量 dock:该侧边会话的 token 合计、缓存命中率、上下文占用环;悬停可看未缓存输入、缓存读/写与输出等明细。用量仅统计本侧边会话自身请求(含首次请求重发的继承上下文),与主 composer 的上下文条可能差一步。

安装与启用

按你实际使用的 profile 选择 desktop(Desktop 应用)或 web(web profile)。向 desktop 安装前建议先退出 Desktop,避免 CLI 等待 profile 写锁;无论哪种方式,安装后都需要重启 DSH。add 会把 bundle 写入 profile 的 dsh.profile.bundles,无需手改 cordis.patch.yml,重复执行是安全的。

# npm(推荐)
dsh plugin --profile desktop add @flyer103/dsh-side-chat

# GitHub,默认分支或固定 tag
dsh plugin --profile desktop add github:flyer103/dsh-side-chat
dsh plugin --profile desktop add github:flyer103/dsh-side-chat#v0.6.0

# 本地 checkout(记录为 dependency 链接)
cd /path/to/dsh-side-chat
dsh plugin --profile desktop add "$(pwd)"

# npm pack 生成的 tarball
dsh plugin --profile desktop add /absolute/path/flyer103-dsh-side-chat-0.6.0.tgz

本地仓库也可用安装脚本(幂等,不会自动重启 DSH):

node scripts/install.mjs --profile desktop
node scripts/install.mjs --profile desktop --dry-run

重启 DSH 后打开会话,按上文路径进入侧边会话 tab 即可使用。

典型用法

  1. 在主会话中完成一轮规划或实现,保持主 transcript 只记录主线。
  2. 打开右侧边栏,在引导页选择 Side chat,在新 tab 里描述「只在这一轮里试改某文件」或「单独跑一条 bash」。
  3. 发送第一条消息后侧边会话创建;在侧栏内查看流式回复与工具调用,确认 workspace 文件已变更。
  4. 需要并行试探时,在同一 pane 再点 New side chat 或再从引导页开 tab,每个 tab 各自编号、各自快照。
  5. 试探结束关闭对应 tab;主会话 transcript 仍只含主线,文件改动保留在工作区。

若侧边会话需要无人值守写文件,需注意审批策略:侧边 tab 内不展示审批弹窗,继承父会话策略;策略需要人工确认时,侧边会话会等待。README 建议对必须写文件的侧边任务使用非交互策略(例如 danger-full-access)。

兼容性与已知限制

测试目标:README 写明在 DSH 0.2.1-rc.2(Desktop profile、Web GUI)上验证;包内未声明 engines.dsh 或对 DSH 的 peer 依赖,安装不会被版本门控,更新的 DSH 未声明已测。

限制摘要(使用前建议通读 README 的 Known limitations):

  • 关闭 tab 不可恢复;模型选择器、GUI 重启后保留侧边会话、在 tab 内渲染审批等列为 P1 设计项,尚未实现。
  • 每个侧边会话的首次请求体量接近父会话下一次请求(含继承历史),N 个并行侧边会话会放大首次请求成本。
  • 流式依赖可流式 fetch;页面缓冲响应时会回退轮询。
  • 用量 dock 为近似值,无 turns/steps/tok/s,也不跟随 DSH Performance & usage 的详细/紧凑偏好。

适用场景与注意

适合:需要在同一 agent 与工作区权限下做短平快试探(改文件、跑命令、单独追问工具),又不想把主对话 transcript 弄乱的用户;习惯用 DSH Web / Desktop Web GUI 的开发者。

注意:

  • 插件随当前 DSH 进程权限运行,安装前请自行查看 源码 与 MIT 许可证,并只在可信环境安装。
  • 社区目录 skillhub.cn 上的条目 与 GitHub 仓库由维护者发布,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录站是独立社区索引,并非官方应用商店。

更完整的语义说明见仓库内 docs/USAGE.md(README 文档一节有链接)。

结尾

dsh-side-chat 把「可编辑工作区的临时对话」收进会话右栏的原生 tab:继承父会话 agent 与创建时刻上下文,文件改动与主会话共享,展示与 transcript 与主会话隔离。若你已在用 DSH Web GUI 并希望主线对话保持可读,可按官方命令安装、重启后从侧栏 Side chat 入口试用。

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

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

小夜