现在位置: 首页 > Hermes Agent > 正文

检查点、定时任务与持久目标

本章介绍 Hermes 的三种自动化与安全保障机制:检查点在执行危险操作前保护你的文件,定时任务让 Agent 按计划自主执行,持久目标让 Agent 跨会话推进长期工作。


检查点与回滚

Hermes 提供文件系统级别的检查点(Checkpoint)机制,让你可以在 Agent 执行危险操作前创建快照,并在需要时回滚。

手动创建与恢复

实例

# 会话中手动创建检查点
/checkpoint 重构前的状态

# 列出所有检查点
/rollback

# 回滚到指定检查点
/rollback 2

命令行管理

实例

# 列出所有检查点
hermes checkpoints list

# 恢复到指定检查点
hermes checkpoints restore <id>

自动检查点:在执行高风险操作(如大规模文件修改、数据库变更)前,Agent 会自动创建检查点,无需手动干预。

检查点是文件系统级别的快照,适合在让 Agent 执行大规模重构或数据迁移前手动创建一个。它不是 Git 提交的替代品,而是额外的安全保障。


定时任务(Cron)

Hermes 内置 first-class Cron 调度系统,支持多种格式的调度计划。

创建定时任务

实例

# 交互式创建定时任务
hermes cron create

# 命令行创建每日早报任务
hermes cron create \
  --name "daily-briefing" \
  --schedule "0 8 * * *" \
  --prompt "搜索今天的 AI 领域最新进展,发送摘要到 Telegram" \
  --platform telegram \
  --chat-id 123456789

管理定时任务

实例

# 列出所有任务
hermes cron list

# 暂停/恢复/删除任务
hermes cron pause daily-briefing
hermes cron resume daily-briefing
hermes cron delete daily-briefing

# 立即执行一次(用于测试)
hermes cron run daily-briefing

会话中管理 Cron

实例

# 在任意平台的会话中使用斜杠命令管理定时任务
/cron list                 # 查看所有任务
/cron pause <name>         # 暂停指定任务
/cron resume <name>        # 恢复指定任务

Cron 配置格式

每个定时任务是一个独立的 JSON 文件:

实例

// 文件路径:~/.hermes/cron/daily-briefing.json
{
  "name": "daily-briefing",
  "schedule": "0 8 * * *",
  "prompt": "搜索今天的 AI 领域最新进展,汇总成简报",
  "platform": "telegram",
  "chat_id": "123456789",
  "toolsets": ["web", "memory"],
  "enabled": true
}

支持的调度格式

格式示例含义
cron 表达式"0 8 * * *"每天早上 8 点
人类语言"every day at 8am"同上
间隔"every 2 hours"每 2 小时执行一次

Cron 安全:危险命令处理

定时任务中遇到需要审批的危险命令时,默认行为是拒绝(而非等待审批——因为没有人会在凌晨 4 点等着点 approve):

实例

# 文件路径:~/.hermes/config.yaml
# 定时任务的审批策略
approvals
:
  cron_mode
: deny     # deny(默认)| approve(自动批准,谨慎使用)

cron_mode: approve 意味着定时任务中的危险命令会被自动批准执行——仅在完全信任任务内容的场景下使用。


持久目标(Persistent Goals)

持久目标让 Hermes 在多个会话中自主推进长期任务,而不需要你每次提醒。

管理持久目标

实例

# 设置一个持久目标
hermes goals add "每周监控 GitHub 上 Hermes Agent 的 Issue,
                  汇总未解决问题发到 Slack"


# 查看所有目标
hermes goals list

# 暂停/完成/删除目标
hermes goals pause <id>
hermes goals complete <id>
hermes goals delete <id>

持久目标 vs 定时任务

对比维度定时任务(Cron)持久目标(Goals)
触发方式固定时间点自动触发Agent 自主决定何时行动
执行内容固定 Prompt,每次相同Agent 根据上下文动态决策
状态跟踪无(每次独立执行)跟踪推进进度
适用场景定期报告、每日摘要需要上下文判断的长期任务
典型示例每天早上 8 点发 AI 资讯持续监控某个仓库的 Issue 并跟进

Cron 适合「固定时间做固定的事」,持久目标适合「Agent 你看着办,目标是这个,你自己把握节奏」。两者互补而非替代。