代理團隊委派
這是什麼
一個協調者工作流程,將複雜任務拆分為專業的研究、編碼、寫作與驗證管道。
運作模式
- 難度:
進階 - 節奏:
依需求 - 類別:
委派
核心概念
- 代理團隊委派
- 子代理
- 工具執行器
- 對話
- 標準作業程序
原始碼證據
toolsets.py#TOOLSETS["delegation"]— 以隔離上下文生成子代理來處理複雜子任務(1 個工具)
相關文章
- 十個 Hermes 工作流程,將聊天機器人變成 24/7 助理
- 如何比大多數人更善用 Hermes:架構、專案隔離與可擴展工作流程
實作模式
完成成果
讓一個協調代理平行啟動兩個互相獨立、唯讀的子代理任務,合併結構化調查結果、呈現分歧,並在其中一個子代理失敗時誠實復原。
開始之前
- 使用下方命令建立兩份合成政策測試資料;內容不含私人資料。
- 委派維持單層且有明確界線:兩個並行的頂層
leaf子代理;父代理只啟用file與delegation工具組。 - 不要要求模型指定每個子代理的工具組或
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,包含 source、rule、evidence_quote、unknowns、status。協調代理建立 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.provider、delegation.model 與 delegation.base_url 可以覆寫這條路由。已啟用工具組仍由父代理繼承,並受 leaf 代理限制。在判斷資料會送到哪個供應商或子代理呼叫成本之前,先核對這些委派設定。將父代理限制為 file,delegation,上下文不得放入機密,並透過設定控制並行數與迭代額度。頂層委派雖在背景執行,卻不是持久佇列;/stop、工作階段終止或程序退出都會取消未完成子代理。需要持久執行的工作應使用 Cron 或受監督的背景終端機程序。

