DeepSeek Harness Hub
← 返回列表

多模型智能体团队toolclub/dsh-agent-team-gui

DeepSeek Harnessspec-screened需联网code在 GitHub 查看 ↗
⚠ 装前注意

为 DeepSeek Harness 提供一个可复用的团队:一个 Agent 负责规划,另一个负责实现,第三个负责审查。

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/18 · 已提供中文文档

DeepSeek Harness 的持久化多模型工作流团队——动态主导规划、有界 DAG、按智能体配置模型/工具、运行中心和 Token 洞察。

综合分
61.6
GitHub 分
61.6
用户评分
★ Stars
176
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add toolclub/dsh-agent-team-gui
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-agent-team-gui(未发布到 npm,仅可源码安装)
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 04:55:45

⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-attachment@deepseek-ai/dsh-agent@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-brand@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-agent-team-gui

CI
GitHub release
GitHub stars
MIT license

为 DeepSeek Harness 提供一个可复用的团队:一个 Agent 负责规划,另一个负责实现,第三个负责审查。

保存一次团队,为每个成员选择模型,即可在不同项目和对话中复用。
在同一个 Run Center 中跟踪计划、成员输出、重试以及提供商上报的 Token 用量。
这是面向 DeepSeek Harness Web profile 的非官方社区插件。

观看 80 秒 UI 指南 · 安装 v1.1.1 · 运行你的第一个团队 ·
示例配方 ·
分享工作流

UI 演示:可复用团队设置、运行检查与配方

基于截图的 UI 指南,包含示例数据与中文合成旁白。所展示的任务结果、耗时和 Token 并非真实运行基准。来源与字幕。

如果这对你的 DSH 工作流有帮助,请为项目点个 Star,
帮助更多开发者发现它。

为什么选择这个插件

团队是一个可复用的产品对象,而不是一次性的调度表单。在 Settings →
Teams 中创建一次,即可在不同项目和对话中复用。

| 能力 | 用户收益 |
| --- | --- |
| 每个成员可单独配置模型与工具策略 | 组合规划者、实现者、审查者或专家,无需让所有人共用一条路线 |
| 默认动态工作流规划 | 当前对话的模型会根据当前请求分配聚焦的工作与依赖关系 |
| Team / Solo / Inherited 模式 | 选择持久的对话级覆盖、项目默认值或单条消息例外,无需含糊的开关 |
| 有界 DAG、重试、质量门禁、后台工作 | 长时间工作可观测、可取消、有边界且可安全重启 |
| 官方提供商 Token 用量 | 查看输入、缓存读取、缓存写入和输出 Token,并带有完整/部分/不可用的覆盖状态——绝不虚构价格 |
| 版本、配方与定义备份 | 复现一个团队、无需凭据即可分享、预览影响,并在应用前重新映射模型路由 |

安装

| 插件版本 | DSH 目标版本 | 升级指南 |
| --- | --- | --- |
| 1.1.1 | >=0.1.5-rc.1 =0.1.5-rc.1 =22.19.0 =24.0.0,以及 pnpm。声明的 DSH 兼容性为
=0.1.5-rc.1  [!TIP]
如果 dsh 不在 PATH 中,请使用启动你当前可用 Harness 安装的启动器。
使用 npm 时,将 dsh 替换为 npx @deepseek-ai/dsh@0.1.5-rc.1;从源码检出运行时,将
其替换为 pnpm --dir /absolute/path/to/deepseek-harness dsh。安装和启动时请使用相同的启动器。
初次接触 Harness?请从其官方安装指南开始。

验证 dsh-agent-team-gui 包和 agent-team-gui 配置行是否都存在:

dsh --profile web --dump-config

运行你的第一个团队
使用随附的全栈交付配方,配以一个
规划器、实现工程师和审查员。首次运行时,你可以将这三者绑定到同一个工作模型;
多个提供方是可选的。

