Hermes Agent cron job that starts a Sume Format run
A Hermes cron job begins with no memory of last week. Write the prompt, idempotency key, spend cap and SILENT or CRON_FAILURE reply so a Sume run starts once.

To run a Sume Format on a schedule from Hermes Agent, create a cron job whose prompt contains the whole request: the Format handle and slug, the input, a spend cap, and an idempotency key built from the date. Hermes starts each run in a completely fresh session, so anything the prompt leaves out does not exist for the agent.
The second half of the job is the reply. Hermes lets a final response suppress delivery or declare failure, and a Sume run that is only queued should do neither of the usual things.
What does a fresh session change?
Hermes's cron page says each job runs in a new agent session and that the prompt must contain everything the agent needs beyond attached skills. There is no conversation to scroll back through, so the agent cannot know that last Monday's run already happened.
| Hermes rule (vendor page) | Consequence for the Sume request |
|---|---|
| Fresh agent session every run | Put the Format path, input and caps in the prompt, not in memory |
| The scheduler ticks every 60 seconds | Do not expect to-the-second timing; a run may start up to a minute late |
| [SILENT] in the final reply suppresses delivery | Use it when the run was submitted and nothing is ready to report |
| [CRON_FAILURE] alone on the first line marks failure | Use it when Sume answered with an error you cannot fix by retrying |
| hermes cron run <job_id> runs a job now | A manual rerun reuses the same key and gets the same Sume run back |
What goes in the prompt?
Write it as if the agent were a contractor on day one. The key contains the ISO week, so any rerun inside the same week is a replay and not a second paid run. Sume answers a replay with 200 and idempotency_hit: true instead of 202.
Submit this week's teaser with one request, then stop.
curl -sS -X POST https://api.sume.com/v1/formats/myteam/weekly-teaser/runs \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: weekly-teaser-2026-W40" \
-d '{"instruction":"Make the weekly teaser from the input.",
"input":{"headline":"Autumn range"},
"generation_spend_cap_usd":20,
"on_active_run":"skip",
"communication":{"webhook_url":"https://hooks.example.com/sume"}}'
Replace 2026-W40 with the current ISO week before sending.
If the status is 200 or 202, reply with exactly [SILENT].
If it is 4xx or 5xx, reply with [CRON_FAILURE] on the first line,
then the error code and message from the response body.Why reply SILENT after a 202?
A 202 means the run is queued, not finished. A Format run is one agent turn that can take minutes, and the final media does not exist yet. Sending a delivery that says "teaser done" would be wrong, so the job stays quiet and your webhook receiver, which gets format.run.terminal when the run ends, is the thing that tells people the video is ready.
The failure branch matters more. A 400 or 403 will repeat on every schedule until someone changes the prompt or the key, and Hermes can only surface that if the reply starts with the failure marker. Hermes's own retry, which re-runs after 5, 15 and 30 minutes, applies to network errors before any API call, so it does not stand in for handling a Sume error code.
What stops overlap and runaway spend?
Two request fields do the guarding, and both are documented on Calling a Format.
on_active_run: "skip"returns askippedrun instead of starting a second one while the Format is still busy. Skipped runs never deliver a webhook, so a quiet week looks the same as a skipped week unless you read the receipt.generation_spend_cap_usdsets the ceiling for that run. A number above the Format's own cap is honored, so pick one deliberately;0is rejected andnullmeans the $500 platform maximum.- The run is unattended. Approvals are treated as granted, and a run that cannot finish comes back
failedwithunattended_blocked, so a missing input surfaces as a failure and not as a question.
What if the agent should create the schedule instead?
Sume has its own scheduler, but its API cannot create or edit schedules, so a Hermes cron job calling the Format API is the way to keep the schedule in code or a config file. The agent in the job also needs a way to send the request: a shell tool as in the prompt above, or Sume's hosted MCP as described in the Hermes MCP post.
Sources
Related posts
More in Agents
- Hermes cron no-agent script: poll a Sume bulk queue quietly
A Hermes cron script that prints nothing while a Sume bulk queue runs and one line when every item is terminal. Includes the Python, 404 and 429 cases.
- What is an AI video agent? One that talks, or one that makes
An AI video agent can mean a live on-camera persona like a Tavus PAL, or an agent that makes videos for you. Which one Sume is, and how to call it from code.
- Run the Sume video agent from your backend with Agent Completions
POST /v1/agent/completions runs the same agent as the Sume Agents chat, with tools and media generation, and returns an async run receipt you poll or webhook.
- Safe automation for AI agents that call paid APIs
Keep agents read-only by default, keep secrets out of logs, and on hosted MCP send an idempotency_key, preview with dry_run, and cap with max_spend_usd.
Written by Sume