dsh-rooms:在 DeepSeek Harness 里跨会话派活与回报

前言

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。

典型用法思路

  1. 在面板把主控会话与「写作间」「试验间」等拖进同一分组。
  2. 主会话用 room_send 向 writer 房间下发任务(会附带 reportHint)。
  3. 写作会话执行后用 room_report 把结果只回给派活方。
  4. 长时间无回报时,按 idleTimeoutMinutes 由插件向派活方提醒。

适合需要在 DSH 里做多会话分工、又希望回报路径清晰、不依赖手工剪贴板的开发者;不适合跨组编排或把归档会话当 worker 的场景。

结尾

dsh-rooms 用「房间 + 分组 + 发送/回报」两条消息链,把 Harness 内多会话协作收成可配置、可面板管理的流程。进一步细节与截图见仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/GF6364/dsh-rooms
  • GitHub:https://github.com/GF6364/dsh-rooms
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