1. 下载配方 JSON。打开 Settings → Teams → Recipes & data,然后选择 Choose recipe file。
2. 将占位路由映射到你已配置的提供方/模型路由,查看预览,然后选择
Create a copy → Import reviewed recipe。在 Member library 中,确认每个成员的确切模型和工具访问权限。
3. 在本次首次演练中,将导入团队的激活方式设为 Run every time,成员选择设为
All members,然后保存。所提供的配方在其他情况下使用 Smart/adaptive 选择。
4. 选择一个空的临时项目,在编辑器旁选择导入的团队,选择 Always use team,然后发送
可直接复制的任务:构建并测试一个小型待办事项列表。
5. 打开 Team runs 以检查计划、输出、审查和实际 Token 覆盖情况。在将任务视为完成之前,
检查交付的文件和测试结果。

完整演练、预期结果和故障排除 →

创建你自己的团队

在 Settings → Teams → Member library 中,保存每个成员的角色、模型、可选回退和工具策略。
在 Settings → Teams 中,添加这些成员并选择激活方式、成员选择和执行选项。
关闭 Fixed order 以进行动态规划,或启用它以获得固定的串行顺序。
在编辑器旁选择 Team、Solo 或 Inherited 来控制当前对话。

在普通编辑器旁选择 Team、Solo 或 Inherited

带有演示数据的 UI 示例。

编排如何工作

flowchart LR
U["Normal user message"] --> M{"Conversation mode"}
M -->|"Solo"| L["Lead Agent answers normally"]
M -->|"Team / inherited default"| A{"Activation"}
A -->|"Manual"| L
A -->|"Smart may skip"| P["Bounded lead-model planner"]
A -->|"Always"| P
P --> D["Validated acyclic plan"]
D --> W1["Ready member wave"]
W1 --> W2["Dependent member wave"]
W2 --> Q{"Optional quality gate"}
Q -->|"Approved / disabled"| H["Bounded handoffs"]
Q -->|"At most 2 repairs"| R["Named repair owner"]
R --> Q
H --> L
D -. "live state + official Tokens" .-> C["Run Center and Insights"]

在没有固定顺序的情况下,插件会在一个有界、无工具的规划器子进程中使用当前活动对话的
提供方/模型路由。它接收成员角色,并返回结构化分配以及一个无环依赖图。它不会将单个成员
变成整个团队的替代品。一个糟糕、有环或不可用的计划会回退到确定性的按角色限定范围的分配。

就绪的 DAG 节点最多运行到 maxConcurrency。依赖方仅接收有界的结构化交接;
完整成员输出保留在持久运行历史中。固定的成员顺序是显式的串行覆盖,会绕过 DAG 规划。

激活与选择

- Always 对每条符合条件的顶层用户消息都运行所选团队。
- Smart 让有界规划器跳过不合适/琐碎的工作。
- Manual 让普通发送保持 Solo;为下一条消息排队团队,或使用模型工具。
- All members 为每个已配置成员恰好分配一次。
- Adaptive 让 Smart 规划选择最小的有用非空子集。

对话模式

- Team 是本对话的显式持久团队选择。
- Solo 是显式的持久退出,即使项目有默认团队也是如此。
- Inherited 移除对话覆盖,并在存在项目默认值时遵循该默认值。
- Next message 是单独的崩溃安全一次性 Team 或 Solo 选择,恰好消费一次。

这些状态在页面刷新、Host 冷启动和实时重连后仍保持可交互。空目录或暂时不可用的目录绝不会静默删除已保存的选择。

安全边界

- 规划器、成员、审查者和修复提示将独占角色与禁止委派契约置于用户内容的有界摘录之前。
- 被委派的会话不能派发另一个团队。检测到的 DSH 子代理工具——包括重命名的注册——在团队子级内被拒绝。
- 一个持久声明将自动和模型工具派发绑定到最新的人类消息,因此重复的工具调用无法创建数百个重复团队。
- 成员超时、并发、重试一次、软团队 Token 预算和质量轮次都是有限的。
- 重试会创建一个关联的不可变运行,并重放原始规范化分配、顺序和 DAG;它不会静默要求模型发明不同的工作流。

运行中心和 Token 使用情况

检查 DAG、成员状态、审查轮次和 Token 桶

每次执行都会在规划开始前写入。运行中心公开前台/后台状态、实时阶段、已用时间、子 ID、完整输出、有界交接、停止、关联的整个或成员重试、导出、过滤器和保留安全的清除。

如果 DSH 子级在交付非空纯文本后以 stopReason: "error" 结束,该成员计为 Completed,而不是丢失有效的长篇交付物。停止原因仍被记录,运行中心显示协议交付警告。空输出、被拒绝的运行、清理失败、超时以及其他非完成原因(如 max-tokens)仍视为失败。

