第12篇:子代理委派——AI 的分身術
Hermes 功能詳解第12篇:子代理。把大任務拆給多個 AI 平行處理,效率翻倍。
這篇講的是:如何讓 Hermes Agent 同時派出多個「分身」去幹活,再把結果彙總給你——就像你同時僱了三個實習生,各幹各的,最後交報告。
為什麼要用「分身」?
想像一下:你讓一個助手去查資料、改程式碼、做調研。如果它一件一件做,又慢又容易亂。子代理委派(Subagent Delegation)就是讓主代理臨時創建幾個獨立的「小代理」,每個小代理有全新的對話記憶,只專注於你交給它的那一件事。幹完後,它只把最終結論彙報給主代理,中間過程完全不打擾你。
⚠️ 重要:分身什麼都不知道!
小代理的腦子裡是空的。它不知道你之前聊了什麼,也不知道「那個錯誤」指的是什麼。你必須在派活時,把所有背景資訊寫清楚。
第1步:派一個分身幹單件事
最基礎的用法,就是給一個目標(goal)和背景(context):
delegate_task(
goal="除錯為什麼測試失敗",
context="錯誤資訊:test_foo.py 第42行斷言失敗"
)
注意:背景寫得越詳細,分身幹得越好。下面這個例子就是「壞」和「好」的對比:
# ❌ 壞——分身不知道「那個錯誤」是什麼
delegate_task(goal="修復那個錯誤")
# ✅ 好——所有資訊都給全了
delegate_task(
goal="修復 api/handlers.py 裡的 TypeError",
context="""檔案 api/handlers.py 第47行報錯:
'NoneType' object has no attribute 'get'。
函式 process_request() 從 parse_body() 拿資料,
但 Content-Type 缺失時 parse_body() 回傳 None。
專案在 /home/user/myproject,用 Python 3.11。"""
)
第2步:一次派多個分身(平行批次處理)
預設最多同時跑 3 個分身(可以改設定)。把任務放在一個清單裡就行:
delegate_task(tasks=[
{"goal": "調研主題A", "context": "重點關注近期原始資料"},
{"goal": "調研主題B", "context": "比較主流解釋"},
{"goal": "修復建置失敗", "context": "專案根目錄:/home/user/project"}
])
Hermes 會平行跑這三個任務,全部完成後,把結果按你給的順序彙總成一條訊息發給你。
第3步:給分身換一個更便宜的模型
分身預設用和主代理一樣的 AI 模型。如果你想省錢,可以讓分身用便宜快速的模型:
# 在 ~/.hermes/config.yaml 裡
delegation:
model: "google/gemini-flash-2.0" # 便宜模型
provider: "openrouter" # 可選:換供應商
第4步:控制分身的工作量
- 最大疊代次數:分身最多能呼叫多少次工具(預設50次)。簡單任務可以調小:
delegate_task(
goal="快速檢查檔案",
context="檢查 /etc/nginx/nginx.conf 是否存在,列印前10行",
max_iterations=10 # 簡單任務,10次夠了
)
- 逾時時間:預設沒有硬性逾時。以前有10分鐘上限,結果深度程式碼審查這種活經常被掐斷。現在只要分身還在幹活(比如在等模型回覆),就不算卡死。只有它完全沒動靜(不呼叫API、不啟動工具)才會被判定為「卡住」。
實用場景舉例
平行調研:一次查三個話題(WebAssembly、RISC-V、量子運算),各寫各的報告。
程式碼審查+修復:讓分身在一個全新環境裡審查登入模組的安全性,發現問題直接改,然後跑測試。
大範圍重構:把「把所有 print() 改成 logging」這種會刷爆主代理記憶的活,丟給分身去幹,它幹完只彙報結果。
小總結
子代理委派就是把大任務拆成小任務,分給多個「失憶」但專注的分身。關鍵記住兩點:背景資訊給足、任務描述清楚。這樣你就能同時幹好幾件事,效率翻倍。
下篇預告:分身們幹活時,你還能繼續和主代理聊天——下一篇講講背景任務與訊息佇列,看看 Hermes 是怎麼做到「邊聊邊幹」的。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › getting-started/nix-setup