dsh_mission-control:DeepSeek Harness 的 Agent Teams 任务驾驶舱

前言

在 DeepSeek Harness(DSH)里用实验性 Agent Teams 做多工蜂协作时,常见问题很具体:子会话一多就失控、spawn_teammate 没有任务级上限;工蜂上下文顶满后需要人工换人;主会话里的人类指令要等 Lead 转述才能到全体;进度散落在多个窗口里,收尾时还要自己找产出文件。

Mission Control(dsh_mission-control)是社区维护者 Psychologist-jpg 发布的工作流类插件(当前 GitHub 星标为 0),在 Agent Teams 之上补上「任务(Mission)」这一层:人数上限、上下文哨兵自动交接、驾驶舱广播、蜂巢模式 UI,以及按主会话独立的实时进度悬浮窗。宿主侧完成检测与轮询,README 明确说明不消耗各会话的模型 token。

这是什么

插件 npm 包名为 @local/mission-control,版本 1.5.2,MIT 许可证。定位一句话:DeepSeek Harness 的 Agent Teams 任务驾驶舱——任务级人数上限、上下文哨兵自动交接、驾驶舱广播与实时进度悬浮窗。

它让一个 Lead 主会话把多名工蜂组织成一场任务:头部可一键开蜂巢模式并锁定人数;运行中测量各工蜂上下文压力并在将满时自动续任;人类在主会话发出的消息可即时扇出给存活工蜂;进度集中在可拖动、可折叠的悬浮窗;结束时可收集结果文件、归档子会话并提示 Lead 汇总。

强依赖 @deepseek-ai/dsh-experimental-agent-team(agentTeams 等服务)与 @deepseek-ai/cordis;采用 profile 本地 link: 安装,不依赖 npm 发包。

七个工具与典型协作流

README 列出七个 mission_* 工具,分工如下。

工具 作用
mission_start 声明任务目标与并发工蜂上限 workers;之后才允许创建工蜂,超限拒绝。
mission_scale 按期望子会话清单「只补差额」开子会话;已存在跳过,一次配平。
mission_set_model 为指定工蜂切换模型,或 revert: true 回到默认。
mission_image 通过配置的图像接口出图并落盘(图像模型不走普通对话)。
mission_report 工蜂自报 current / completed,供驾驶舱显示进度。
mission_status 只读任务与各工蜂状态、上下文占比、当前任务。
mission_stop 结束任务:清除上限并停止上下文哨兵。

下面介绍一种与文档一致的协调方式,Lead 侧契约由插件通过 systemPrompt 注入(有任务时才注入):

  1. mission_start 写明目标与 workers 上限(也可用会话头部蜂巢开关:按 defaultCap 建占位任务,首条人类消息可自动成为真实目标)。
  2. 建好任务板后,用 mission_scale 一次把工蜂数配平到 min(待认领子任务数, 上限)。
  3. 工蜂执行子任务并定期 mission_report;需要全貌时 Lead 调 mission_status。
  4. 主会话需要全体同步时直接发消息即可触发驾驶舱广播(暂停蜂巢时不向子会话下发,子会话仍可用工具继续工作)。
  5. 收尾:悬浮窗「结束任务」或调用结束接口链路,或 mission_stop;完整收尾会中断存活子会话、清理临时文件、归档子会话、收集产出并提示 Lead 汇总。

不必一定先调 mission_start:头部「普通 / 蜂巢 / 已暂停」开关与 2–10 人上限选择、子会话管理弹窗(归档 / 彻底删除等)与工具并行可用。关闭或暂停蜂巢后,插件会在系统提示中标注「蜂巢模式已关闭」,要求不再创建子会话、不再调用 mission_*,避免历史契约误导模型。

支撑机制(宿主侧)

人数上限守卫:mission_start 或头部开关设定 workers;在每次 spawn_teammate 前统计 running / provisioning 成员,超限即拒。mission_scale 受同一上限约束。

任务拆解与配平:统计待办、未认领数、现有工蜂与缺口,写入 /mission-dashboard-v2.json 的 scale 字段,悬浮窗标题栏展示工蜂数、待办与建议再开人数,并驱动 Lead / 工蜂侧提示词。

上下文哨兵与自动交接:按 pollIntervalMs 用 tokenMeter 测量占用比(分母优先会话 contextWindow,否则 fallbackContextWindow)。达到 handoffRatio 时中断成员、生成交接摘要,并以 fresh 上下文创建续任者(如 <name>-rN)。

驾驶舱广播:任务进行中,主会话 user/message 包装为 [驾驶舱广播] 扇出给当前任务全部存活工蜂;广播前过滤已归档或已删除成员。

生图策略:图像模型不支持 chat,默认 imageModelSwitch: false,出图走 mission_image;可按关键词或 mission_scale 的 image / provider / model 配置(详见下文配置表)。

