dsh-agent-team-workflow:在 DSH 裏用節點圖編排可恢復的智能體團隊工作流

前言

在 DeepSeek Harness(DSH)裏做多步任務時,常見做法是反覆讓主會話「下一步做什麼」:子智能體、命令、人工確認散落在對話裏,中斷後很難從同一狀態繼續,審查不通過時的迴環也要靠人記流程。若希望把「誰執行、何時停等人、失敗走哪條邊」寫成可校驗的定義,並由運行時統一調度與落盤,就需要工作流層面的插件,而不是隻在提示詞裏描述流程。

下面介紹社區插件 dsh-agent-team-workflow(維護者 lyingloong,分類:工作流)。它以 apiVersion: 2 的 JSON 定義節點圖,運行時負責調度、權限檢查與狀態持久化;節點類型覆蓋 agent、command、HTTP、human、fan-out/join、subworkflow 等,並附帶實時 Web 看板。README 標明 v2 節點運行時已完全取代舊的 stage/kanban 引擎,無 v1 兼容層與狀態遷移。

這是什麼

dsh-agent-team-workflow 是 DSH 插件,包名 dsh-agent-team-workflow。工作流是一張有類型的節點圖:邊根據節點的 outcome 選擇下一跳;運行時擁有調度與權限,節點負責具體執行。狀態按 DSH 會話落在 <dataDir>/sessions/<sessionId> 下(workflow.json 存定義與權限授予,runs/<runId>.json 存 token、context 與狀態),寫入爲原子 JSON,宿主重啓後可從同一 run 文檔恢復。

核心概念與能力

術語

術語 含義
Definition apiVersion: 2 的 JSON:providers、nodes、edges、entry
Node 類型包括 agent、command、http、human、fanout、join、subworkflow 等
Edge {from, to, on},on 爲 outcome,默認 complete
Token 某節點的一次執行;一次 run 含多個 token
Run 一次工作流執行,含 input、context 與 tokens
Artifact / context 節點輸出在 context.nodes.<id>,可映射到後續節點
Permission grant 用戶批准的 command/HTTP 能力,與工作流一併存儲
Lane 模型路由:adapter、model、reasoningEffort、maxTokens

節點類型(節選)

  • agent:拉起 DSH 子智能體;可配置 lane、prompt、outcomes,或通過有序 models 列表在 provider/子智能體錯誤時依次 failover。
  • command:在會話 cwd 執行 shell;退出碼 0 爲 complete,非 0 爲 fail(需有 on: "fail" 的出邊,否則 run 可能以 unhandled_failure 結束)。
  • http:fetch;2xx 爲 complete,否則 fail。
  • human:等待 team_workflow_decide 或 Web 看板;默認 outcomes 爲 approve、reject。
  • fanout / join:按 items 分支執行,join 按 all/any/quorum 聚合。
  • gate:連續運行開關;會話 control 啓用時通過,否則等待隊列累積(README 節點表中的 gate)。
  • subworkflow:內聯嵌套定義,輸出爲嵌套 context。

權限不寫在 definition 裏;使用 command 或 http 節點前,會話須向用戶申請。模式有 deny(默認)、allowlist、full;拒絕時節點以 permission_denied 失敗且不重試。

會話工具

工具 作用
team_workflow_define 校驗並存儲定義與 permission grant
team_workflow_start 用 input 對象創建 run
team_workflow_run 執行就緒節點,直至等待人工/join 或結束
team_workflow_decide 處理等待中的 human token
team_workflow_status 查看定義摘要與最新 run

插件面向 Web GUI:通過 dsh.client 注入側邊欄與會話相關 UI 模塊,提供 live web board(非獨立公衆號式排版需求,此處僅陳述 README/package 描述)。

安裝與啓用

要求 Node.js >= 22.5(package.json 中爲 >=22.5.0),DSH >=0.2.1-rc.2。許可證 MIT。

從 GitHub 安裝:

dsh plugin --profile desktop add github:lyingloong/dsh-agent-team-workflow

或從本地目錄安裝(路徑改爲你的絕對路徑):

dsh plugin --profile desktop add /absolute/path/to/dsh-agent-team-workflow

安裝後重啓 Harness 進程,並刷新 Web GUI。

典型用法

在會話裏用自然語言描述流程即可,由模型組裝 definition 並調用工具。README 示例:

創建一個自動開發的工作流:一個實現者、一個測試命令、一個審查者;審查不通過回到實現,通過後我批准才合併。

典型順序:

  1. team_workflow_define — 校驗並保存定義與權限授予。
  2. team_workflow_start — 傳入 input 創建 run。
  3. team_workflow_run — 跑到等待或結束。
  4. 遇到 human 節點時用 team_workflow_decide 或看板決策。
  5. 需要時用 team_workflow_status 查看狀態。

若工作流包含命令或 HTTP,須先獲得用戶授權,例如 allowlist:

{
  "command": { "mode": "allowlist", "allow": ["pnpm", "node"] },
  "http": { "mode": "allowlist", "allow": ["api.github.com"] }
}

definition 骨架(與 README 中 dev-team 示例一致,邊體現審查回環與人工合併):

{
  "apiVersion": 2,
  "name": "dev-team",
  "entry": "seed",
  "providers": [
    { "id": "default", "adapter": "deepseek", "model": "host-default" }
  ],
  "nodes": [
    { "id": "seed", "type": "human", "config": { "outcomes": ["approve", "reject"] } },
    {
      "id": "implement",
      "type": "agent",
      "role": "engineer",
      "inputs": { "request": "$input.request" },
      "config": { "lane": "default", "prompt": "Implement the request." }
    },
    {
      "id": "test",
      "type": "command",
      "config": { "command": "pnpm test", "timeoutMs": 300000 }
    },
    {
      "id": "review",
      "type": "agent",
      "role": "reviewer",
      "inputs": { "implementation": "$nodes.implement.output", "tests": "$nodes.test.output" },
      "config": { "outcomes": ["pass", "needs_revision"], "prompt": "Review the change." }
    },
    { "id": "merge", "type": "human", "config": { "outcomes": ["approve", "reject"] } }
  ],
  "edges": [
    { "from": "seed", "to": "implement", "on": "approve" },
    { "from": "implement", "to": "test", "on": "complete" },
    { "from": "test", "to": "review", "on": "complete" },
    { "from": "review", "to": "merge", "on": "pass" },
    { "from": "review", "to": "implement", "on": "needs_revision" }
  ]
}

輸入解析支持 $input、$nodes.<id>.output、$item/$index(fan-out)、$context 等。

適用場景與注意

適合需要在 DSH 會話內固定「多角色 agent + 命令/HTTP + 人工閘門 + 並行分支」且希望 run 可恢復、可在 Web 看板跟蹤的團隊式流程。agent 節點可按 lane 或 models 列表做模型路由與 failover;gate 節點用於與連續運行控制配合。

安裝前建議閱讀倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限執行 command 與 HTTP;未授予權限時不應強行設計含 shell/外網的節點,可改用僅 agent/human/fanout/join 的受限流程。社區目錄 SkillHub 與 DeepSeek/幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件爲社區維護的工作流擴展。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/lyingloong/dsh-agent-team-workflow
  • GitHub:https://github.com/lyingloong/dsh-agent-team-workflow

經過上面的步驟,你可以在 Harness 裏用圖結構表達審查回環與人工合併,並把執行狀態留在會話數據目錄中以便恢復與查看。

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

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

小夜