前言¶
在 DeepSeek Harness(DSH)中做较长任务时,主会话里已经积累了一批已完成 turn、上下文和正在处理的工作。中途如果直接追问一个临时问题,可能会把主 agent 从当前任务轨迹上拉走。
dsh-side-chat 是 DSH 的一个插件:在主会话旁边打开一个只读 side chat,继承已完成的父级上下文,用来回答临时问题,同时让 parent agent 继续独立运行。项目归属于 Lukeknow0,许可证为 MIT。
这是什么¶
dsh-side-chat 的定位是:一个 read-only side chat plugin for DeepSeek Harness。
它继承 completed parent context,处理临时 side question,并让 parent agent 继续运行。侧边会话用于旁路提问,不把侧边交流写回主对话。
核心能力¶
dsh-side-chat 的已核实能力包括:
- 继承 completed parent context,并在临时会话中提问。
- 保持 parent agent 独立运行,侧边问题不影响主会话继续。
- 提供自适应界面:可用 Better Sidebar integration 时使用 Better Sidebar;否则使用 collision-aware overlay drawer fallback。
- 强制只读约束:沙箱只读模式,审批策略为
never。 - 只暴露 parent composition 中实际可用的 read-oriented tools。
- 执行时拒绝未知或非只读工具,包括 nested Code Mode dispatch。
- 保留 transcript 和 draft:Minimize、Escape、native tab close、header action 或
Cmd/Ctrl + Shift + .都不会丢失当前内容。 - 提供明确的生命周期控制:internal End 需要确认;当 parent 和 child 都 idle 时,进入 30 分钟 parked lease。
- 支持 English/Chinese UI。
安装与启用¶
先确认运行环境满足以下要求:
- DeepSeek Harness:
>=0.1.0-rc.7 <0.2.0 - Node.js:
^22.19.0 || >=24.0.0 - Browser:DSH Web 支持的当前 Chromium/Safari/Firefox
从 npm 安装:
dsh plugin --profile web add @lukeknow0/dsh-side-chat
从 GitHub 安装:
dsh plugin --profile web add github:Lukeknow0/dsh-side-chat
安装完成后,重启运行中的 dsh web 进程,然后刷新现有 Harness 页面。
典型用法¶
- 先在普通 parent conversation 中完成至少一个 turn。
- 在 conversation header 中选择 Side Chat,或按
Cmd/Ctrl + Shift + .。 - 输入一个聚焦的 side question。此时,completed parent context 会在后台静默准备。
- 可以切换任务。drawer 会由 parent parked;返回时,它会带着原有 transcript 重新出现。
- 需要隐藏 Side Chat 时,可以使用 Minimize、Escape、native tab close、header action 或
Cmd/Ctrl + Shift + .。transcript 和 draft 会保留。 - 如果确认结束,选择 internal End 控制并确认。
保留与关闭¶
- 一个 parent 同时只能拥有一个 retained Side Chat。
- parked countdown 只在 parent 和 child 都 idle 后开始。
- parked lease 为 30 分钟。
- 如果 countdown 期间 parent 或 child 任一方重新 active,下一次回到 both idle 时会重新开始 30 分钟。
- 隐藏 Side Chat 会保留可恢复状态。
- 确认 internal End 会移除可恢复状态。
安全与清理边界¶
dsh-side-chat 对 child 侧会话使用只读和默认拒绝策略:
- 继承已完成的父级上下文。
- 使用沙箱只读模式,审批策略为
never。 - 只暴露 parent composition 中实际可用的 read-oriented tools。
- 在执行时拒绝未知或非只读工具,包括 nested Code Mode dispatch。
关于清理,需要注意:在 DSH 0.1.0-rc.7 上,temporary side chat 不保证物理删除,因为该版本没有公开 API 用于删除 durable session log。
在 confirmed internal End 或 idle expiry 时,插件会:
- 移除 client admission。
- abort pending start 或 cancel active work。
- dispose live
AgentHandle,把 child 从 active runtime 中移除。 - 在可用时调用 public workspace archive API。
archived session log 可能仍保留在磁盘上。该项目不会 unlink private persistence files,也不依赖 unstable internal storage paths。
适用场景¶
dsh-side-chat 适合在 DSH Web 中处理较长任务时,临时提出一些只读问题,例如确认上下文、查看已完成信息或做旁路澄清,同时希望主 agent 保持当前轨迹。
它不适合把侧边会话当作写操作入口。它的工具面受限制:只暴露实际可用的 read-oriented tools,并在执行时拒绝未知或非只读工具。
插件以当前 dsh 进程权限运行。安装前建议检查源码与 MIT 许可证,确认其符合你的使用环境。
链接¶
GitHub 项目页:https://github.com/Lukeknow0/dsh-side-chat