第35篇:看板工作通道——分工流水線
Hermes 功能詳解第35篇:Kanban Worker Lanes。看板裡的分工機制。
這篇講的是 Hermes Agent 裡的「看板工作通道」(Worker Lane)——你可以把它想像成一條工廠流水線,每個工位(通道)負責一類活兒,看板系統負責把任務派給合適的工位,並盯著每項任務從「待辦」走到「完成」。
先理解三個角色
- 看板(Kanban):總調度台,記錄每張任務卡片的真實狀態(待辦→進行中→阻塞/完成/歸檔)。
- 工作通道(Worker Lane):一個「工種」,比如「寫程式的」「做研究的」「審程式的」。它只負責幹活,不擁有狀態——幹完必須向看板匯報。
- 審查員(Reviewer):真人(或代理),負責把關「程式改完了」和「任務真完成了」之間的那道門。
第1步:給任務分配「工種」
每個任務卡片上有個 assignee 欄位,相當於「派給誰」。看板調度器看到這個欄位,就會去找對應的通道。
- 如果
assignee是 Hermes 設定檔的名字(比如coder、researcher),調度器會自動啟動hermes -p coder chat -q <提示詞>來幹活。 - 如果
assignee是外部工具(比如 Codex CLI),目前需要外掛程式來註冊,還不是一條鋪好的路,需要自己寫整合程式碼。
任務找不到對應通道時,不會被亂執行,而是留在「待辦」狀態並打上
skipped_nonspawnable標記,等管理員來修。
第2步:工位怎麼「開工」?
調度器會在任務的專屬工作目錄裡啟動工人,並塞給它一堆環境變數,告訴它「你是誰、在哪個板、任務ID是多少」。比如:
HERMES_KANBAN_TASK=task_123
HERMES_KANBAN_BOARD=my_board
HERMES_KANBAN_WORKSPACE=/path/to/workspace
HERMES_PROFILE=coder
工人拿到這些資訊,就知道該幹什麼了。
第3步:幹完怎麼「交差」?
每個任務必須且只能有一個結局,三選一:
| 結局 | 呼叫工具 | 狀態變成 |
|---|---|---|
| 成功 | kanban_complete(summary="...") |
done |
| 需要人工介入 | kanban_block(reason="...") |
blocked |
| 進程退出但沒匯報 | (無) | crashed / gave_up / timed_out |
最關鍵的約定:如果任務是「改程式」這類需要人審的,工人應該用 kanban_block 而不是 kanban_complete,並且在 reason 前面加上 review-required: 前綴。這樣看板介面就會把這行標成「待審查」。
審查員看完後,如果通過就執行 kanban_unblock,任務會重新派給工人做後續;如果要求修改,就留個評論,下一輪工人會看到。
第4步:看日誌和稽核
每項任務的所有輸出都存在 <board根目錄>/logs/<任務ID>.log 裡。想看歷史:
hermes kanban runs <task_id> # 看所有嘗試記錄
hermes kanban tail <task_id> # 即時跟蹤日誌
第5步:調度器幫你兜底
- 工人假死:超過15分鐘沒心跳且進程真的死了,任務會被回收重派。
- 工人崩潰:連續失敗次數超限,任務自動進入「阻塞」狀態等人處理。
- 逾時:超過最大運行時間,自動標記
timed_out。
這些你都不用自己寫,調度器全包了。
小總結
工作通道 = 一個身份(assignee)+ 一個啟動方式(spawn)+ 一個結束約定(terminator)。你只需要定義好設定檔,剩下的調度、重試、稽核,看板系統都幫你管好了。
下篇預告:第36篇——看板審查流程:如何讓「人工把關」變得高效又省心。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/features/kanban