DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Agent Team Panel — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
A

dsh-agent-team-panel

Agent Team Panel

Conversation-header Agent Teams 面板:实时成员列表、添加队友,以及切换每位队友所使用的模型。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ExpertKT/dsh-agent-team-patch#4d3846988b091f23bbb8407447dc2d3d86837285
README兼容性版本

兼容性与来源证明

Agent Team Panel 以 dsh-agent-team-panel 发布,当前版本为 0.2.0-rc.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/5

版本

0.2.0-rc.2prerelease
2026/10/5

相关插件

正在加载相关插件…

最新版
0.2.0-rc.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/7
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 agents-orchestration 分类下经过校验的插件。

Headless@deepseek-ai/dsh-headlessdsh one-shot bundle:基于 dsh-base 的直接核心 Agent/Session 运行器,不包含 Host、HTTP 或浏览器层Experimental Agent Team Profile@deepseek-ai/dsh-experimental-agent-team-profile在一个实验性捆绑包中提供 Agent Teams 协作、工具和 Web UIExperimental Ralph Bundle@deepseek-ai/dsh-experimental-ralph-bundle使用全新代理执行明确请求的重复工作。Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

DSH Agent Teams 补丁包:退休 · 每成员模型 · 团队面板

给 DSH 桌面版的 Agent Teams 补三件事:

  1. 队友能退休 —— 退场后不再占席位、名字可复用,但 durable 名册 / 任务归属 / 消息历史保留;
  2. 每个队友单独选模型 —— 面板里每人一行下拉,加人时也能指定 provider/model(/team add … --model p/m)。队友已经在跑之后换模型 = 退休 + 同名重建:新会话用新模型,旧会话作为只读历史留下 —— 子会话的模型在创建时就被写进 descriptor,事后改不了(详见 ISSUE.md 的 Issue B);
  3. 会话标题栏的团队面板 —— 名册(状态、当前模型、退休按钮)、任务板、加人表单(名字 / 任务 / 模型 / --fork)。

