前言¶
在 DeepSeek Harness(DSH)里,主会话往往承担「执行任务」:工具调用、改文件、跑命令会占满 transcript,也把上下文预算花在当前任务上。若在同一轮里穿插「帮我理一下思路」「只看一下这个文件别动它」,既容易污染工作流,又有误改仓库的风险。社区插件 dsh-side-chat(仓库 Uzumaku13/DSH-side-chat-advisor)在 Web UI 右侧边栏增加独立聊天页签:与会话并行、可读可搜、默认不写盘、不执行 shell。
这是什么¶
- 定位:DSH 右侧面板里的第二个对话线程,独立于主 agent 会话,继承当前工作目录以便读项目,工具面限制为只读。
- 维护者:GitHub 用户 Uzumaku13(package.json 作者为 Ivan Belyaev)。
- 分类:客户端插件(注入 Web 侧边栏与会话相关 UI 模块)。
- 当前版本:1.3.1(MIT 许可证)。
- 目录页:skillhub.cn 条目。
一句话对比主会话:主会话是「干活用的 chat」;Side Chat 是「旁路琢磨用的 chat」,两者 session 分离,互不污染。
核心功能¶
独立线程与界面¶
| 能力 | 说明 |
|---|---|
| Separate thread | 独立 agent 会话,重载与重启后仍可持续 |
| Right-panel tab | 在右侧与主会话并列,不替代主会话 |
| Streaming | 流式输出,回答过程中可用 Stop 中止 |
| Clean transcript | 展示对话内容,不展示 agent 内部独白 |
只读工具集¶
预设与主机侧 tools.restrict 双重限制。允许的工具包括:read、glob、grep、read_image、web_search、web_fetch;不包含 write、edit、shell。
推理档位、语音与图片¶
- Reasoning level:
off / low / high / max,在 Settings → Plugins → Side chat 配置,按线程生效;默认Off。 - 语音:录制麦克风,经主机注册的 speech provider 转写(README 提及曾在本地 GigaAM provider 上测试);未配置 provider 时界面会提示无可用项。
- 图片:可附带截图,作为 prompt 内容部分发送。
线程历史与绑定¶
- free:默认;用面板头「+」新建的自由线程,不属于某一主 session,在各 session 历史中可见。
- bound:在历史列表用 pin 钉到当前主 session,回到该 session 时面板可再次打开同一线程。
- 「+」不删除旧线程,仅切换使用;从列表移除条目不删除磁盘上的 DSH session 日志(位于
$DSH_HOME/sessions/<id>)。
捆绑的 agent preset¶
一次安装会注册 两行:插件本体与其运行的 sidechat preset。该 preset 挂载面向聊天的 persona、读工具、Web 访问与 compaction,不包含 agent-instructions、tool-skill 或 MCP,避免继承编码 preset 下的 AGENTS.md、项目规则与整本 skill 目录。
环境要求¶
- DeepSeek Harness 0.2.x,且启用 Web UI(
@deepseek-ai/dsh-web-app)。 - 已配置模型 provider(插件使用主机默认路由)。
- 语音功能依赖主机内已注册的 speech provider。
安装与启用¶
在已取得插件目录的绝对路径后(目录内为 bundle 根,含 cordis.patch.yml 等),任选其一安装。
在 DSH 会话中通过 plugin_manager:
plugin_manager
action: install_bundle
target: /absolute/path/to/dsh-side-chat
CLI 等价命令:
dsh plugin --profile <profile> add /absolute/path/to/dsh-side-chat
一个 bundle 即完成插件与 preset,无需第二步。
启用步骤:
- 重启 DSH,或在 Settings → Plugins 中关闭再打开该插件;
- 刷新浏览器页面(
F5),客户端以浏览器模块形式加载。
卸载 bundle:
plugin_manager
action: remove_bundle
target: dsh-side-chat
安装前请自行审阅仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,具备其声明的只读工具与 Web 能力,不代表对主机外系统的额外隔离。
典型用法¶
打开面板¶
在会话标题栏右侧、与会话工具相邻处,点击 speech-bubble 按钮;右栏 tab 引导中也可进入 Side Chat。
发送与附件¶
- 输入后 Enter 发送;Shift+Enter 换行。
- 麦克风:录制后再次点击停止,转写结果追加到草稿,可改字再发。
- Picture:可一次附加多张图片。
- 回答进行中 Stop 替代 Send。
- 面板头 +:开始新线程;旧线程仍在历史中。
历史与时钟按钮¶
面板头时钟按钮打开历史:Bound to this session 与 Free。点击行切换线程;pin 绑定或解绑当前 session;× 仅从列表移除(不删磁盘会话)。
设置项¶
Settings → Plugins → Side chat(插件列表卡片亦可)。
- Reasoning level:按模型目录提供的档位选择;插件通过
GET /x-side-chat/models.json等与主机协作,并在变更后恢复主会话的默认推理档位,避免影响编码会话。 - Hide the Claude Migration button(可选,默认关):若安装了
dsh-claude-move,可用 CSS 隐藏其浮动入口;偏好存在浏览器localStorage。
主机侧 HTTP 路由(便于无浏览器调试)包括例如 POST /x-side-chat/thread、POST /x-side-chat/say 等,详见仓库 README How it works。
适用场景与注意¶
适合:
- 需要在同一项目上下文中问问题、读文件、搜代码或查 Web,但不想让主会话 transcript 塞满旁支讨论;
- 希望「只看不动」的探索性对话,降低误编辑风险;
- 需要语音速记、贴图讨论,且接受独立 preset 的聊天风格。
注意:
- 只读是工具掩码与 preset 共同约束,仍应把敏感仓库与凭据按组织规范处理;
- 线程 id 存于浏览器
localStorage(dsh.side-chat.thread.v2)与$DSH_HOME/side-chat/threads.json; - 社区目录 skillhub.cn 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态原则是「一切皆插件」,按需选用即可。
结尾¶
dsh-side-chat 把「浏览器里另开一页问 AI」搬进 DSH 右侧:独立会话、项目目录可读、工具面不写 shell。若你常在工作流中间插入纯讨论,可对照 README 安装 bundle 并在设置里调好推理档位。
- 目录页:https://www.skillhub.cn/plugins/Uzumaku13/DSH-side-chat-advisor
- 源码与文档:https://github.com/Uzumaku13/DSH-side-chat-advisor