前言¶
DeepSeek Harness(DSH)里,一个会话通常只适合盯住一件事。要写稿、改代码、跑试验,往往得再开几个会话;问题来了:活怎么分给别的会话,干完了又怎么只把结果送回派活方,而不是在工作区里来回粘贴?
社区插件 dsh-rooms(维护者 GF6364,分类:工作流)把「工作区里的每个会话」当成一间房间:同组内用 room_send 派活,执行方用 room_report 回报;侧栏面板用拖拽给房间分组,同组才能互派。回报只回到当初派活的那一间,不广播。
下面按定位、消息模型、安装配置、工具与面板说明用法;事实以 GitHub README 为准。
这是什么¶
dsh-rooms 是 DSH 的跨会话协作插件:派活叫「发送」,完工叫「回报」,两条链路分开;未分组的会话在面板里视为「还没归组」,不能互派。归档会话不算房间,面板不展示,派活会被拒绝。
DSH 生态里插件通过 bundle 注入工具与 Web 侧栏;本插件版本在仓库 package.json 中为 0.4.0,许可 MIT。社区目录页:skillhub 上的 dsh-rooms(独立站点,与 DeepSeek / 幻方无官方从属关系)。
两种消息与分组规则¶
| 类型 | 工具 | 能发给谁 |
|---|---|---|
| 发送(派活) | room_send |
同一分组里的任何房间 |
| 回报 | room_report |
只回给给它派活的那个会话 |
回报不会广播:派活方会话已不在时,回报只留在状态里,不会塞给别的会话。
谁能派活:同一分组内的房间才能互派;没有「管理员」或「加入」步骤——打开工作区的正常会话就是房间。「未分组」不是一组,只是还没归组:目标或自己仍属未分组时派不了,需先在面板拖进同一组。
安装与启用¶
README 给出的安装方式是本地路径安装(请将路径换成你本机插件目录):
dsh plugin install /path/to/dsh-rooms
装完重启 Harness,侧栏会出现「房间」图标。
安装前建议浏览 仓库源码 与 LICENSE;插件在 当前 dsh 进程的权限 下运行,状态目录默认落在用户主目录侧,按你的安全策略评估是否合适。
配置¶
配置写在 bundle 的 cordis.patch.yml,也可在 profile 里覆盖。配置里的房间是「预置占位」:起名、目录、岗位说明;第一次派活才会真正建会话。工作区里其它已打开的会话不写配置也会出现在面板。
全局项¶
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
idleTimeoutMinutes |
number | 15 |
派出后这么久无回报且会话无写盘,向派活方发提醒;0 为不提醒(面板可改) |
reportHint |
string | 默认提示语 | 派活时自动追加在任务末尾 |
defaultCwd |
string | 进程当前目录 | 房间未写 cwd 时使用 |
stateDir |
string | ~/.dsh-rooms |
会话映射、回报、分组等状态文件目录 |
apiPrefix |
string | /dsh-rooms/api |
面板读数据的 HTTP 前缀 |
房间级¶
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
id |
string | 必填 | 派活时使用的房间 id |
sessionId |
string | 空 | 绑定已有会话;空则首次派活时新建 |
title |
string | 同 id |
占位名;面板显示的是工作区会话标题 |
description |
string | 空 | 房间职责说明 |
cwd |
string | defaultCwd |
工作目录 |
prompt |
string | 空 | 首次建会话时发送的岗位说明 |
idleTimeoutMinutes |
number | 跟全局 | 单房间提醒间隔 |
面板每次打开会重新读会话标题,工作区改名后面板同步更新。
配置示例¶
- insert:
- id: rooms
name: dsh-rooms
config:
idleTimeoutMinutes: 15
rooms:
- id: writer
title: 写作间
description: 写文章、改稿子。
cwd: 'D:\work'
prompt: '你负责写稿。每次交稿都要说清改了哪里。'
- id: lab
title: 试验间
- id: main
title: 主控台
sessionId: 'session-your-main-session-id'
工具一览¶
| 工具 | 作用 |
|---|---|
room_list |
房间、会话 id、目录、分组、最近回报 |
room_send |
向同组房间派活,立即返回 |
room_here |
查本房间 id,并参与归组 |
room_report |
回报 done / blocked / progress |
room_cancel |
叫停当前轮次,不删会话 |
room_reset |
重开会话(上下文过大或跑偏时) |
跨组、未分组、归档等不允许的组合会被拒绝并说明原因。
侧栏面板¶
「房间」图标下有两页。
分组:扫描工作区,正常显示的会话即房间(归档、子会话不展示)。卡片显示名称与「干活中」状态;点击无动作,拖入分组即归组,拖到最下「未分组」则取消归组。干活中的卡片不可拖。可新建、改名、删除分组。面板本身不派活、无详情页。
配置:仅调整运行时提醒分钟数(idleTimeoutMinutes)。
状态与接口¶
状态文件位于 stateDir/state.json,含会话映射、回报、分组、每间房上次派活方。删除该文件等于重置(会话 id 映射也会丢,需慎用)。
面板通过 apiPrefix 下 POST 接口与同一 Web 服务交互,不额外开端口:list、createGroup、renameGroup、deleteGroup、moveRoom、setConfig。
典型用法思路¶
- 在面板把主控会话与「写作间」「试验间」等拖进同一分组。
- 主会话用
room_send向writer房间下发任务(会附带reportHint)。 - 写作会话执行后用
room_report把结果只回给派活方。 - 长时间无回报时,按
idleTimeoutMinutes由插件向派活方提醒。
适合需要在 DSH 里做多会话分工、又希望回报路径清晰、不依赖手工剪贴板的开发者;不适合跨组编排或把归档会话当 worker 的场景。
结尾¶
dsh-rooms 用「房间 + 分组 + 发送/回报」两条消息链,把 Harness 内多会话协作收成可配置、可面板管理的流程。进一步细节与截图见仓库 README。
- 目录页:https://www.skillhub.cn/plugins/GF6364/dsh-rooms
- GitHub:https://github.com/GF6364/dsh-rooms