每个成员交接摘要默认最多保留 16,000 个字符。团队可以将 handoffSummaryMaxChars 设置为 1,000 到 32,000。完整原始输出在运行中心中持久保留;依赖和主导提示保留单独的聚合边界,因此一个长产物不会使模型上下文无界。

该插件复用 DSH 官方的 tokenUsage 投影,并保留四个桶:
- 未缓存输入;
- 缓存读取;
- 缓存写入;
- 输出。

规划器、成员、审查和修复的使用量仍可分别归属。覆盖率在运行和重试尝试级别明确为完整、部分或不可用。在提供方报告样本之前,UI 会显示计量中…,而不是显示虚假的零。Token 不是金钱;该插件不会猜测 Harness 提供方未通过稳定定价契约公布的价格。

比较持久使用量和完成情况洞察,而不虚构价格

质量门禁与后台运行

可选的质量门禁指定一名审查者、一名修复负责人、明确的标准以及 0..2 轮修复。被拒绝后只能重新运行该修复负责人,随后由指定的审查者进行审查。它不能创建任意代理或递归。

前台运行在主导 Agent 合成有界交接之前完成。后台运行返回简短确认,并保持显示在插件运行中心;当官方 DSH Jobs 服务存在时,同一运行也会在那里注册,并共享取消钩子。若没有该可选服务,插件会回退到进程本地后台执行;此时 Host 重启会将未完成的持久状态协调为已中断,而不是假装其已完成。

版本、配方与定义备份

预览配方、冲突、受影响的团队以及主/回退路由重映射

- 每个保存的团队版本都包含所有被引用成员定义的不可变快照。
- 恢复采用预览优先,并在共享成员会改变另一个团队时发出警告。
- 配方包含一个团队及其成员,绝不包含提供方凭据。导入支持复制或合并、冲突预览,以及单独的主/回退路由重映射。
- 定义备份导出代理和团队。导入采用预览优先,支持合并或替换;替换会在确认前报告删除项、悬空模式/默认清理以及受影响的团队。
- 多表写入会被串行化,并在验证、取消或存储失败时使用补偿回滚。读取者看到的是先前或已提交的定义图,而不是半导入状态。
- 远程配方 URL 在 v0.5 中已禁用。请导入经过审查的本地 JSON 文件;这有意避免暴露未受保护的服务器端 fetch/SSRF 攻击面。

从无凭据的全栈交付配方开始,预览它,并将其中的 your-provider / your-model 占位符重映射到你自己 DSH 配置文件中配置的路由。

定义导出包含成员系统提示和模型路由名称。运行导出还包含用户任务和成员输出。在分享这些文件之前请先审查它们。

设置参考

成员

| 字段 | 含义 |
| --- | --- |
| 名称和角色提示 | 该成员的持久身份和专属指令 |
| 主提供方/模型 | 现有 DSH 路由;凭据保留在 DSH 中 |
| 回退提供方/模型 | 可选的配对路由,用于重试一次 |
| maxTokens | 发送给提供方的每次尝试硬性输出上限 |
| 工具允许/拒绝 | 已注册 DSH 工具的最小权限可见性;递归团队/子代理工具仍被拒绝 |

团队

| 字段 | 含义 |
| --- | --- |
| 成员与协作说明 | 可复用的成员定义,外加团队级协调指导 |
| 固定顺序 | 完整的串行排列;动态分配和 DAG 依赖时留空 |
| 执行/上下文 | 串行或有界并行;spawn、fork 或仅串行的 chain |
| 激活/选择 | Always、Smart 或 Manual;所有成员或自适应子集 |
| 响应 | 前台综合或可观察的后台运行 |
| 规划器 | 当前/最近/完整上下文,以及有界的规划器 Token 上限 |
| 韧性 | 继续、停止或重试一次;成员超时和回退路由 |
| 限制 | 最大并发数,以及提供方报告的软性团队 Token 预算 |
| 交接摘要 | 每个成员的摘要字符数上限;留空使用 16,000,可配置范围为 1,000–32,000 |
| 质量 | 指定的审查者、修复负责人、标准,以及最多两轮修复 |

主路径在窄视口中仍可使用

