委派

代理團隊委派

一個協調者工作流程,將複雜任務拆分為專業的研究、編碼、寫作與驗證管道。

工作流程圖版代理團隊委派hx-workflow-agent-team-delegation正在載入視覺預覽…
以原始尺寸檢視
操作流程圖

有界委派與誠實合併

協調者把兩項獨立工作交給葉節點代理,合併有證據的結果,並把失敗分支如實保留。

有界委派與誠實合併協調者把兩項獨立工作交給葉節點代理,合併有證據的結果,並把失敗分支如實保留。有界委派與誠實合併協調者把兩項獨立工作交給葉節點代理,合併有證據的結果,並把失敗分支如實保留。
  1. 輸入: 有界需求. 路徑、格式、停止條件
  2. 處理: 協調者. 建立兩個葉節點任務
  3. 處理: 子代理 A. 只讀來源 A
  4. 處理: 子代理 B. 只讀來源 B
  5. 停止: 失敗分支. 不得補造答案
  6. 檢查點: 證據合併. 保留共識與衝突
  7. 結果: 可審核結果. 保留來源歸屬

代理團隊委派

這是什麼

一個協調者工作流程,將複雜任務拆分為專業的研究、編碼、寫作與驗證管道。

運作模式

  • 難度:進階
  • 節奏:依需求
  • 類別:委派

核心概念

  • 代理團隊委派
  • 子代理
  • 工具執行器
  • 對話
  • 標準作業程序

原始碼證據

  • toolsets.py#TOOLSETS["delegation"] — 以隔離上下文生成子代理來處理複雜子任務(1 個工具)

相關文章

  • 十個 Hermes 工作流程,將聊天機器人變成 24/7 助理
  • 如何比大多數人更善用 Hermes:架構、專案隔離與可擴展工作流程

實作模式

完成成果

讓一個協調代理平行啟動兩個互相獨立、唯讀的子代理任務,合併結構化調查結果、呈現分歧,並在其中一個子代理失敗時誠實復原。

開始之前

  • 使用下方命令建立兩份合成政策測試資料;內容不含私人資料。
  • 委派維持單層且有明確界線:兩個並行的頂層 leaf 子代理;父代理只啟用 filedelegation 工具組。
  • 不要要求模型指定每個子代理的工具組或 max_iterations:模型可見的 delegate_task 格式不提供這兩個欄位。子代理繼承父代理工具組,leaf 限制會移除子代理的委派能力,迭代額度由設定中的 delegation.max_iterations 控制。
  • 子代理不會取得父代理的對話記錄,也不能向使用者提問;上下文必須包含所有路徑、輸出格式規格與範圍界線。
  • 分開的對話與終端機任務識別不等於檔案系統沙箱。兩個子代理都能存取同一個專案檔案系統,因此本實驗只分配唯讀且不重疊的範圍,並把 comparison.md 保留給父代理寫入。
LAB_DIR="$HOME/hermes-labs/delegation-policy"
mkdir -p "$LAB_DIR"
cat > "$LAB_DIR/policy-a.md" <<'EOF'
# 政策 A
退款申請可在 30 天內提出。
必要證據:收據編號。
EOF
cat > "$LAB_DIR/policy-b.md" <<'EOF'
# 政策 B
退款申請可在 14 天內提出。
必要證據:收據編號。
EOF
cd "$LAB_DIR"

輸入與輸出契約

每個子代理回傳 JSON,包含 sourceruleevidence_quoteunknownsstatus。協調代理建立 comparison.md,列出兩份結果、共識與衝突;只有證據充分才提出建議。缺少或失敗的子代理必須標為 failed,不能由協調代理重建其結果。不得修改來源檔或呼叫網路。

{"source":"policy-a.md","rule":"...","evidence_quote":"...","unknowns":[],"status":"ok"}

動手完成

從測試資料夾啟動互動式 TUI,並限制父代理工具:

hermes --tui --toolsets file,delegation

在 TUI 提示列送出:

啟動剛好兩個彼此分開的頂層 leaf 委派,不要使用單一 batch。
子代理 A 只能讀 policy-a.md 的絕對路徑;子代理 B 只能讀 policy-b.md 的
絕對路徑。每個子代理都要收到完整路徑、界線,以及必要 JSON 欄位:
source、rule、evidence_quote、unknowns、status。
不要傳入子代理工具組或 max_iterations。不得修改來源、使用網路或建立
巢狀代理。兩個子代理必須分別回傳。
兩則完成訊息都回到本對話後,再建立 comparison.md,列出有來源標示的
兩份結果、共識與衝突;只有證據充分才提出建議。不得重建失敗結果。

頂層委派會在背景執行。保持 TUI 工作階段開啟,執行期間可用 /agents 檢查;兩個分開的委派會各自以完成訊息回到對話。

驗證成功

  • /agents 顯示剛好兩個頂層 leaf 子代理,而且沒有巢狀委派。
  • 兩份 JSON 都含所有必要欄位,且 evidence_quote 真正存在於指定來源。
  • comparison.md 保留衝突,不會把不相容規則平均化。
  • 計算兩份來源的雜湊或比較差異;兩者都未改動,而且子代理沒有網路工具。
  • 暫時改名 policy-b.md 再跑:子代理 B 必須失敗,協調代理必須標示該分支失敗,不可虛構其 rule

發生問題時

  • 子代理缺少上下文時,補上絕對路徑、精確格式規格與完整驗收條件;「使用剛才討論的檔案」並不足夠。
  • 子代理逾時或達到迭代額度時保留失敗狀態,只能把成功的同層子代理結果用於它自己的來源,並詢問是否重試。
  • 使用 /stop 中斷父代理、以 /new 取代工作階段,或在完成前離開 TUI 時,背景子代理會被取消,未完成結果會被丟棄。只重新啟動缺少的有限委派。
  • 成本升高時,在設定中降低 delegation.max_iterations 或改為依序執行;不要嘗試逐次指定子代理額度,也不要提高巢狀深度。

安全、隱私與成本

子代理預設繼承父代理的模型與供應商憑證,但 delegation.providerdelegation.modeldelegation.base_url 可以覆寫這條路由。已啟用工具組仍由父代理繼承,並受 leaf 代理限制。在判斷資料會送到哪個供應商或子代理呼叫成本之前,先核對這些委派設定。將父代理限制為 file,delegation,上下文不得放入機密,並透過設定控制並行數與迭代額度。頂層委派雖在背景執行,卻不是持久佇列;/stop、工作階段終止或程序退出都會取消未完成子代理。需要持久執行的工作應使用 Cron 或受監督的背景終端機程序。

官方參考