Checkpoints, Scheduled Tasks, and Persistent Goals
This chapter introduces Hermes's three automation and safety assurance mechanisms: checkpoints protect your files before executing dangerous operations, scheduled tasks let the Agent autonomously execute according to a plan, and persistent goals allow the Agent to advance long-term work across sessions.
Checkpoints and Rollback
Hermes provides a filesystem-level checkpoint mechanism that lets you create snapshots before the Agent executes dangerous operations, and roll back when needed.
Manual Creation and Recovery
Example
/Checkpoint the state before refactoring
# List all checkpoints
/rollback
# Roll back to the specified checkpoint
/rollback 2
Command-line management
Example
hermes checkpoints list
# Restore to the specified checkpoint
hermes checkpoints restore <id>
Automatic checkpoint: Before executing high-risk operations (such as large-scale file modifications, database changes), the Agent automatically creates a checkpoint without manual intervention.
Checkpoints are filesystem-level snapshots, suitable for manually creating one before having the Agent perform large-scale refactoring or data migration. It is not a replacement for Git commits, but an additional safety guarantee.
Scheduled Tasks (Cron)
Hermes has a built-in first-class Cron scheduling system that supports scheduling plans in multiple formats.
Create Scheduled Tasks
Example
hermes cron create
# Create a daily morning report task from the command line
hermes cron create \
--name "daily-briefing" \
--schedule "0 8 * * *" \
--prompt Search for the latest developments in the AI field today and send the summary to Telegram \
--platform telegram \
--chat-id 123456789
Manage Scheduled Tasks
Example
hermes cron list
# Pause/Resume/Delete tasks
hermes cron pause daily-briefing
hermes cron resume daily-briefing
hermes cron delete daily-briefing
# Execute once now (for testing)
hermes cron run daily-briefing
Managing Cron in a Session
Example
/cron list # View All Tasks
/cron pause <name> # Pause Specified Task
/cron resume <name> # Resume Specified Task
Cron Configuration Format
Each scheduled task is an independent JSON file:
Example
{
"name": "daily-briefing",
"schedule": "0 8 * * *",
"prompt": "Search for the latest AI developments today and compile into a briefing"
"platform": "telegram",
"chat_id": "123456789",
"toolsets": ["web", "memory"],
"enabled": true
}
Supported Scheduling Formats
| Formatting | Example | Meaning |
|---|---|---|
| Cron Expressions | "0 8 * * *" | Every day at 8 AM |
| Human language | "every day at 8am" | Same as above |
| Interval | "every 2 hours" | Execute every 2 hours |
Cron Security: Handling Dangerous Commands
When a dangerous command requiring approval is encountered in a scheduled task, the default behavior isReject(instead of waiting for approval—because no one will be waiting at 4 AM to click approve):
Example
# Approval policy for scheduled tasks
approvals:
cron_mode: deny # deny (default) | approve (auto-approve, use with caution)
cron_mode: approve means dangerous commands in scheduled tasks are automatically approved and executed—use only in scenarios where you fully trust the task content.
Persistent Goals
Persistent goals allow Hermes to autonomously advance long-term tasks across multiple sessions, without you needing to remind it each time.
Manage Persistent Targets
Example
hermes goals add "Monitor Hermes Agent's Issues on GitHub weekly,"
Summarize unresolved issues and send to Slack"
# View All Targets
hermes goals list
# Pause/Complete/Delete Target
hermes goals pause <id>
hermes goals complete <id>
hermes goals delete <id>
Persistent Goals vs. Scheduled Tasks
| Comparison Dimension | Scheduled Tasks (Cron) | Persistent Goals (Goals) |
|---|---|---|
| Trigger Method | Automatically triggered at fixed times | Agent autonomously decides when to act |
| Execution content | Fixed prompt, identical every time | The Agent dynamically makes decisions based on context |
| State tracking | None (executed independently each time) | Track Progress |
| Applicable scenarios | Periodic reports, daily summaries | Long-term tasks requiring contextual judgment |
| Typical example | Send AI news at 8 AM every morning | Continuously monitor issues in a repository and follow up |
other extensionsCron is suitable for "doing fixed things at fixed times," while persistent goals are suitable for "Agent, use your judgment—here's the goal, you set the pace yourself." The two complement each other rather than substitute for each other.