宿主配置

Web 包会插入一行唯一的 Host 行;它依赖 Web 配置文件现有的存储、
Connection RPC、模型、会话和浏览器模块服务。

- id: agent-team-gui
name: dsh-agent-team-gui
config:
defaultProvider: spawn
defaultExecutionMode: serial
defaultContextMode: spawn
historyMaxRuns: 0
historyMaxAgeDays: 0
versionMaxPerSquad: 0

| 字段 | 默认值 | 含义 |
| --- | --- | --- |
| defaultProvider | spawn | 已注册的 DSH 子代理提供方 |
| defaultExecutionMode | serial | 团队省略该字段时生效的模式 |
| defaultContextMode | spawn | 团队省略该字段时生效的上下文 |
| historyMaxRuns | 0 | 按数量保留;0 禁用自动运行删除 |
| historyMaxAgeDays | 0 | 按天数保留;0 禁用自动运行删除 |
| versionMaxPerSquad | 0 | 每个团队的版本保留数;0 禁用自动版本删除 |

如果你在配置文件补丁中覆盖该行,请重新声明每个需要的字段:DSH 补丁行会替换
完整的 config 对象,而不是对其进行深度合并。chain 仅对串行执行有效。
保留策略是刻意选择启用的:升级到 v0.5 不会静默删除现有的运行历史
或团队版本。仅当你确实希望自动清理时才设置正数限制。

其他安装路径

Git 源码安装

当你打算从源码构建时,请使用此替代方案:

dsh plugin --profile web add -w github:toolclub/dsh-agent-team-gui#v1.1.1

Git 依赖会运行此仓库的 prepare 构建。在 pnpm 10+ 上,仅授权确切的
在配置文件的 pnpm-workspace.yaml 中,allowBuilds 下会打印出 package key,然后重复执行相同的固定命令。该 key 可能包含解析后的修订版本;请从错误信息中复制实际的 key。这会授予该依赖项执行构建脚本的权限。上述编译发布路径可避免此步骤。

精确提交

解析并审查完整的提交 SHA,然后使用与带标签的 Git 安装相同的 allowBuilds 规则:

dsh plugin --profile web add -w github:toolclub/dsh-agent-team-gui#

这是最可复现的源码安装方式。发布 CI 会针对精确推送的修订版本执行相同的新配置文件检查。

本地检出

在此仓库中:

pnpm install --frozen-lockfile
pnpm run preflight
dsh plugin --profile web add -w .

preflight 会对 Host、Client 和测试进行类型检查;运行 Host/渲染后的 Client 测试套件;从干净的输出目录进行构建;审计 tarball 和密钥;并启动一个隔离的临时 DSH Web 配置文件。

编译后的 tarball

mkdir -p dist
pnpm pack --pack-destination dist
dsh plugin --profile web add -w ./dist/dsh-agent-team-gui-1.1.1.tgz

包审计会验证运行时/声明闭包、示例、治理文件、截图、source map、外部依赖声明、无绝对路径、无符号链接,以及无已知凭据模式。

让具备终端能力的 Agent 执行

你可以在 DeepSeek Harness 中发送这一条指令:

遵循
https://github.com/toolclub/dsh-agent-team-gui 中的安装和安全说明。将编译后的 v1.1.1 Release tarball 安装到
Web 配置文件中,重启 Web,验证组合后的配置,并报告已安装的版本
和安装来源。

模型工具和公共服务

dispatch_to_squad 仍可用于显式/手动的模型驱动使用。它接受团队 ID 或唯一的不区分大小写名称、一个任务、可选的分配/顺序,以及在已保存团队允许的情况下的执行/上下文覆盖。其面向模型的结果是有界的;完整的规范运行是持久化的,并可通过 Run Center/导出获取。

该包还导出 AgentTeamService、记录/结果类型、Zod schema,以及进程内的定义/分发/版本/配方/运行 API。在 DSH 本身尚未稳定之前,请将这些 API 视为开发者预览界面。

安全和隐私

