DSH 子代理(Subagent)實作教學

八個截圖驗證的步驟:在 spec 中定義子代理角色、並行啟動子代理小隊、讀懂每份報告,並為每個子代理指定模型。

最近更新: 2026-10-07

DeepSeek Harness 裡的子代理(subagent)是主對話用內建 subagent 工具派出來的子智慧體:它在自己的上下文視窗裡於背景完成一件被指派的任務,然後向呼叫它的主 Agent 回報。這種分工正是社群常說的 Agent Teams / 多智慧體玩法——主 Agent 負責規劃和彙整,便宜而專注的子代理去讀程式、寫程式、做驗證。

本教學跟著一部真實錄影(來源見文末)逐步操作:用雙 verifier 子代理設定建置一個小型書籤應用,用 5 個空轉子代理壓力測試機制,再試驗為子代理指定不同的模型供應商。每張截圖都對照影片逐格核驗,並深層連結到擷取影格的精確秒數。

八個步驟上手 DSH 子代理

  1. 1

    把子代理角色寫進 spec

    在 vault/spec.md 裡加一段 subagents 小節,寫清楚每個子代理的名字和職責。影片裡加了兩個:一個 mobile verifier,用 Chromium 確認視覺效果和 UX;一個 verifier,自行檢查每個功能。同一份 spec 還要求每個功能帶兩個核取方塊——一個給初始實作,一個給獨立的子代理驗證——這樣每個子代理只專注自己的任務,和主對話互不干擾。

    Obsidian 正在編輯 DSH 工作區的 vault/spec.md,subagents 小節列出了負責 Chromium 視覺確認的 mobile verifier 和逐項檢查功能的 verifier。
    子代理角色從 spec 裡的幾行大白話開始:誰驗證什麼、怎麼驗證。影片 30:48 處
  2. 2

    讓主 Agent 把角色細化成契約

    讓 DSH 細化這些子代理,並保持簡單。它會把你的筆記改寫成契約驅動的代理:verifier 跑純函式單元測試、啟動 API、檢查每個介面契約和資料庫狀態(docker exec psql),輸出 PASS 或 FAIL;UI verifier 用 Playwright 跑行動裝置檢視區、深色模式和拖曳持久性。DSH 還會在這裡追問技術選型、拖曳實作方式等釐清問題,然後才動筆。從這一步起,主 Agent 負責派發子代理並整理它們的報告。

    DeepSeek Harness 對話回覆細化後的契約驅動子代理——verifier 跑單元測試、API 和 psql 檢查,UI verifier 用 Playwright——下方是釐清問題卡片。
    DSH 把粗略角色變成帶 PASS/FAIL 的契約,動筆前還會追問細節。影片 31:48 處
  3. 3

    產生可直接實作的 spec,然後交出去

    提示 DSH 把 spec 寫得盡量完整,讓一般子代理都能照著實作。回覆是一份 11 節的定稿計畫:技術堆疊、前置條件、儲存庫結構、環境與指令、資料模型、API 契約、前端行為(每個功能帶實作/驗證核取方塊)、純邏輯、驗證方案、建置順序和完成定義。影片裡的常用套路:對話、寫 spec、做規劃用更強的模型,機械式執行交給便宜且容易驗證的子代理。

    $commit, then implement with subagents
    DeepSeek Harness 訊息彙整寫入 vault/spec.md 的 11 節 spec(含驗證契約),下方輸入框已輸入 commit, then implement with subagents。
    spec 已達到可直接實作的標準——每個決定都敲定,便宜的子代理照做即可。影片 36:40 處
  4. 4

    先跑一支空轉小隊,看懂 subagent 工具

    先別急著跑真正的任務,用一則一次性提示詞看懂機制。主對話會連續呼叫 5 次 subagent 工具——每個子代理一次——它們全部在背景執行(這裡是 sleep 60),各自有自己的子代理 ID。對話裡會印出一張狀態表:5 個並行執行,無需輪詢,每個結束時執行環境會通知主 Agent。

    $Create 5 subagents that all have to wait 60 seconds
    DeepSeek Harness 解釋 subagent 工具接線,下方是 create 5 subagents that all have to wait 60 seconds 提示詞與首批工具呼叫。
    一句提示詞、五次 subagent 工具呼叫——每個子代理都在背景帶著自己的任務啟動。影片 34:35 處
    DeepSeek Harness 狀態表顯示 5 個子代理全部並行執行,各自帶子代理 ID 和 60 秒等待狀態,頂部有子代理計數器。
    5 個子代理、5 個 ID、一張狀態表——並行執行,無需輪詢。影片 34:42 處
  5. 5

    在對話標頭監控小隊

    子代理執行期間,對話標頭會出現一個子代理計數器。點開可以看到每個子代理的名字、提示詞、各自的 token 消耗和已執行時間。成本權衡就在這裡一目了然:每個子代理單獨計費,但每個都保持自己的上下文乾淨,主對話更專注,整體 token 往往反而更省。

    DeepSeek Harness 對話標頭的子代理下拉已展開,列出 5 個 wait-60s 子代理,各自 token 消耗約 9.6K tok、執行時間 1m02s。
    每個子代理單獨計費——在標頭下拉裡逐個檢視 token 消耗。影片 34:52 處
  6. 6

    閱讀回傳的報告

    每個完成的子代理會以 subagent-report 上下文注入的形式回報給呼叫它的主 Agent,對話裡彙整結論:示範中 5 個子代理全部以結束代碼 0 完成 60 秒等待。點開標頭下拉裡的任意子代理,可以檢視它收到的輸入和它回報的內容。想看更完整的執行軌跡,去對話的 Trajectory 分頁。

    DeepSeek Harness 對話確認 5 個子代理全部以結束代碼 0 完成 60 秒等待,摘要之間穿插 subagent-report 上下文注入。
    完成的子代理以 subagent-report 注入回傳給主 Agent,由對話彙整。影片 35:05 處
  7. 7

    為子代理指定不同模型

    預設情況下子代理繼承對話的供應商和模型——subagent 工具本身沒有按次指定模型的參數。所以當影片要求兩個子代理分別用 Claude Opus 和本機 Ollama 的 Qwen 3 時,DSH 給出了三個選項:推薦路線是帶模型覆寫的 workflow 工具,它的 agent() hook 接受每個子代理獨立的 provider/model 設定;或者在部署設定裡新增按模型區分的 subagent 工具實例後重新啟動;也可以就讓兩個子代理都用繼承的模型。

    $Create two subagents both waiting 1 minute. One using opus, one using qwen3
    DeepSeek Harness 說明 subagent 工具預設繼承會話模型,並提供問題卡片:帶模型覆寫的 workflow 工具、設定裡加按模型的 subagent 工具、或兩個子代理都用繼承模型。
    想讓一個子代理跑 Opus、另一個跑本機 Qwen?DSH 推薦 workflow 工具的按子代理模型覆寫。影片 42:10 處
  8. 8

    讀執行總結——收穫時刻

    長時間的自主建置會以一張 outcome 卡片收尾:spec → 建置 → 驗證全流程由背景子代理一次跑完,產出一個可執行、已驗證的應用——Express + Prisma + Postgres 的後端子代理、Vite + React 的前端子代理,以及執行檢查清單的驗證子代理——工作樹已提交、乾淨。然後像影片裡那樣,點開團隊建置出的應用,親手確認 spec 裡的功能真的能用。

    DeepSeek Harness 的 outcome 總結列出做了什麼——spec、Express 和 Prisma 後端子代理、Vite 和 React 前端子代理、驗證子代理——以及每一步如何被驗證。
    收穫卡片:spec 到建置到驗證,由背景子代理端對端完成。影片 43:32 處
    由 DeepSeek Harness 子代理團隊建置的 Favorite Websites 應用,顯示已儲存的書籤卡片和帶標題、URL、描述與圖片欄位的 Edit bookmark 對話框。
    團隊的交付物:一個能親手點驗的可用書籤應用。影片 44:13 處

