DeepSeek Harness 插件

toolclub/dsh-agent-team-gui

Star 数 ★ 281 分类 工作流与自动化 收录于 2026-08-15

持久化多模型小队在 Settings 中配置、从 Composer 选择,并支持逐成员模型与工具策略。默认由主 Agent 自行完成简单任务,需要已保存的小队时才派工;派工按有界 DAG 执行,并可进行有限的审核与返工。Run Center 展示重试和基于 Harness 官方 usage 事件的逐成员 token 用量。

安装

# Release 预构建包

dsh plugin --profile web add "https://github.com/toolclub/dsh-agent-team-gui/releases/download/v1.3.0/dsh-agent-team-gui-1.3.0.tgz"

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

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

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English | 简体中文

CI

把规划、实现和审核保存为一支小队,在 DeepSeek Harness 的普通对话中反复使用。 每个成员可选自己的模型与工具权限。发送一个任务后,查看分工、依赖、成员输出、审核结果和 Provider 上报的 Token 用量;下一次继续使用同一套小队配置。

80 秒界面导览 · 安装 · 跑通第一个任务 · 示例配方 · 发布版本 · 反馈问题

如果你也想复用自己的多模型工作流,欢迎点一个 Star,方便回来继续试用。

多模型小队配置、运行中心与配方复用的界面导览

导览基于实际产品截图与预置示例数据制作,配中文合成旁白;状态、耗时和用量不是实际任务测试或性能基准。素材来源与字幕。

为什么需要这个插件

小队是可以长期复用的产品对象,不是一次性的派单表单。在 Settings → 小队 中创建一次, 以后可以跨项目、跨对话使用。

能力 给用户带来的价值
每个成员独立模型和工具策略 规划、实现、审核或领域专家可以使用不同路由,不必共用一套配置
默认动态工作流编排 当前对话的模型根据这次请求,为成员生成聚焦任务和依赖关系
小队 / 单人 / 继承三态 清楚地区分对话覆盖、项目默认和仅下一条消息的临时选择
有界 DAG、重试、质量门禁、后台运行 长任务可观察、可取消、不会无限递归,重启后也有明确状态
官方 Provider Token 用量 查看输入、缓存读取、缓存写入和输出,并明确完整/部分/无计量,绝不伪造价格
版本、配方和定义备份 可复现、无凭证分享、应用前预览影响,并先重映射模型路由

安装

插件版本 DSH 版本 升级建议
1.3.0 >=0.1.5-rc.1 <0.1.6-0 推荐版本,可选择按需派工,并完善模式边界
1.2.0 >=0.1.5-rc.1 <0.1.6-0 失败诊断和主 Agent 受控继续派工
1.1.1 >=0.1.5-rc.1 <0.1.6-0 修复早期工作流问题,自动重试仍复用原任务
1.1.0 >=0.1.5-rc.1 <0.1.6-0 首个 0.1.5 适配版本,建议更新插件到 1.3.0
1.0.1 已验证 0.1.1-rc.2 旧版集成;需要同时升级 DSH 和插件

已有导览提供英文字幕 和中文字幕,可在支持字幕的播放器中手动加载 SRT;GitHub 不会自动叠加字幕。

从 DSH 0.1.1 升级时,请搭配 插件 v1.3.0 + DSH 0.1.5。新版修复了加载时的 source.subscribe 报错,并适配连接恢复和 Session API;现有小队定义与运行记录继续保留。 升级后重启 DSH 并刷新浏览器。CLI 可能显示 0.1.5-rc.1,内部兼容包实际解析为 0.1.5-rc.2。

需要已安装的 DeepSeek Harness >=0.1.5-rc.1 <0.1.6-0、Web profile、Node.js >=22.19.0 <23 或 >=24.0.0(不支持 Node.js 23)、pnpm,以及至少一条已经配置好的 DSH provider/model 路由。仓库 CI 当前使用 DSH 0.1.5-rc.1。

直接安装 v1.3.0 预编译发布包:

dsh plugin --profile web add -w https://github.com/toolclub/dsh-agent-team-gui/releases/download/v1.3.0/dsh-agent-team-gui-1.3.0.tgz
dsh --profile web

这个发布包已包含 Host 和浏览器代码,不需要为插件授权 Git prepare 构建。 如果 DSH Web 已经运行,安装或更新后重启该进程,再刷新页面。打开 Settings → 小队 即可看到小队 / 成员库 / 配方与数据三个页签。

