前言¶
在 DeepSeek Harness(DSH)里做 Agent 开发时,主会话往往已经堆了长上下文:改一半的实现、未决的架构选择、临时想确认的细节。若把这些「旁路问题」都写进主线程,模型可见历史会变长,后续主任务也更容易被带偏。
常见做法是另开窗口、复制粘贴上下文,或让主 Agent 直接回答「顺便问一下」。前者操作成本高,后者则会把旁路问答永久写进主 scrollback。SideMind 是 Musdkar 维护的 DSH 实验性 Web/Desktop 插件,用两条斜杠命令在主界面内提供两种 ephemeral(关闭即销毁)旁路交互,并明确不把旁路答案自动写回主 Agent。
这是什么¶
SideMind(npm 包名 dsh-sidemind,当前版本 0.2.2,MIT 许可证)的定位是:Parallel conversations without polluting your main context——并行旁路提问与旁路多轮对话,而不污染主上下文。
仓库:https://github.com/Musdkar/dsh-sidemind
社区目录页:https://www.skillhub.cn/plugins/Musdkar/dsh-sidemind(独立站点,与 DeepSeek / 幻方无官方从属关系)
两条命令,两种交互模型¶
插件围绕两种刻意不同的模型设计:
/side [question]:右侧边栏多轮旁路线程¶
在 DSH 原生右侧边栏打开一条 ephemeral 多轮 side thread。它从最近一次已完成的主轮次分叉,支持一组保守的只读工具;对应标签页真正关闭时,线程被销毁。
0.2.x 的 Side 界面要点包括:原生 tab 内不再重复巨大 SideMind 头图;顶部有 From main thread · read-only · ephemeral 上下文条;继承的父历史对模型可见,但在 Side transcript 中隐藏;紧凑用户气泡与文档式助手 Markdown;在 DSH 提供 MarkdownText 时使用原生渲染并保留兼容回退;助手回复可「复制为 Markdown」;输入框自动聚焦、随内容增高;Enter 发送、Shift+Enter 换行。
带问题调用时,会先创建分支并立即发送首问,例如:
/side why is this implemented this way?
/btw <question>:输入框上方单次问答浮层¶
在主 composer 上方用紧凑 overlay 发起 ephemeral 单次旁路问题。它能看到当前已完成的对话上下文,不提供任何工具; dismiss 后销毁。
BTW 采用 Grok Build 风格的 bordered panel:顶边展示 /btw <question> 与始终可见的 [Esc] 提示;Loading / Done / Error 状态,无重复问题卡片或页脚;答案用 DSH Markdown 渲染;长回复内部滚动,完成后可用方向键/Page/Home/End 浏览;Esc 关闭并销毁子会话;故意不会把已关闭的 BTW 答案持久写进 Main scrollback。
示例:
/btw <question>
(将 <question> 替换为你要问的一句话。)
更完整的交互 rationale 见仓库内 docs/DESIGN.md。
隔离模型与主会话记录¶
SideMind 的隔离规则在 README 中写得很明确,使用时值得先过一遍:
- 两种界面都只在最新已完成的父轮次处继承,之后各自分叉。
- SideMind 不会把旁路答案自动发回父 Agent。
- Side 的 prompt 正文只存在于 ephemeral 子 Session。
/btw不暴露模型工具。/side仅允许已知、保守的只读工具集;未知或自定义工具 fail closed。- 关闭对应 UI 会 dispose 子
AgentHandle并移除内存中的子 Session。 - 插件刻意不走 DSH 基于持久化的可续跑 subagent 路径,因此「关闭即销毁」。
父 Session 仍会记录普通 DSH 命令生命周期事件(命令准入)。SideMind 使用 recordInput: false,成功的内部控制调用在父命令记录中既不包含旁路 prompt 正文,也不包含旁路答案。
兼容性与运行环境¶
package.json 中声明:
- DSH:
>=0.1.0-rc.7 - Node:
>=22.19 - 系统:macOS、Linux、Windows
- Profile:
web(客户端注入 DSH 右侧边栏、会话 UI、命令 UI 等模块)
DSH 仍处于快速变化的开发者预览。SideMind 为避免依赖较新的 sidebar close-handler API,改为监听 tab 的 AbortSignal,以适配当前测试过的 DSH Desktop 构建。浏览器端优先使用 DSH 原生 UI 原语,对 Desktop 暴露较小 client 模块面的版本保留兼容回退。
安装与启用¶
已抓取资料与社区目录页均未给出固定的 dsh plugin add … 安装命令原文,本文不凭仓库名拼接命令。请从 SkillHub 目录页 或 GitHub README 跟随当前 DSH 版本的插件安装方式;安装前请阅读源码与 MIT 许可证,并确认 Node / DSH 版本满足上述约束。
插件以当前 dsh 进程权限运行;旁路线程虽隔离上下文与写回行为,仍继承主会话可见信息与(在 /side 下)只读工具能力,安装前应对仓库与依赖有基本审查。
适用场景¶
- 主线程在推进大改动时,用
/btw快速核对定义、API 或「为什么这样写」,而不增加主 scrollback。 - 需要就实现细节多轮追问、且可能用到只读工具(如读文件)时,用
/side在右侧开短生命周期分支。 - 希望旁路对话关闭即消失、且不自动污染主 Agent 上下文的 DSH Web/Desktop 用户。
注意:SideMind 标注为 experimental;0.2 系列是对 UI/交互的重写,行为以你安装的 0.2.2 及对应 DSH 构建为准。
结尾¶
SideMind 把「旁路提问」产品化为 /btw 与 /side 两种界面,并用子 Session、无自动写回、关闭销毁和有限的只读工具策略,减少主上下文被旁路对话拖长的常见痛点。若你在 DSH 生态里做插件或 Agent 工作流,可对照 docs/ARCHITECTURE.md 与 docs/DESIGN.md 理解其分叉与 UI 选择。