实时悬浮窗:dashboard.js 每 2 秒轮询 /mission-dashboard-v2.json,每主会话一个窗口,显示配平统计、工蜂状态、上下文进度条、模型与暂停态等;「结束任务」经 POST /mission-end-v1 做完整收尾。

结束任务时(README 列举的顺序):中断存活子会话 → 按 cleanupGlobs / cleanupDirs 清临时项(不动结果文件)→ 归档存活子会话(可选 deleteSessionLogs 删日志)→ 清理孤儿归档 → 从工具调用与文件改动收集产出 → 向 Lead 投递「【蜂巢任务已结束】」汇总提示。

安装与启用

本插件以 profile 本地 link 安装。因 link: 不会自动安装 peer 依赖,需先把聚合包 @deepseek-ai/dsh-experimental-agent-team-profile(内含核心、工具、客户端 UI)加入 profile 的 dependencies 与 bundles。

前置 peer 依赖(package.json):

  • @deepseek-ai/dsh-experimental-agent-team:0.2.2-rc.1
  • @deepseek-ai/cordis:~4.1.0

步骤:

  1. 将仓库放到本地(README 给出的获取方式为 clone 到本机,路径自定)。
  2. 编辑 ~/.dsh/profiles/<profile>/package.json,加入依赖与 bundle(路径改为你的本地目录):
{
  "dependencies": {
    "@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.2-rc.1",
    "@local/mission-control": "link:C:/path/to/mission-control"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-experimental-agent-team-profile",
        "@local/mission-control"
      ]
    }
  }
}
  1. 在 profile 目录执行 pnpm install(或由 DSH 桌面端触发),重载客户端。
  2. 新建会话后,头部应出现蜂巢模式开关,页面出现「蜂巢任务」悬浮窗,工具列表中出现 mission_start、mission_scale、mission_report、mission_status、mission_stop 等(README 列出的启用集)。

若 profile 已由其他 bundle 提供 agentTeams 等同名服务,可省略聚合包,但必须保证 agentTeams 可用。

更短的第一次上手路径见仓库内 docs/QUICKSTART.md(README 称约 5 分钟跑通一次完整蜂巢任务)。

配置

通过 bundle patch(cordis.patch.yml)与 index.js 的 DEFAULT_CONFIG 传入。常用项如下(默认值以 README 为准):

配置项 默认值 说明
pollIntervalMs 15000 哨兵轮询间隔(毫秒,最小 2000)。
warnRatio 0.65 预警阈值。
handoffRatio 0.85 触发自动交接的上下文占用比。
defaultCap 3 头部开关建任务时的默认人数上限。
fallbackContextWindow 131072 无法读取真实窗口大小时的回退分母。
freshProvider "spawn" 续任者 provider。
deleteSessionLogs false 结束/删除时是否物理删除子会话日志。
imageModelSwitch false 是否允许按关键词自动切图像模型。
imageModel "qwen-image-2.1" 默认图像模型。
imageApiKeyRef "USTC_API_KEY" 凭据库或环境变量中的密钥名。

patch 示例(节选):

- insert:
    - id: mission-control
      name: '@local/mission-control'
      config:
        pollIntervalMs: 15000
        handoffRatio: 0.85
        defaultCap: 3
        imageModelSwitch: false
        imageModel: qwen-image-2.1
        imageApiKeyRef: USTC_API_KEY

生图相关还有 imageProvider、imageApiBaseUrl、imageApiSize、imageKeywords 等字段,见仓库 README 配置表。

适用场景与注意

适合谁:已在 DSH 启用实验性 Agent Teams、需要把「多工蜂并行 + 人类坐在主会话指挥」做成可控工作流的开发者;任务带明确子任务拆分、需要可视化进度与统一收尾时,悬浮窗与结束流水线价值更明显。

权限与安全:插件随当前 DSH profile 与进程权限运行,能读写工作区、管理子会话、调用配置的图像 API。安装前应在本地审阅 GitHub 源码 与 MIT 许可证;图像密钥通过 imageApiKeyRef 指向凭据或环境变量,勿把密钥写进可被同步的明文配置。

生态说明:DSH 主张「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。本插件分类为工作流,当前目录星标为 0,选型时建议自行试用与跟版 peerDependencies 版本。

结尾

Mission Control 把 Agent Teams 从「能开很多子会话」推进到「有上限、有哨兵、有广播、有面板、有收尾」的任务形态;协调逻辑主要在 Host 与 UI 完成,减轻 Lead 会话的 token 负担。进一步细节(HTTP 接口全文、QUICKSTART 逐步操作)以仓库 README 与 cordis.patch.yml 为准。

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

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

小夜