[!TIP] 如果终端找不到 dsh,克隆 Harness 源码不会自动安装全局命令。在 Harness 仓库中 使用 pnpm dsh --version,并把本文的 dsh ... 替换为 pnpm --dir /absolute/path/to/deepseek-harness dsh ...。

安装排错见首次体验指南;需要从源码安装时, 使用下方固定 Git tag方式。

跑通第一个任务

从仓库自带的 Full-stack delivery 配方开始, 它包含 Product planner → Implementation engineer → Quality reviewer 三种角色; 实际分工和依赖由当前对话模型规划。

  1. 保存配方 JSON 到本地。在 Settings → 小队 → 配方与数据 点击选择配方文件, 文件读取后会自动预览;也可以粘贴到配方 JSON,再点击预览。
  2. 为三名成员把 your-provider / your-model 映射为已配置的路由。保持导入策略 → 创建副本,等到配方校验通过后,点击确认导入配方。到成员库核对各自模型, 可以使用不同模型,也可以先全部使用同一个可用模型。
  3. 在小队页选中导入的小队,将小队使用方式设为Host 强制派工、派工策略设为执行已派任务、成员选择设为 全部成员并保存。示例原本使用智能选择,这样调整便于观察完整的首次协作。
  4. 在空临时项目中新建对话,打开输入框旁的小队控件,选择导入的小队,并选中 本对话选择小队。发送下面的任务。
  5. 打开对话的小队运行,展开记录查看计划、成员交付和审核;在洞察中查看本次 使用的模型与 Token 计量情况。
请在当前空临时项目中实现一个无外部依赖的待办清单。
交付 index.html、app.mjs、app.test.mjs、README.md。
支持新增非空任务、完成/取消完成、删除、剩余计数,提供空列表提示和键盘可用的操作。
规划成员先写验收标准;实现成员只改当前项目;审核成员核对代码和实际测试输出。
用 node --test 验证新增、拒绝空白、切换完成、删除及计数,给出浏览器人工检查步骤。
不需要持久化、登录或后端;不要安装依赖、访问外部服务、提交 Git 或发布。
最终报告交付文件、实际执行的检查、未验证项和剩余问题,不要把未执行的测试写成通过。

临时目录创建方式、工具权限、首次模型配置、验收清单和排错步骤都在 完整首次体验指南。这是供你复现的任务说明,目前未附真实模型 完成此任务的实测结果,也不承诺固定耗时或节省比例。

在普通输入框旁选择小队、单人或继承

输入框控件演示,使用预置示例数据。

编排是怎样工作的

flowchart TD
    U[用户消息] --> M{有效模式与下一条选择}
    M -->|单人或仅手动| L[主 Agent 直接处理]
    M -->|按需使用| J{主 Agent 判断协作是否有价值}
    J -->|不需要| L
    J -->|缺少信息| A[询问用户]
    J -->|需要:调用小队工具| D[校验并受理一次首次派工]
    M -->|Host 强制或下一条 Team| D
    D --> P[使用已有计划或启动有界规划器]
    P -->|智能跳过| L
    P --> W[按依赖执行成员、失败策略和可选质量门]
    W --> R[持久化结果、诊断和已报告用量]
    R --> L
    R -->|主 Agent 复核剩余任务| C[受控继续派工]
    C -->|复用成功成果、共用预算、最多继续一次| W

新建小队和内置模板默认“主 Agent 按需使用”;选择小队代表可供使用,简单回答不启动规划器或成员。 已有配置、导入配置以及旧记录的默认行为保持不变。后台运行在运行中心结算,模型工具派工等待结果。 完整流程图与边界说明。

真正派工后,没有显式分工/顺序且没有固定顺序时,插件会使用当前对话的 provider/model 路由启动一个有界、无工具的规划 子任务。它读取所有成员的角色,并返回结构化分工和无环依赖图。规划器不会让第一个成员替代 整个小队。计划不可用、无效或有环时,会回退到确定性的角色专属任务。

所有已就绪 DAG 节点最多按 maxConcurrency 并发执行;依赖成员只接收有界的结构化交接, 完整输出保存在持久运行历史中。固定成员顺序是明确的串行覆盖,它不会执行 DAG 规划。

触发和成员选择

  • 执行已派任务:已经决定派工后要求执行,不会强迫按需模式为每条消息派工。
  • 智能:有界规划器可以跳过不适合或太简单的任务。
  • 手动:普通消息不能自动或通过模型工具派工;显式选择下一条 Team,或使用手动运行操作。
  • 全部成员:每个已配置成员恰好获得一次任务。
  • 自适应:智能规划选择最小但非空的合适成员子集。

