AI 程式設計教程中文版
從原理到實戰

08 · 自動化邊界

使用 Hermes cron、background、delegation、hooks 和訊息投遞前,先建立許可權、日誌、失敗處理和人工確認邊界。

Hermes 做自動化,但自動化不是把所有事情都交給 agent。真正可靠的自動化一定有邊界、日誌、失敗處理、人工確認點、回復路徑——這五件沒有的自動化,不是節省人力,是放大事故面。

官方資料:CronDelegationHooksPersistent GoalsMessaging GatewaySecurityCheckpoints & Rollback

先給結論:自動化的四個預設——預設只讀、預設不釋出、預設不刪除、預設不外發敏感內容。所有寫操作限定範圍,所有高風險動作人工確認。基礎失敗時,先停自動化再看程式碼,不要讓定時任務在錯誤狀態裡反覆跑。

自動化能力層

Hermes 中和自動化相關的 6 類能力——任意一項啟用都讓風險面更大一層

Gateway

後臺程序,把訊息平臺和 cron scheduler 接進 Hermes——它是遠端能力的入口。

Background session

把長任務放到獨立 session,完成後回報結果——主聊天保持響應。

Cron

週期性或一次性執行任務,支援自然語言(例如:每天 9 點)和標準 cron 表示式。

Delegation

生成隔離上下文的子 agent(child agents),用於並行研究、審查或拆分任務。

Hooks

在生命週期事件(啟動 / 命令前後 / session 結束)執行自定義程式碼、webhook 或 shell 指令碼。

Persistent Goals

持久目標:設一個長期目標後,agent 跨多輪持續推進——Hermes 自創的 Ralph loop。

這些能力疊加後,Hermes 可以主動執行任務、呼叫工具、發訊息、修改檔案,甚至連線遠端環境。風險也隨之指數上升——任意兩項組合(如 cron + hooks)的故障傳導路徑就比單一能力複雜數倍。

適合自動化

適合 Hermes 自動化:

  • 每日摘要。
  • 定時檢查服務狀態。
  • 收集公開資訊並生成報告。
  • 跑只讀診斷。
  • 對固定目錄做低風險整理。
  • 自動提醒和待辦彙總。
  • 後臺跑測試並回報結果。

這些任務有共同點:輸入穩定、失敗可接受、結果可檢查、動作可重複。

不適合直接放權

不適合直接放權:

  • 刪除資料。
  • 釋出生產。
  • 修改賬單或許可權。
  • 操作真實客戶資料。
  • 自動提交或合併高風險程式碼。
  • 在未隔離環境執行未知指令碼。
  • 傳送無法撤回的外部訊息。

這些任務可以讓 Hermes 做計劃、檢查、草稿和預演,但執行前必須人工確認。

Cron 邊界

Cron 可以建立一次性或週期任務,可以 pause、resume、edit、run、remove,可以繫結一個或多個 skills,也可以把結果投遞到 origin chat、檔案或平臺目標。官方還提供 no-agent mode,讓指令碼按計劃執行並把 stdout 原樣投遞。

設計 cron 前先回答:

  • 失敗後誰知道?
  • 日誌在哪裡?
  • 任務是否冪等?
  • 是否會重複傳送訊息?
  • 是否可能修改檔案或外部系統?
  • 憑據是否最小許可權?
  • 執行目錄是否明確?
  • 會不會遞迴建立更多 cron?

官方限制 cron-run sessions 遞迴建立 cron jobs,這是防 runaway scheduling loop 的必要護欄。你自己的任務也要有同類邊界。

Workdir 與專案規則

Cron 預設不一定在你的專案目錄裡執行。設定 workdir 後,專案裡的 AGENTS.mdCLAUDE.md.cursorrules 才會按規則注入,terminal/file/code execution 也會以該目錄作為工作目錄。

這意味著:專案相關 cron 不要只寫“每天檢查專案”。要寫清楚絕對路徑、規則檔案、輸出位置和失敗通知。

Delegation 邊界

Delegation 會生成 child agents。官方強調子 agent 沒有父對話歷史,只知道 goalcontext 欄位。父 agent 必須把任務需要的資訊完整傳入。

適合:

  • 多個獨立資料收集。
  • 多模組只讀審查。
  • 並行測試/調查,且寫入範圍互不衝突。
  • 複雜任務的隔離分析。

不適合:

  • 多個子任務寫同一個檔案。
  • 修改同一模組。
  • 需要強共享上下文的複雜決策。
  • 生產釋出。

預設併發和 depth 限制要謹慎調整。每多一層 delegation,成本、併發寫入風險和排障複雜度都會增長。

Hooks 邊界

Hermes 有 gateway hooks、plugin hooks 和 shell hooks。它們適合:

  • 記錄 slash command 使用。
  • 長任務提醒。
  • session start/reset 通知。
  • webhook 投遞。
  • 自動格式化或阻斷危險動作。

Hooks 是確定性自動化,不是 LLM 推理。它們應該短、小、可觀測。不要在 hook 裡塞大型業務邏輯,也不要讓 hook 悄悄吞掉失敗。

最小安全基線

默认只读
默认不发布
默认不删除
默认不外发敏感内容
所有写操作限定范围
所有高风险操作人工确认
所有定时任务有日志
所有外部 token 最小权限
所有消息平台有 allowlist
所有后台任务有停止方式
所有自动化有失败通知

沒有邊界的自動化,不是效率,是持續執行的事故源。

系列收束 · Hermes 自我改進的邊界 = 這條遞進順序

讀完這一篇,你應該能把 Hermes 的使用順序串起來——這就是「self-improving agent runtime」的正確進化路徑

flowchart TB
    A1[1 理解 Hermes 是什麼<br/>區分聊天 CLI / IDE 助理 / 訊息 Bot / Agent Runtime]
    A2[2 跑通穩定閉環<br/>install + provider + chat + session]
    A3[3 配好 provider 和目錄<br/>~/.hermes 檔案分工 + Provider 策略]
    A4[4 收斂工具和執行環境<br/>toolset 和 backend 解耦]
    A5[5 治理記憶<br/>MEMORY.md / USER.md / 不當日誌寫]
    A6[6 沉澱 skills<br/>漸進載入 + Curator 治理]
    A7[7 接入訊息平臺<br/>Gateway + allowlist + 三類場景區分]
    A8[8 自動化<br/>cron / delegation / hooks / goals 守邊界]
    A1 --> A2 --> A3 --> A4 --> A5 --> A6 --> A7 --> A8
    A8 -.->|"反過來檢查"| A2

跳過任何一步都會在後面付雙倍代價——基礎不穩就開擴充套件,等於把每一層的不確定性傳給下一層;而且新層暴露的故障並不會自己定位回根因,最後只能整體重啟從頭排查。

官方資料

下一步

本頁目錄