DSH 子代理常見問題

關於子代理、成本、模型和監控的快速解答。

DSH 裡的子代理(subagent)是什麼?

主對話用內建 subagent 工具派出的子智慧體:它在自己的上下文視窗裡於背景完成一件被指派的任務,然後向呼叫它的主 Agent 回報。主 Agent 始終負責派發子代理、整理它們的報告。

子代理會不會更費 token?

會——每個子代理都有自己的 token 消耗,在標頭下拉裡可以逐個檢視,5 個子代理就是 5 次獨立計費。換來的是乾淨得多的上下文:主對話只收每份報告而不是全部中間步驟,影片的結論是效果更好、整體 token 往往反而更省。

不同子代理能用不同模型嗎?

原生 subagent 工具不行——它的參數裡沒有按次指定模型這一項,子代理繼承對話的供應商和模型。正規做法是帶模型覆寫的 workflow 工具:agent() hook 接受每個子代理獨立的 provider/model;也可以在部署設定裡新增按模型區分的 subagent 工具實例後重新啟動。

用子代理前必須先寫 spec 嗎?

不用。像「建立 5 個都等 60 秒的子代理」這樣一句話就能做實驗。spec 是為真實工作準備的:把驗證角色和實作/驗證核取方塊寫進 vault/spec.md,才能像影片裡那樣一次性得到經過驗證的成品。

Workflow 和 Agent Teams 有什麼差別?

兩者都在標準模式下使用。Workflow 是一支臨時專家小組:執行前產生腳本、並行派出子代理、結果彙整給主 Agent,子代理之間互不可見。Agent Teams 則是一支可持續存在的團隊:先建任務看板、分配成員,成員之間可以互傳訊息、多輪推進,最後由領隊的主 Agent 彙整。一次性的並行驗證選 Workflow,需要協作推進的大型任務選 Agent Teams。

在哪裡檢視子代理做了什麼?

三個地方:對話標頭下拉列出每個子代理的提示詞、token 消耗和執行時間;每個子代理的結果以 subagent-report 注入落在對話裡;Trajectory 分頁記錄整個對話的完整執行軌跡。

dsh 子代理能跑 Codex 或 Claude Code 的模型嗎?

原生還不行。裸 subagent 工具只會用工作階段自己的 provider 產生子代理;受支援的按子代理換模型路線是 workflow 工具的 model 覆寫(見前面的 FAQ)。為 Codex / Claude Code 子代理加原生 model 與 reasoning-effort 選項,目前是官方討論區的一份公開提案(#8989)——搜尋 `dsh subagent codex`、`dsh subagent claude code` 指向的正是這個缺口。落地之前走 workflow 工具的覆寫路線即可,官方 subagent SDK 面也值得隨提案進展持續關注。

相關 DeepSeek Harness 攻略

繼續深入:預設、規劃和 harness 的其餘玩法,一次一篇。

來源與致謝

本頁截圖取自以下影片,版權歸原創作者所有——每張圖都連回來源影片中的精確時間點。中文《Agent Teams 實測》一支僅作事實參考,未取用任何畫面。

DSH Plugins 是獨立的 DeepSeek Harness 外掛市集,與 DeepSeek 官方無關,也不代表官方背書。第三方外掛未經安全稽核,安裝前請審查原始碼。

每週取得最新的 DeepSeek Harness 外掛,絕不濫發。