对话模式

  • 小队:这个对话持久地显式使用某个小队。
  • 单人:这个对话持久地显式退出,即使项目设置了默认小队也不启用。
  • 继承:删除对话覆盖;如果项目有默认小队就跟随它。
  • 下一条消息:独立、崩溃安全的一次性小队或单人选择,只消费一次。

刷新页面、Host 冷启动和在线重连后,这些状态仍然可以立即操作。目录暂时为空或请求失败时, 插件不会擅自删除已经保存的选择。

安全边界

  • 规划、成员、审核和返工提示词会把角色范围与禁止委派放在前面,用户内容只提供有界摘录。
  • 被委派的 Session 不能再次派小队。插件会识别并禁止小队子成员中的 DSH subagent 工具, 包括重命名后的注册项。
  • 自动路径和模型工具共同使用“最新人类消息”的持久原子 claim;重复工具调用不会创建几百个 重复小队。
  • 成员超时、并发、一次重试、软 Token 预算和质量轮次都有明确上限。
  • 重试会创建有链接的不可变运行,并重放原来的分工、顺序和 DAG,不会悄悄让模型重新发明流程。

运行中心和 Token 用量

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

运行中心演示,状态与 Token 来自预置示例数据,不代表实际任务表现。

每次执行都会在规划前写入持久记录。运行中心展示前台/后台状态、实时阶段、耗时、child ID、 完整输出、有界交接、停止、有链接的整次或单成员重试、导出、筛选以及受保留策略保护的清理。

如果 DSH 子运行在交付非空纯文本后以 stopReason: "error" 结束,该成员会按已完成处理, 不会把有效的长文本交付误判为失败。停止原因仍会持久化,运行中心会显示协议交付警告;空输出、 Promise 拒绝、清理失败、超时以及 max-tokens 等其他非完成原因仍然算失败。

每个成员的交接摘要默认最多保留 16,000 个字符。小队可通过 handoffSummaryMaxChars 配置 1,000–32,000 个字符。完整原始输出仍持久保存在运行中心;依赖成员和主模型 Prompt 继续使用 独立的聚合边界,避免单个长交付无限扩大模型上下文。

插件复用 DSH 官方 tokenUsage projection,并保留四个桶:

  • 非缓存输入;
  • 缓存读取;
  • 缓存写入;
  • 输出。

规划、成员、审核和返工用量可以分别归因。每次运行和重试尝试都明确显示完整 / 部分 / 无计量。Provider 第一次上报前,UI 显示正在计量…,不会显示假的 0。Token 不是金钱; Harness provider 没有通过稳定价格契约发布价格时,插件不会猜测费用。

查看持久用量与完成洞察,不伪造价格

洞察界面演示,图中用量和完成率来自预置示例数据。

质量门禁和后台运行

可选质量门禁需要明确指定审核人、返工负责人、审核标准和 0..2 次返工。未通过时只能重跑 这个返工负责人,再交给指定审核人复查;它不能随意创建 Agent 或递归。

前台运行完成后,主 Agent 才综合有界交接。后台运行立即返回简短确认,并持续显示在插件运行 中心;如果 DSH 官方 Jobs service 存在,同一次运行也会注册到官方界面并共享取消逻辑。如果 缺少这个可选 service,插件使用进程内后台执行;Host 重启后,未完成记录会被统一标为 已中断,不会伪装成成功。

版本、配方和定义备份

预览配方、冲突、受影响小队以及主/备用路由重映射

配方导入演示,使用预置示例数据。

  • 每个小队版本都包含所有引用成员的不可变快照。
  • 恢复前必须预览;共享成员会影响其他小队时会明确警告。
  • 配方只包含一个小队及其成员,不包含 provider 凭证。导入支持复制 / 合并、冲突预览, 并可分别重映射主路由和备用路由。
  • 定义备份导出 Agent 和小队。导入先预览,再选择合并 / 替换;替换会在确认前列出删除、 悬空模式/项目默认清理以及受影响小队。
  • 跨表写入会串行执行;验证失败、取消或存储故障时执行补偿回滚。读者只能看到旧定义图或 已提交的新定义图,不会读到半个导入。
  • v0.5 禁止从 URL 拉取配方。请导入已经审查的本地 JSON;这是为了避免提供没有完整 SSRF 防护的 Host 网络请求面。

