前言¶
DeepSeek Harness 采用插件化架构,旨在提供灵活的扩展能力。在进行长链路开发或复杂 Agent 编排时,往往需要将特定的上下文剥离出来,进行独立的澄清、验证或调试。DeepSeek Harness SideChat 插件为 DSH 提供了普通、持久化、可恢复的 SideChat 澄清会话。
安装与启用¶
在本地仓库根目录下执行以下命令进行安装:
dsh plugin --profile web add . --force
安装完成后,应确认配置输出中包含 sidechat-preset-root 和 sidechat。由于该插件仅对 DSH 0.1.2-alpha.1 做过完整核验,在升级 DSH 基线前,建议重新运行源码契约复核和真实 Web smoke 测试。
核心功能¶
会话创建与持久化¶
在任意 Session 中输入 /side 即可创建独立的 SideChat。该会话是一个正常的 DSH Session,拥有完整的会话页面、原生模型选择器和持久化的 transcript。即使卸载插件,已创建的 SideChat 仍保留在普通 Session 列表中,不会丢失。
Seed 策略¶
创建 SideChat 时需要选择 Seed 策略,用于决定传递给子会话的上下文内容。支持的策略包括 tail(默认为 tail:1,即最后一条直接文本)、task、summary、none、tail:2、tail:4、pick:1、pick:many、turn 和 selection。Seed 只保存直接文本,不复制 reasoning、工具调用或完整父 transcript,且与来源消息保存为不可变的 provenance。
权限模式¶
创建 SideChat 时需选择权限模式,所有权限由 Host 重新计算:
- 只读模式(推荐):候选能力为
read、glob、grep、Shell、Web、Plan、用户提问、子代理和 workflow;沙箱固定为read-only,审批固定为never。 - 继承:继承父会话创建时的 Agent preset、有效 sandbox、approval 和可见工具上限。
Fold 与引用¶
插件支持通过 /sidefold 生成结构化 Fold,支持预览、编辑和提交。提交成功后会自动返回父 Session。此外,支持 revision、增量 Fold、对比和软撤回;可以使用 /sidecite 把指定 assistant 回复无回复引用到父会话。
生命周期与追踪¶
SideChat 支持多种状态管理,包括 archive(归档)、restore(恢复)、abandon(放弃)和 orphaned(孤立)。通过 /sideusage 可以展示可验证的 token 用量,而不是估算值。
典型用法¶
创建 SideChat 并进行澄清对话的典型步骤如下:
- 在父 Session 的输入框中输入
/side。 - 使用方向键选择 Seed 策略,按 Enter 确认。
- 选择“只读模式”或“继承”,按 Enter 确认。
- 输入澄清问题:Enter 创建,Shift+Enter 换行,Esc 取消。
- 在完整 SideChat 页面继续多轮对话。
- 使用
/sidefold生成 Fold;在预览中 Enter 提交、Shift+Enter 换行、Esc 取消。
注意事项¶
- 环境依赖:当前只对 DSH
0.1.2-alpha.1做过完整核验。外部 bundle 无法进入当前 DSH 的 generated Remote assembly,插件使用公开、认证的connection.rpc.handle('/sidechat')通道。 - 卸载行为:卸载只移除插件 UI、Host service 和 SideChat 关系解释能力,不会删除已经创建的普通 Session 或 transcript。
- 不可变性:Seed 内容与来源消息保存为不可变 provenance。
- 权限控制:所有权限都由 Host 重新计算,浏览器提交的模式或 Session ID 不能直接获得授权。
总结¶
DeepSeek Harness SideChat 插件通过标准的 slash 命令提供了一套完整的持久化澄清会话方案。它利用 DSH 原生的 Session 机制,避免了临时浮层或 subagent 的复杂性,适合需要在主流程中剥离上下文进行独立验证的场景。
项目地址:GitHub