前言¶
在 DeepSeek Harness(DSH)裏啓用官方實驗團隊包 @deepseek-ai/dsh-experimental-agent-team-profile 之後,spawn_teammate、team_task_*、wait_agent、send_message 等工具會掛進會話,但包內並不注入團隊編排相關的 system prompt(維護者在 README 中寫明對其 lib/index.js 檢索 systemPrompt 爲零命中)。模型往往仍按單線程方式自己讀文件、跑命令,團隊能力形同閒置。
dsh-agent-team-auto-orchestrator 是 loyalchiiina 維護的純宿主插件(無客戶端 UI),通過常駐 system-prompt 段和工具層 pre-execute 硬門,把「先判可拆性、並行派活、任務板閉環、主線程只拆合」壓進每個預設、每個會話的默認行爲。下面按機制、配置與排查說明其用法。
這是什麼¶
- 名稱:
dsh-agent-team-auto-orchestrator(npm / 插件 id 同名) - 分類:工作流(SkillHub 目錄標註)
- 當前版本:
1.0.1(package.json;SkillHub 頁面同步爲 v1.0.1) - 許可證:MIT
- 維護者:loyalchiiina
- 定位:在官方團隊包只提供工具面的前提下,補「下命令」——每輪注入團隊編排鐵律,並在選定業務域內強制「先派活再動手」。
與按需加載的技能(如 agent-team-routing-law)或單個預設的 persona 不同,本插件通過 ctx.systemPrompt.section({ name, order: 250, text }) 在插件掛載後對所有預設、所有會話常駐生效,與 dsh-todo-float-ball、dsh-artifact-linker、dsh-skill-guard 等同套官方接口。
核心功能¶
常駐注入的編排規則¶
README 記載注入全文約 1881~1990 字符(v0.3.4 實測),核心要點包括:
- 每輪先判任務可拆性(看獨立性,不看難度)。
- 可拆則並行:默認 2~3 路,獨立塊 4~6 路,上限 8(含 lead)。
- 預設路由表外置在
<DSH_HOME>/team-orchestrator.local.json的presetRoutes(示例見倉庫docs/local-config.md);未配置時不猜測預設 id,走spawn_teammate自建成員。按域用自定義預設須subagent(agent_preset=...);spawn_teammate的 schema 無agent_preset參數。 - 子任務多於 2 個須用
team_task_*建板,write_scopes僅接受工作區相對路徑;建後claim(不能靠owner參數改執行人)→reassign→ 完成後complete,避免 pending 無主堆積。 - 主線程只做:拆任務、派活、收結果、合併驗收。
- 團隊未開時降級爲
subagent並行,並提示用戶「說開團隊」。 - 動手前必須先出現
subagent/subagent_fork/spawn_teammate;只建任務板不算開團隊(v0.3.0 收緊)。 - v0.3.2 起增加成員複用:每輪先看花名冊,
inactive成員不佔釋放名額(maxMembers爲累計創建數),新活優先send_message喚醒。
工具層硬門(v0.2.0 起)¶
軟提示可被忽略;硬門在工具分發前檢查本輪是否已「真開團隊」。
四層邏輯(摘自 README):
| 層 | 作用 |
|---|---|
| 0 域識別 | 緩存用戶消息,關鍵詞劃分 fluent / plugin / dsh / preset |
| 1 工具分類 | 入域則除豁免工具外全部須先開團隊(含 read/glob/grep);未入域主要攔動手類工具 |
| 2 狀態判定 | 本輪出現 subagent / subagent_fork / spawn_teammate 即視爲已開;team_task_create 不計入 |
| 3 防死循環 | 同一 turn 最多攔 gateMaxStrikes 次(默認 4),隨後 fail-open 放行 |
Fluent 域按全流程計:幾何、網格、求解、後處理、排錯等步驟,以及讀日誌、查 case 等讀操作,入域後均須先派活。設計原則包括全路徑 try/catch 失敗則放行、不要求固定並行路數(單步也須派給 1 個子代理或 1 個成員)、不按工具調用序號而按本輪是否出現團隊工具判定。
本機配置(v0.3.2 雙軌)¶
業務相關的預設路由、域關鍵詞、profileName 放在插件目錄外的 <DSH_HOME>/team-orchestrator.local.json,發佈包不含本機內容。文件缺失或解析失敗時回退默認;修改文件後硬門相關邏輯可在下次工具調用時通過 mtime 熱重載,但注入文本中的 presetRoutes 若要立即反映須重啓 DSH。
插件內開關¶
cordis.patch.yml 中可配置:
- insert:
- id: dsh-agent-team-auto-orchestrator
name: dsh-agent-team-auto-orchestrator
config:
injectLaw: true
enforceTeamGate: true
gateMaxStrikes: 4
gateDomains:
- fluent
- plugin
- dsh
- preset
injectLaw: false:不注入 prompt,僅保留狀態路由。enforceTeamGate: false:關閉硬門,僅軟約束。
安裝與啓用¶
環境要求¶
package.json 聲明:
dsh:>=0.1.7-rc.1node:^22.19.0 || >=24.0.0
團隊能力依賴官方團隊包工具面;編排插件在其之上疊加提示與硬門,使用前請確認 profile 中已掛載 @deepseek-ai/dsh-experimental-agent-team-profile(README 問題描述中的前提)。
獲取插件¶
SkillHub 社區目錄將本插件標爲「可安裝」,歸類工作流,來源 GitHub。目錄頁安裝指引爲向 DSH 發送:
請安裝 DSH 插件 loyalchiiina/dsh-agent-team-auto-orchestrator。
(頁面文案在「先讀取…」處截斷,完整步驟以你在 DSH 內的插件安裝流程爲準。)倉庫地址:https://github.com/loyalchiiina/dsh-agent-team-auto-orchestrator
安裝或修改 cordis.patch.yml / team-orchestrator.local.json 後,須完全退出 DSH 再啓動;README 寫明宿主爲 Node 進程無熱重載,Ctrl+R 不重載宿主。
可選本機路由表¶
若需要按業務域把子任務路由到你自己的預設 id,在 <DSH_HOME>/team-orchestrator.local.json 填寫 presetRoutes,格式見倉庫 docs/local-config.md。
典型用法¶
1. 確認插件與團隊包已掛載¶
桌面端可在本機迴環訪問狀態路由(端口見啓動日誌或 ~/.dsh/desktop-preferences.json):
GET http://127.0.0.1:<port>/dsh-team-orchestrator/status
返回包含插件版本、injectLaw、prompt 段信息、teamMounted、orchestratorMounted 等。非 loopback 訪問返回 403。
2. 在插件 / DSH / 預設相關會話中工作¶
用戶消息命中 gateDomains 中某域後,Lead 在未調用 subagent、subagent_fork 或 spawn_teammate 前,動手類工具乃至 read 可能被硬門拒絕;拒絕理由會提示「只建任務板不算開團隊」及「本 turn 第 N / 4 次攔截」。應先派活(不可拆任務也派 1 路),再執行具體工具。
3. 多子任務走任務板閉環¶
超過 2 個子任務時,按注入規則建 team_task_*,劃分不重疊的 write_scopes,Lead claim 後 reassign 給持久團隊成員,子任務完成後 complete。子代理 id 不能直接 reassign 爲 owner,需在任務描述中註明實際執行者。
4. 調硬門強度¶
若只希望保留文案、不想要攔截,將 enforceTeamGate 設爲 false。若希望減弱同輪反覆攔截,可調整 gateMaxStrikes(默認 4)。
適用場景與注意¶
適合誰:已在 DSH 中啓用 agent-team 工具、希望 Lead 默認並行派活而不是單線程包辦的使用者;尤其是 Fluent、插件開發、DSH 配置、預設編寫等長鏈路任務。
權限與安全:插件以當前 DSH 宿主進程權限運行,硬門會攔截部分工具調用;安裝前請閱讀倉庫源碼與 MIT 許可證。README 聲明零寫入、零 spawn、零聯網、零遙測(編排行爲除外),唯一副作用是每條會話 system prompt 增加約 750 字(README「邊界」一節)。
上限與邊界:spawn_teammate 不能指定預設;團隊成員上限以 profile 與實際報錯 Team member limit N reached 爲準(README 記載本機 profile 覆蓋 maxMembers: 8,官方默認口徑可爲 16)。硬門可能導致單步任務在同 turn 內被攔至多 4 次,依賴 fail-open 與配額避免死鎖;子代理會話在無團隊工具時會自動放行(canOpenTeam)。
SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係;GitHub 上該倉庫公開星標數爲 2(寫作時線索與目錄一致)。
結尾¶
dsh-agent-team-auto-orchestrator 把官方團隊包從「工具在線」推進到「默認編排」:常駐鐵律覆蓋全部預設,硬門在關鍵域強制先派活,本機路由與域規則外置 JSON,狀態路由便於自查掛載情況。若你正在 DSH 裏摸索多智能體協作,可從目錄頁或 GitHub 安裝後在實際會話中對照 status 端點與任務板行爲做驗證。