可以从不含凭证的 全栈交付配方开始:先预览,再把其中的 your-provider / your-model 占位路由映射到你自己的 DSH 配置。

定义导出包含成员 system prompt 和模型路由名;运行导出还包含用户任务和成员输出。分享前请 自行检查这些文件。

Settings 字段说明

成员

字段 含义
名称和角色提示词 这个成员的持久身份和专属工作范围
主 provider/model 现有 DSH 路由;凭证仍由 DSH 保管
备用 provider/model 可选配对路由,供一次重试使用
maxTokens 传给 provider 的单次硬输出上限
工具允许/禁止 已注册 DSH 工具的最小权限;递归小队/subagent 工具仍会被禁止

小队

字段 含义
成员和协作说明 可复用成员定义以及小队级协作指导
固定顺序 完整串行排列;关闭时使用动态分工和 DAG 依赖
执行/上下文 串行或有界并行;spawn、fork 或仅串行可用的 chain
触发/选择 始终、智能或手动;全部成员或自适应子集
响应 前台综合或可观察的后台运行
规划器 当前/最近/完整上下文以及有界的规划 Token 上限
恢复 继续、停止或一次重试;成员超时和备用路由
限制 最大并发以及基于 provider 上报的软小队 Token 预算
交接摘要 每名成员的摘要字符上限;留空使用 16,000,可配置 1,000–32,000
质量 指定审核人、返工负责人、标准和最多两次返工

窄屏下仍然能够完成主要操作

窄屏界面演示,使用预置示例数据。

Host 配置

Web bundle 只插入一条唯一 Host row;它复用 Web profile 已有的 storage、Connection RPC、 模型、Session 和浏览器模块 service。

- 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 subagent provider
defaultExecutionMode serial 小队省略配置时的实际执行模式
defaultContextMode spawn 小队省略配置时的实际上下文模式
historyMaxRuns 0 按数量保留;0 关闭自动删除运行历史
historyMaxAgeDays 0 按天保留;0 关闭自动删除运行历史
versionMaxPerSquad 0 每个小队的版本保留数;0 关闭自动删除版本

如果在 profile patch 中覆盖这条 row,必须重新写出所有需要的字段:DSH patch row 会替换 整个 config 对象,不会深度合并。chain 只能和串行执行一起使用。 历史保留默认明确关闭:升级到 v0.5 不会静默删除既有运行历史或小队版本。只有当你确实希望 自动清理时,才为相应字段设置正数。

其他安装方式

固定 Git tag

如果希望从已审查的源码构建,可以安装固定 tag:

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

Git 依赖会执行仓库自带的 prepare 构建。pnpm 10 或更高版本第一次可能要求授权构建。 只把这个包加入 pnpm 提示的 Web profile 文件(通常是 ~/.dsh/profiles/web/pnpm-workspace.yaml),保留文件中的其他配置,然后重复安装命令:

复制 pnpm 错误中打印的准确包键到 allowBuilds;该键可能包含解析后的完整 revision。 只授权这一条,并保留文件中已有配置。

allowBuilds 允许选中的 Git 依赖在本机执行构建。请先审查源码,并固定 tag 或完整 commit SHA;不需要源码构建时,使用上方的预编译发布包即可。

固定 commit

解析并审查完整 commit SHA,然后使用和 tag 安装相同的 allowBuilds 规则:

dsh plugin --profile web add -w github:toolclub/dsh-agent-team-gui#<full-commit-sha>

这是可复现性最好的源码安装方式。Release CI 也会对准确的已推送 revision 执行全新 profile 安装检查。

本地 checkout

在本仓库中执行:

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

preflight 会检查 Host、Client 和测试类型;运行 Host/渲染 Client 测试;从空输出目录构建; 检查 tarball 与敏感信息;并启动隔离的临时 DSH Web profile。

在本地打包 tarball

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

包检查会验证运行时和声明闭包、示例、治理文件、截图、source map、外部依赖声明、绝对路径、 符号链接以及常见凭证模式。

让有终端权限的 Agent 安装

可以在 DeepSeek Harness 中直接发送这一句话:

按照 https://github.com/toolclub/dsh-agent-team-gui 的安装说明,把 v1.3.0 预编译发布包 安装到 Web profile;重启 Web,验证组合配置,并汇报实际安装的插件和 DSH 版本。

模型工具和公开 Service

