前言¶
在 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 示例:
創建一個自動開發的工作流:一個實現者、一個測試命令、一個審查者;審查不通過回到實現,通過後我批准才合併。
典型順序:
team_workflow_define— 校驗並保存定義與權限授予。team_workflow_start— 傳入 input 創建 run。team_workflow_run— 跑到等待或結束。- 遇到 human 節點時用
team_workflow_decide或看板決策。 - 需要時用
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 裏用圖結構表達審查回環與人工合併,並把執行狀態留在會話數據目錄中以便恢復與查看。