适用范围:DSH 桌面版,@deepseek-ai/* 版本必须是 0.2.0-rc.2。 这是对发行代码(resources/app/node_modules)的热补丁,DSH 升级后失效(重新生成见第 7 节)。正确的修法在上游,见 ISSUE.md。

给 agent 的指令(可整段复制): 克隆本仓库,先跑 node apply.mjs --check。输出里必须同时有 PATCHED 和 WIRED(exit 0);若不是或报 drift,把完整输出贴回来,不要加 --force。确认后跑 node apply.mjs,然后让用户完全退出 DSH 再打开。


安装(插件方式,推荐)

这个仓库本身就是一个 DSH 插件包 —— 根目录的 package.json 声明了 dsh.bundle:

dsh plugin add https://github.com/ExpertKT/dsh-agent-team-patch
# 加完在插件列表里启用它(启用会把它写进 profile 的 dsh.profile.bundles),然后重启 DSH

它给的是会话标题栏的团队面板:看当前小队名册(含每人当前模型)、加队友(名字 / 任务 / --fork / 可选模型)。前提是你的 DSH 里已有官方那三个实验包(Agent Teams)。

这一半不含「退休」,也不含「给已有队友换模型」:两者都要改官方名册的状态机(退休 / 同名重建),那是下面热补丁那一半的事(也在向上游提 issue),所以这个面板里没有退休按钮,模型只能在加人时选。

改动就是四个文件:package.json、cordis.patch.yml(关掉官方同名 UI、插入本包)、lib/panel/index.js(宿主侧注册 /teammates 命令)、lib/panel/client.js(浏览器侧面板,由 tools/build-plugin.mjs 从 patched/ 生成)。

1. 安装(热补丁方式)

cd <本仓库目录>
node apply.mjs --check     # ① 自检,只读不写盘
node apply.mjs             # ② 装:7 个文件 + profile 接线,都会留备份
                           # ③ 完全退出 DSH,再打开(服务端插件没有热重载)

装完在任意会话里,鼠标移到标题栏右侧:出现「团队」入口 → 点开就是面板。

apply.mjs 的参数(通常一个都不用给):

参数什么时候需要
--root <DSH 的 resources/app>自动探测失败,或机器上有多个安装
--dsh-home <DSH_HOME>你的 DSH 家目录不是 ~/.dsh
--profile <profile 目录>profile 不在 <DSH_HOME>/profiles/<名字>
--check / --revert / --force自检 / 卸载 / 明知文件被改过仍要覆盖

安装位置自动探测顺序:$DSH_APP_ROOT → %LOCALAPPDATA%\Programs\* → %ProgramFiles%\* → %ProgramFiles(x86)%\* → C:\DSHDesktop\*、D:\…、E:\…、F:\DSHDesktop\*(每个基目录只看一层,认 package.json 里 name 以 dsh-plugin-desktop 开头的那个)。找到第一个就用,并把其余候选打印出来。

2. 卸载

node apply.mjs --revert    # 还原 7 个文件 + profile 里加的那一行
# 重启 DSH

3. 装不上时(一律明确拒绝,不会只做半套)

输出含义处理
[FAIL] N 个包版本不符,exit 2你的 DSH 不是 0.2.0-rc.2这份补丁不适用;按第 7 节用你的版本重新生成
逐文件 drift,apply 拒绝,exit 2目标文件不是这份构建的原始字节(升级过/换过构建)同上。别用 --force 蒙
profile (unresolved …)找不到 profile用 --dsh-home / --profile 指过去

三条门槛里前两条是「这份补丁不适用」的硬信号,第三条只是路径提示。

4. 装完没变化?按顺序排查

  1. 重启了吗:服务端插件没有热重载;客户端插件至少 Ctrl+F5;
  2. node apply.mjs --check 是否 PATCHED + WIRED;
  3. 入口在会话标题栏右侧,面板只列当前会话自己那支小队(在队友的会话里看到的是那支队友的小队);
  4. 模型下拉是空的:说明那台机器的 provider 没配(面板照 host 报上来的模型目录列,不做白名单);
  5. 还是不行:Ctrl+F5 后看 agent-team: … 那行字(面板的错误边界会把渲染异常显示出来,而不是默默消失)。

5. 这个补丁改了什么(7 个文件 / 3 个包)

包文件改动
dsh-experimental-agent-teamlib/index.js相位加 retired;active|failed → retired 守卫;席位只数非 retired;名字唯一性只在在役范围;名册/投影跳过退休成员;Lead-only retire();spawnAdmitted 转发 agentOptions(选模型)
同上lib/invariant.js、lib/types/index.js、lib/types/projection.js、lib/types/roster.js同源拷贝,为语义一致一起改(发行包内无 importer,但 exports 里有)
dsh-experimental-tool-agent-teamlib/index.js注册 retire_teammate;spawn_teammate 加可选 model(provider/model);新增 /team 命令(list | retire <name> | add <name> [--fork] [--model p/m] -- <prompt>,以及 model <name> <p/m> = 退休 + 同名重建)
dsh-experimental-client-ui-agent-teamlib/client.js团队面板(名册 / 任务卡 / 加人表单 / 每成员模型下拉 / 退休按钮);换模型先弹确认,确认后走 /team model(旧会话退役、同名新建);Remote 命名空间统一走 ctx.get;面板外包错误边界

package.json 不补(registry 安装只改了依赖键顺序,是噪声)。逐行 diff 见 patches/*.patch,完整哈希见 manifest.json。

6. 它怎么被验证的

7 个离线检查,全部 exit 0(node checks/<名字>.mjs):

检查覆盖
retire-check / retire-event-check / reuse-check退休可写入、投影隐藏、三条非法转换仍被拒;同名重建重放不报 failure;Lead agent 不活跃时队友仍解析到本队(9/9)
team-command-check/team 的 list / add / retire / model、--model、-- 后原文照传、各类畸形输入不抛(全绿)
team-ui-check面板动作的调用契约(含「下拉改成先确认、确认后才发 /team model」)+ 真渲染烟囱(假 react hooks 直接调组件)覆盖「新队友还没选模型」这条崩溃
remote-namespace-check用发行包里的真 Cordis 复刻命名空间形状,实测 ctx.get 无需声明、ctx.remote.<ns> 未声明会抛
profile-wiring-check临时 fixture 里跑完 --check → apply → --check → --revert,含「不重写 app 文件」「逐字节还原」「自动探测安装位置」(18/18)
bundle-check插件那一半:dsh.bundle/dsh.client 清单、bundle patch 的形状、宿主插件注册 /teammates 并真的跑一次 add(含"宿主忽略模型时不静默"分支)、浏览器 bundle 能按 __ModuleLoader__ 契约加载、且生成物与 tools/build-plugin.mjs 一致

端到端对照(tools/build-verify-root.mjs 造一个「未打补丁但依赖可解析」的根):

根目录状态apply.mjs --check6 个补丁检查
未打补丁NOT-PATCHED pristine=7 + NOT-WIRED,exit 15 个失败
apply 之后PATCHED + WIRED,exit 0全部 exit 0
--revert 之后回到 NOT-PATCHED + NOT-WIRED,exit 1又失败

patched/ 的字节可以从公开 npm tarball(@deepseek-ai/*@0.2.0-rc.2)+ 一个派生基线精确复现(远端 tree 与本地 tree 相同)。真机上实测过:加人(含 --fork)、退休、面板每成员模型下拉显示当前模型、队友用 send_message 给 Lead 发消息。

尚未真机验证:换模型的「确认 → 退役 → 同名重建」这条新路(离线全绿,等重启后复跑);「下拉里选一下就能热切模型」做不到——子会话模型创建即冻结,这也是要上游化的那个 issue。

保留(没有独立坐实的部分,请当待验证):满员 → 退休 → 再 spawn 的端到端(离线证明,未在满员团队上复跑);client.js 的 pristine 是派生基线(桌面 app 自带的是另一次构建,只差生成型 CSS 脚手架);本仓库没有在第二台机器上跑过(能否适用由第 3 节的两条硬门槛把关)。

7. DSH 升级后重新生成

$v = '0.2.0-rc.2'   # 换成你的版本
foreach ($p in 'dsh-experimental-agent-team','dsh-experimental-tool-agent-team','dsh-experimental-client-ui-agent-team') {
  Invoke-WebRequest "https://registry.npmjs.org/@deepseek-ai/$p/-/$p-$v.tgz" -OutFile ".cache\$p.tgz"
  New-Item -ItemType Directory ".cache\pristine\$p" -Force | Out-Null
  tar -xzf ".cache\$p.tgz" -C ".cache\pristine\$p"
}
node tools\build-manifest.mjs          # 先看报告:应当只有 7 个文件、package.json 被跳过
node tools\build-manifest.mjs --write  # 重写 manifest.json / patched / baseline / patches
node tools\build-verify-root.mjs       # 造未打补丁的根,跑上面第 6 节的对照

8. 目录

路径作用
package.json / cordis.patch.yml / lib/panel/插件那一半:dsh.bundle 清单、组合补丁、宿主侧 /teammates、浏览器侧面板
tools/build-plugin.mjs由 patched/ 生成 lib/panel/client.js(--check 可验证生成物是否过期)
apply.mjs安装/卸载器:版本 + sha256 双闸门、幂等、带备份、自动探测安装位置、profile 接线
manifest.json7 个文件的 pristine / patched sha256(apply.mjs 的唯一依据)
patched/补丁后的字节快照(apply.mjs 拷贝的源)
patches/*.patch三份 unified diff(给人看 / 给上游)
baseline/只放不能从 npm 得到的基线:桌面 app 自带那次构建的 client.js
checks/7 个离线检查(外加 who-runs-what.mjs 机器状态探针)
tools/build-manifest.mjs 重生成补丁集;build-verify-root.mjs 造验证根
README.md / ISSUE.md / HANDOFF.md本文 / 上游 issue 草案(A–D)/ 原始现场笔记
.cache/、wip/构建脚手架与临时快照(已 gitignore)

9. 已知限制

  • 热补丁会被 DSH 升级覆盖(--check 会因此 exit 1,不会静默出错);
  • 必须重启 DSH 才生效;客户端插件至少 Ctrl+F5;
  • --revert 依赖 .dsh-retire.bak / profile 的 .dsh-team.bak;
  • 退休成员在客户端不可见(服务端投影过滤,这是有意选的兜底);
  • 队友在会话树里是 Lead 的 continuable 子会话(上游设计),所以会话列表里它看起来像子智能体;把它和普通子智能体区分开的唯一界面是团队面板;
  • 模型下拉的选项来自 host 报上来的模型目录,取决于那台机器自己的 provider 配置;
  • checks/team-ui-check.mjs 是「假 react hooks + 直接调组件」的渲染,不是真 React 渲染:能抓渲染期抛错,抓不到 DOM/样式问题。

10. 许可与出处

补丁改的是 DeepSeek Harness 的 @deepseek-ai/* 包(各包自带 MIT LICENSE),patched/ 与 baseline/ 里保留其产物只为可复现;本仓库只提供补丁、安装器和验证脚本。