dispatch_to_squad 继续支持明确的手动/模型驱动调用。它接受小队 ID 或不重名的大小写不敏感 名称、任务、可选分工/顺序,以及小队允许的执行/上下文覆盖。返回给模型的内容有界;完整规范 运行会持久化,并可通过运行中心或导出读取。

包还会导出 AgentTeamService、记录/结果类型、Zod schema,以及进程内定义、派单、版本、 配方和运行 API。DSH 本身仍处于预稳定阶段,请把这些 API 也视为 developer preview。

安全和隐私

  • RPC 使用 /api/agentTeamGui,受 DSH 的浏览器会话 Cookie 认证及 Host/Origin 校验保护, 同时验证请求和响应;不再注册独立的未认证通道。
  • Provider 凭证不会被复制进插件记录、配方、示例、日志或导出。
  • 本地持久存储会包含小队角色提示词、所选路由名、对话/项目标识、用户任务、运行输出、错误和 Token 用量。请保护 DSH home 目录。
  • 按最小权限配置成员工具;模型可以执行所有被允许 DSH 工具所授权的操作。
  • URL 配方拉取已禁用。安装脚本是额外的机器代码权限;请审查并固定 Git 依赖,或使用已编译 tarball。
  • 安全问题请按照 SECURITY.md 私下报告,不要在公开 Issue 中粘贴凭证或私密 提示词。

兼容范围和限制

依赖交接与返工交接共享独立的 12,000 字符序列化 JSON 预算,质量审核链为 32,000 字符; 它们与单成员存储摘要上限相互独立。交接会保留成员身份、分配内容空间,并用 chainTruncated / omittedHandoffs 明示缩减或省略,完整输出仍保存在运行中心。 审核阶段遵循审核成员设置的 maxTokens;只有未设置时才默认使用 2,048。

retry-once 会先分析失败原因:明确的余额/额度耗尽、取消或已配置的预算耗尽会停止恢复。 系统诊断角色使用主 Agent 的模型路由,无工具权限,分析失败证据、已有进展和不确定性。 仅有证据支持的临时故障会原地有限重试;任务范围等结构性问题交给主 Agent 决定修订方案。

失败或部分成功的本轮运行结束后,主 Agent 可以调用 continue_squad_run,引用原运行 ID 和执行链版本继续派工。第一版每条执行链最多继续一次,共用原配置的软 Token 预算。 独立成功任务复用,受影响的下游重新执行;原计划、失败证据和后续结果分别保存。 重复提交返回已受理结果,改写任务文本不会重置次数;同一消息的首次派工仍只允许一次。 运行中心的手动重试仍是用户主动发起的独立计划重放。

当前保留“一个已有成员对应一个任务节点”,可把剩余任务写成有序步骤,暂不支持同一成员 拆出多个独立节点或更换整支小队。详细边界见执行链与失败恢复。

DSH 0.1.5 下,deny 名称按全局工具注册表筛选,局部 allow 列表原样保留;被标记的进程内 小队成员还有执行拦截,阻止已识别的委派工具及成员显式禁止的工具。DSH 尚无通用委派能力 标签;任意自定义工具和外部程序不能据此视为具备操作系统级沙箱隔离。

  • 只提供 Web profile UI;没有 headless Settings。其他进程内插件仍可在提供必要 service 后使用 导出的 Host service。
  • 声明兼容范围为 DSH >=0.1.5-rc.1 <0.1.6-0,当前 CI 使用 0.1.5-rc.1。DSH 和本插件都未 稳定,请固定版本。
  • 旧 v0.4 持久定义和 v1 导出仍可读取/导入;编辑旧记录时必须满足 v0.5 更安全的新写入上限。 没有保存原计划的旧运行无法忠实重试,会得到明确拒绝原因。
  • Provider Token projection 是可选能力;部分或无计量属于正常、明确的状态。
  • 软小队 Token 预算只阻止后续调度,不能在准确阈值停止正在运行的 provider;成员 maxTokens 才是 provider 硬上限。
  • DSH 暂时没有注册自定义持久 squad/* Session 事件的受支持 seam。插件使用自己的持久运行 存储、标准 child Session/tool 事件、Jobs 和日志。
  • 模型工具触发是 best-effort,因为 DSH 没有暴露 toolChoice;普通发送的 Guaranteed 模式由 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 profile、浏览器键盘/无障碍/重连路径、 准确 Git revision 安装以及社区插件 doctor。详细产品契约和证据矩阵见 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 存储后端中的持久插件表。

License

使用 MIT License 发布。

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。