前言¶
在 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 注入(有任務時才注入):
mission_start寫明目標與workers上限(也可用會話頭部蜂巢開關:按defaultCap建佔位任務,首條人類消息可自動成爲真實目標)。- 建好任務板後,用
mission_scale一次把工蜂數配平到min(待認領子任務數, 上限)。 - 工蜂執行子任務並定期
mission_report;需要全貌時 Lead 調mission_status。 - 主會話需要全體同步時直接發消息即可觸發駕駛艙廣播(暫停蜂巢時不向子會話下發,子會話仍可用工具繼續工作)。
- 收尾:懸浮窗「結束任務」或調用結束接口鏈路,或
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
步驟:
- 將倉庫放到本地(README 給出的獲取方式爲 clone 到本機,路徑自定)。
- 編輯
~/.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"
]
}
}
}
- 在 profile 目錄執行
pnpm install(或由 DSH 桌面端觸發),重載客戶端。 - 新建會話後,頭部應出現蜂巢模式開關,頁面出現「蜂巢任務」懸浮窗,工具列表中出現
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