- 插件 RPC 使用 /api/agentTeamGui,位于 DSH 的浏览器会话 cookie 认证和
Host/Origin 检查之后。请求和结果都会经过验证;不存在单独的无认证通道。
- 提供商凭据绝不会被复制到插件记录、配方、示例、日志或导出中。
- 持久化本地存储确实包含团队角色提示、选定的路由名称、对话/项目
标识符、用户任务、运行输出、错误和 Token 使用量。请保护 DSH 主目录。
- 使用最小权限的成员工具。模型可以执行其被允许的 DSH 工具所允许的任何操作。
- URL 配方获取已禁用。安装脚本是唯一的额外机器码权限;
请审查并固定 Git 依赖,或使用已编译的 tarball。
- 请使用 SECURITY.md 私下报告漏洞,而不是在包含
凭据或私有提示的公开 issue 中报告。

兼容性与限制

依赖与修复链有单独的 12,000 字符序列化 JSON 预算;质量
审查链有 32,000 字符。这些与每个成员存储的摘要限制无关。
链会预留成员身份、在多次交付之间共享空间,并报告 chainTruncated 和
omittedHandoffs。完整输出仍保留在 Run Center 中。审查轮次使用审查者配置的
maxTokens,仅在未设置时默认使用 2,048。

retry-once 和 Run Center 重试会重放现有的分配/计划。自动结构性错误
重新规划尚未实现。如果需要更改简报,请发送一条新的用户消息,使用更窄的
分配;更改为 model-tool 不会移除每条消息的准入限制。在准入前被拒绝的无效
调用方参数不会消耗消息声明。

对于 DSH 0.1.5,全局拒绝条目会针对全局注册表进行过滤,而作用域允许
保持不变。执行守卫还会阻止已识别的委托工具以及对标记的进程内子项的显式成员
拒绝。DSH 没有通用的委托能力标签:具有无关 schema 的自定义工具和任意外部程序
不是操作系统级沙箱边界。

- 仅限 Web 配置文件;没有无头 Settings UI。导出的 Host 服务仍可由
另一个提供所需服务的进程内插件使用。
- 声明的兼容性为 DSH >=0.1.5-rc.1 <0.1.6-0;CI 目前验证 DSH 0.1.5-rc.1。DSH 和此
插件均处于预稳定阶段,因此请固定版本。
- 旧的 v0.4 持久定义和 v1 导出仍可读取/导入。编辑它们必须满足
更安全的 v0.5 新写入限制。没有存储计划的旧运行无法忠实重试,
并会被拒绝并给出解释。
- Provider Token 投影是可选的。部分/不可用覆盖是预期且明确的。
- 软团队 Token 预算会阻止后续调度;它无法在精确阈值处停止已在运行的 provider。
每个成员的 maxTokens 是硬性 provider 边界。
- DSH 目前没有为自定义持久 squad/* Session 事件类型提供受支持的注册接缝。
该插件使用其持久运行存储、标准子会话/工具事件、Jobs 和日志。
- Model-tool 触发模式是尽力而为的,因为 DSH 未暴露 toolChoice 控制。有保证的
正常发送模式由 Host 驱动,并具有持久消息幂等性。

验证与项目健康

pnpm run typecheck
pnpm run test
pnpm run build
pnpm run audit:pack
pnpm run smoke:install
pnpm run smoke:browser

CI 运行 Node 22.19 和 Node 24、全新的 DSH 0.1.5-rc.1 Web 配置文件、浏览器键盘/无障碍/重连
旅程、精确 Git 修订版本安装,以及社区插件医生。详细的产品契约和证据矩阵位于 docs/v0.5-product-spec.md 和
docs/v0.5-acceptance.md。

贡献

请阅读 CONTRIBUTING.md、行为准则 和
SECURITY.md。简明中文教程
从零开发一个 DeepSeek Harness 插件 使用
官方 Harness 参考资料讲解了 apply、Service 插件、profile/bundle 接线、本地验证和 GitHub 安装。

Issue 应包含确切的 DSH/插件版本以及经过脱敏的最小复现。Pull
request 应添加有针对性的回归证据,并将兼容性、有界执行、
可访问性、隐私和包闭包纳入考量范围。

如果这个工作流对你有帮助,一个 GitHub Star 能让
其他 DSH 用户更容易发现它。真实的配方、截图和诚实的 bug 报告帮助更大。

卸载

dsh plugin --profile web remove dsh-agent-team-gui

移除该包不会自动删除已配置的 DSH
存储后端中的持久化插件表。

许可证

基于 MIT 许可证 发布。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群