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

跳过任何一步都会在后面付双倍代价——基础不稳就开扩展,等于把每一层的不确定性传给下一层;而且新层暴露的故障并不会自己定位回根因,最后只能整体重启从头排查。

官方资料

下一步

本页目录