dsh-agent-team-auto-orchestrator:为 DSH 团队工具补上常驻编排与硬门

前言

在 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 實測),核心要點包括:

  1. 每輪先判任務可拆性(看獨立性,不看難度)。
  2. 可拆則並行:默認 2~3 路,獨立塊 4~6 路,上限 8(含 lead)。
  3. 預設路由表外置在 <DSH_HOME>/team-orchestrator.local.json 的 presetRoutes(示例見倉庫 docs/local-config.md);未配置時不猜測預設 id,走 spawn_teammate 自建成員。按域用自定義預設須 subagent(agent_preset=...);spawn_teammate 的 schema 無 agent_preset 參數。
  4. 子任務多於 2 個須用 team_task_* 建板,write_scopes 僅接受工作區相對路徑;建後 claim(不能靠 owner 參數改執行人)→ reassign → 完成後 complete,避免 pending 無主堆積。
  5. 主線程只做:拆任務、派活、收結果、合併驗收。
  6. 團隊未開時降級爲 subagent 並行,並提示用戶「說開團隊」。
  7. 動手前必須先出現 subagent / subagent_fork / spawn_teammate;只建任務板不算開團隊(v0.3.0 收緊)。
  8. 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.1
  • node: ^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 端點與任務板行爲做驗證。

羽毛球分组比赛记分
小程序二维码

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

小夜