🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

协作工作群 giuseppewu95/dsh-workgroup

DeepSeek Harness
giuseppewu9580 天前有提交已提供中文文档扫描:未发现敏感能力

把多个会话编成带角色的工作群,跨会话派活收结果

27.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add giuseppewu95/dsh-workgroup
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · tool
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/client.js:306
    const response = await fetch(`/workgroup/list?sessionId=${encodeURIComponent(sessionId)}`);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 多会话编成工作群
  • 按角色派活
  • 跨会话收结果

README

由 DeepSeek 最新模型翻译生成
dsh-workgroup DeepSeek Harness 的可分发插件:带角色的持久会话分组(工作群)、跨会话消息投递,以及浏览器端成员面板。 用它可以跑真正的跨会话协作闭环——一个会话统筹/规划/审查,一个会话执行,一个会话测试验证,主会话作为协调者: 主会话(统筹/规划/审查) ──工作群──▶ 执行会话 │ │ └────────── 工作群 ──────────▶ 测试会话 功能 | 组成 | 说明 | | ctx.workgroups | Host 服务:持久注册表(基于 storage-domain)、成员管理、授权跨会话投递 | | workgroup_create / workgroup_list / workgroup_spawn / workgroup_send / workgroup_members / workgroup_destroy / workgroup_status | 模型工具:建群、分配角色(规划/执行/测试…
展开完整文档(README 剩余 1 节)
dsh-workgroup

DeepSeek Harness 的可分发插件:带角色的持久会话分组(工作群)、跨会话消息投递,以及浏览器端成员面板。

用它可以跑真正的跨会话协作闭环——一个会话统筹/规划/审查,一个会话执行,一个会话测试验证,主会话作为协调者:

主会话(统筹/规划/审查) ──工作群──▶ 执行会话 │ │ └────────── 工作群 ──────────▶ 测试会话

功能

| 组成 | 说明 |
| ctx.workgroups | Host 服务:持久注册表(基于 storage-domain)、成员管理、授权跨会话投递 |
| workgroup_create / workgroup_list / workgroup_spawn / workgroup_send / workgroup_members / workgroup_destroy / workgroup_status | 模型工具:建群、分配角色(规划/执行/测试…)、创建带模型与角色背景的新协作会话、向成员会话发消息、解散自己创建的群、查询已投递消息的观测状态 |
| 浏览器面板 | 会话头部按钮:列出本会话所属群与成员(角色 + 运行/空闲状态 + 相对最近活跃时间),点击成员直接打开该会话 |
| workgroup 消息源 | 投递到目标会话的消息以 user/message(source.kind: 'workgroup')落日志——模型可见、可从日志重建 |

跨会话投递如何工作

授权依据是持久成员关系而非血缘:发送者会话与目标必须是同一群成员,禁止自我发送。目标按身份分派:

- 在线顶层会话:消息作为其下一轮次送达(agent.followup);
- 冷顶层会话:按身份去重恢复一次(与内置 API 解析器一致)后送达;
- 发送者的可继续子会话:委托 ctx.subagents.followup,复用子会话 inbox 与冷恢复;
- 其余情况(一次性子会话、他人子会话、未知或已删会话):返回类型化错误,不投递。

安装

前置:dsh ≥ 0.1.0-rc.6,web profile(或任何挂载了 storage-json + storage-domain 的 profile)。

从 npm(发布后)
dsh plugin --profile web add dsh-workgroup

或直接从本仓库
dsh plugin --profile web add github:giuseppewu95/dsh-workgroup

然后重启 dsh --profile web。会话头部出现「工作群」按钮(有工作群时可见)。

TUI/headless profile 同样可用:模型工具与服务与平台无关,只有浏览器面板依赖 web 界面。非 web profile 需自行挂载 @deepseek-ai/dsh-storage-json + @deepseek-ai/dsh-storage-domain(web profile 已内置)。

快速开始(最短路径)

1. 重启 dsh,打开任意会话,直接对模型说:创建标题为 "我的项目" 的工作群。
2. 添加协作者:在 workgroup_create 里传入成员 session id;或让每个成员会话运行 workgroup_list 报告自己的 id,再 workgroup_members add。
3. 派发工作:workgroup_send 给成员——消息成为该会话的下一轮次。
4. 跟踪:workgroup_status 显示 accepted → queued → started → turn_completed | failed。
5. 会话头部按钮一屏查看群与成员;点击成员直接打开其会话。

用法

1. 主会话规划:把工作委派给 subagent,或打开你想要的会话。
2. 建群:workgroup_create(标题 + 可选初始成员),之后可用 workgroup_members add 追加。
3. 分配角色:workgroup_members set_role,标签如 规划、执行、测试。
4. 派发工作:workgroup_send 给成员会话——消息成为该会话的下一轮次。
5. 审查:让成员经工作群回传结果(workgroup_send 是双向的),或在 GUI 中打开成员会话阅读其记录,再把意见经工作群发回。
6. 实时查看:浏览器面板显示成员角色与运行状态,点击即可打开对应会话。

你(规划会话):
workgroup_create(title: "发布流程", members: [{session_id: "", role: "执行"}, {session_id: "", role: "测试"}])
workgroup_send(group_id: "", target_session_id: "", message: "按计划实现 X,完成后发报告")
workgroup_send(group_id: "", target_session_id: "", message: "等实现完成后跑回归测试")

执行会话(每条消息作为下一轮次收到): ...工作... report: "X 已完成,见 "

你:
workgroup_send(group_id: "", target_session_id: "", message: "报告已收到,请补充 的测试用例")
workgroup_send(group_id: "", target_session_id: "", message: "可以开始回归")

消息状态语义

workgroup_send 返回 message_id;workgroup_status 报告观测状态:

| 状态 | 含义 |
| accepted | 校验通过,投递调用成功 |
| queued | 目标会话日志已持有该消息(持久,重启不丢) |
| started | 目标会话已追加该消息——其模型将看到它 |
| turn_completed | 包含该消息的回合已结束(不是逐消息消费证明) |
| failed | 包含该消息的回合以错误或中止结束 |
| unknown | 本进程无记录(重启后或由其他进程投递) |

开发

npm install
npm run typecheck # tsc --noEmit
npm test # vitest:单元 + 组件 + 组合
npm run build # esbuild lib/index.js(host ESM)+ lib/client.js(浏览器)+ tsc lib/types(类型声明)

真实模型 e2e(可选)

npm run test:e2e 用真实模型重放完整多会话协作流程:构建一次性临时 DSH_HOME(系统临时目录,绝不触碰你的 profile/数据),启动 headless profile,驱动协调者/执行者/测试者三个会话走 workgroup_create/workgroup_send,并对硬证据断言——持久化的群记录、目标会话日志中的 workgroup 来源消息、以及协作产物。

npm run test:e2e # 使用 ~/.dsh 凭证与 web profile 的 node_modules
E2E_CREDENTIALS_SOURCE=... npm run test:e2e # 从其他 dsh home 取凭证
npm run test:e2e -- --keep # 失败时保留临时 DSH_HOME 以便调试

无凭证时打印 E2E_SKIP 并以 0 退出——无 key 环境不会失败,且不属于常规 npm test 或 CI。凭证只会从 E2E_CREDENTIALS_SOURCE(默认 ~/.dsh)复制进临时 home;仓库中不写入任何敏感信息。

浏览器 bundle 采用 harness 的模块加载器格式(window.__ModuleLoader__.load),平台模块保持 external;host 半面所有依赖 external,运行时从 profile 安装解析。

包结构

cordis.patch.yml # bundle patch:一行同时挂载两个半面 src/index.ts # host 入口:注册表服务 + 工具 + web API src/registry.ts # ctx.workgroups 服务(持久注册表 + 投递) src/spec.ts # storage-domain spec(zod schema) src/delivery.ts # 基于身份的目标准则与投递 src/tools.ts # workgroup_* 模型工具 + prompt section src/web-api.ts # 供浏览器半面读取的只读 /workgroup JSON API src/trust.ts # /workgroup 的回环/同源围栏(镜像 harness /api) src/error.ts # WorkgroupError + 稳定 WORKGROUP_* 错误码 src/message-source.ts# 'workgroup' MessageSourceMap 合并 src/types.ts # WorkgroupId 品牌 + WorkgroupView src/client/ # 浏览器半面:WorkgroupPanel.tsx、locales、样式 tests/ # vitest(spec/registry/tools/web-api/trust/panel/composition) docs/ARCHITECTURE.md # 设计理念(分层、投递、并发、信任、决策记录) AGENTS.md # 新手会话快速上手:结构、命令、设计要点

已知限制与待办

- 浏览器面板只读(列表 + 跳转);建群与加员通过模型工具完成。
- 工作群消息是群内点对点,暂不支持群广播。
- 成员权限平等;ownerSessionId 仅作记录——owner 不可被移除,且只有 owner 能解散群(workgroup_destroy)。
- 群可跨 workspace(消息投递不校验 cwd);阅读成员记录通过 GUI 打开该会话,或让成员经工作群回传结果。
- 销毁群只删除群记录;已投递消息保留在成员会话日志中(日志不可变)。
- /workgroup HTTP API 采用与 harness /api 相同的 confused-deputy 防护(回环 Host + 同源浏览器标记;因 harness 未导出其围栏,插件本地镜像同一规则)。这不是认证层;可达性仍由 webserver 绑定策略决定。
- 投递状态(workgroup_send 的 message_id + workgroup_status)基于目标会话的持久生命周期事件在进程内观测:accepted → queued → started → turn_completed | failed。turn_completed 表示包含该消息的 turn 已结束——不是逐消息消费证明。目标在另一进程处理(或重启后)时,状态停留在最后一次进程内观测(unknown)。
- 构建产物(lib/)已提交到仓库,git 安装无需构建步骤;发布前请重新 npm run build。

License

MIT
预览分享卡片长什么样 ↓giuseppewu95/dsh-workgroup
分享 · DeepSeek Harness Hub
giuseppewu95/dsh-workgroup

把多个会话编成带角色的工作群,跨会话派活收结果

这是你的仓库?认领条目

回到顶部