Phase 2: memory, session search, git worktree configured Phase 3: Telegram gateway connected, DM pairing approved Phase 4: custom skills created (aws-diagnostics, jira-query, confluence-search, bitbucket-pr)
104 lines
2.9 KiB
Markdown
104 lines
2.9 KiB
Markdown
# Hermes Agent: Automation (Cron)
|
|
|
|
## Capabilities
|
|
|
|
Hermes has a full cron system built into the gateway daemon. Everything below is available through the `cronjob` tool — the agent can set it up via conversation.
|
|
|
|
## Job Types
|
|
|
|
| Type | Schedule | Example |
|
|
|------|----------|---------|
|
|
| One-shot | Relative delay | `30m`, `2h` |
|
|
| Recurring | Interval | `every 30m`, `every 2h` |
|
|
| Recurring | Cron expression | `0 9 * * *` |
|
|
| One-shot | ISO timestamp | `2026-03-15T09:00:00` |
|
|
| **No-agent mode** | Any schedule | Script-only, zero LLM cost |
|
|
|
|
## Delivery Targets
|
|
|
|
```
|
|
origin → Back to where the job was created
|
|
local → Save to ~/.hermes/cron/output/
|
|
telegram → Telegram home channel
|
|
discord → Discord
|
|
slack → Slack
|
|
email → Email
|
|
all → Every connected platform
|
|
"telegram:123:456" → Specific chat + thread
|
|
```
|
|
|
|
## No-Agent Mode (Script-Only)
|
|
|
|
For watchdogs, disk checks, health pings — zero LLM cost:
|
|
|
|
```bash
|
|
# Script at ~/.hermes/scripts/check-disk.sh
|
|
# Agent skips this entirely — just runs script, delivers stdout
|
|
hermes cron create "every 5m" --no-agent --script check-disk.sh --deliver telegram
|
|
```
|
|
|
|
- Empty stdout → silent tick (no delivery)
|
|
- Non-zero exit → error alert delivered
|
|
- `{"wakeAgent": false}` → silent tick
|
|
|
|
## Skill-Backed Cron Jobs
|
|
|
|
Load one or more skills before running the prompt:
|
|
|
|
```python
|
|
cronjob(action="create", skill="blogwatcher",
|
|
prompt="Check configured feeds, summarize anything new.",
|
|
schedule="0 9 * * *", name="Morning Feeds")
|
|
```
|
|
|
|
## Job Chaining
|
|
|
|
```python
|
|
cronjob(action="create", name="daily-digest",
|
|
schedule="every day 7am",
|
|
context_from=["ai-news-fetch", "github-prs-fetch"],
|
|
prompt="Write the daily digest using the outputs above.")
|
|
```
|
|
|
|
## Job Lifecycle
|
|
|
|
```
|
|
hermes cron list
|
|
hermes cron pause <id>
|
|
hermes cron resume <id>
|
|
hermes cron run <id>
|
|
hermes cron edit <id> --schedule "every 4h"
|
|
hermes cron remove <id>
|
|
```
|
|
|
|
## Provider Recovery for Cron
|
|
|
|
Cron jobs inherit fallback_providers and credential pool rotation. Per-job provider override:
|
|
|
|
```python
|
|
cronjob(action="create", schedule="every 2h",
|
|
provider="openrouter", model="google/gemini-3-flash-preview",
|
|
prompt="Check server status")
|
|
```
|
|
|
|
## Scheduled Task (Chat)
|
|
|
|
```
|
|
/cron add "every 1h" "Summarize new feed items" --skill blogwatcher
|
|
```
|
|
|
|
## Key ngn-agent Use Cases
|
|
|
|
| Use Case | How |
|
|
|----------|-----|
|
|
| Daily report | Cron + skill → delivered to Telegram |
|
|
| Stale session cleanup | Cron + no-agent script to list, archive old sessions |
|
|
| Jira summary | Cron + MCP Jira skill → delivered to Telegram |
|
|
| Infra health check | Cron + no-agent script, deliver only on error |
|
|
| S3 cleanup monitoring | Cron + AWS CLI script, wakeAgent only when issue found |
|
|
|
|
## ngn-agent should NOT build
|
|
|
|
- Custom scheduler (use Hermes cron)
|
|
- Report delivery system (use cron delivery targets)
|
|
- Script execution (use no-agent mode) |