← Back to blog

Hermes Agent Production Layer: Durable Files, Approvals, and Watches

July 16, 2026 · Eric · 6 min read

Hermes (and similar self-hosted agents) already give you memory, cron, terminal, and MCP. What they still struggle with is the boring production layer: public HTTPS files, human spend gates that reach Discord, and website checks that keep running when the VPS process is offline.

Agent Media Tools now ships that layer as three related capabilities — all on the same REST API and MCP connection you already use.

Quick install: hermes mcp add agent-media-tools --url https://agentmediatools.com/api/mcp --auth header · Full brief: /llms.txt

1. Durable artifacts — real links for real work

When an agent writes report.pdf only on disk, Discord and clients cannot open it. Artifacts store the bytes and return a public URL, with plan-tier size and retention:

PlanMax sizeMax TTLActive files
Free5 MB24 hours10
Pro25 MB30 days100
Builder50 MB90 days250
curl -X POST https://agentmediatools.com/api/artifact \
  -H "Authorization: Bearer mt_xxx" \
  -H "Content-Type: application/json" \
  -d '{"content":"# Weekly report","filename":"report.md","label":"ops","ttl_hours":168}'

# → url, raw_url, content_hash, expires_at
# List:  GET /api/artifacts
# Delete: DELETE /api/artifact/:slug
# MCP: create_artifact, list_artifacts, delete_artifact

2. Approval notify channels — spend decisions where you already are

Approvals already return an approve_url. Now a human can wire Discord, Telegram, and email once per agent key so requests land in the same channels as Hermes messages.

# Human (logged in session)
POST /api/agent/keys/:id/notify-channels
{
  "discord_webhook": "https://discord.com/api/webhooks/…",
  "telegram_bot_token": "123:ABC…",
  "telegram_chat_id": "987654321"
}

# Agent
POST /api/agent/approvals
{"action":"purchase","summary":"Buy 100 credits","amount_cents":500}
# → approve_url + notified.email/discord/telegram flags
# Poll GET /api/agent/approvals/:id until approved|denied|expired

Webhook hosts are restricted to Discord; Telegram calls only the official API. Secrets are masked when you read channels back.

3. Website Watchdog — always on when Hermes is not

Local cron dies with the process. Watchdog runs on our side: Free 2 watches, Pro 25, Builder 50. On change: account webhook, Discord, and/or email, plus event history.

POST /api/agent/watch
{
  "url": "https://example.com/pricing",
  "label": "Competitor pricing",
  "interval_minutes": 60,
  "discord_webhook": "https://discord.com/api/webhooks/…"
}

GET /api/agent/watch
GET /api/agent/watch/:id/history
PATCH /api/agent/watch/:id  {"action":"pause"}

Only public URLs are accepted (private/reserved networks are blocked). See the playbook: Website monitoring workflow.

Why this is worth Pro / Builder

Pricing details: /pricing. API reference: artifacts, watchdog, approvals.

Try it in five minutes

1. First win — free API call and key · 2. Install MCP for Hermes · 3. Create an artifact and paste the URL into Discord.

Open Agent Hub → · See Pro / Builder →

Related: Inter-agent mailbox · Webhooks for pipelines · One API key, 70+ tools