Files
ngn-agent/.planning/research/hermes/AUTOMATION.md
Bagas Purwa Sentika 0355858596 docs: update project state through Phase 3
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)
2026-06-14 12:02:04 +08:00

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)