Hermes: a scheduled agentic briefing on Hy3-preview
Schedule a hands-off tool-using job (search, summarize, deliver) on the cheap, agentic Hy3-preview model, validated cron + config.
Run this workflow
CI-verified, 3/3 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone who wants a scheduled, hands-off agentic job on a cheap model. CI installs croniter, validates that the job's cron expression actually parses (and computes its next fire time), and that the job config names tencent/hy3-preview. No key. The agent's actual search-and-summarize run is fenced.
Not for
- Letting routing pick the host, prices vary a lot for Hy3 so pin the provider you want
- Expecting CI to run the briefing, the search/summarize/deliver step is fenced
The Stack
Tested Against
hermes-agent docs (2026-06)openrouter tencent/hy3-previewcroniterpython@3.12Side effects & data flow
- Network
- PyPI, install only
- Writes
- ./.venv/, ./briefing.yaml
- Credentials
- none required
Prerequisites
- Hermes Agent installed
- A gateway (Telegram/Slack/Discord) + OpenRouter key to actually run it
Steps
- 1
Define the scheduled job and validate cron + model
Pin the provider (prices vary by host) and pick the model + a cron schedule for the briefing. Hy3 is not on Hermes' tool-use auto-list, so set tool_use_enforcement if it narrates. CI installs croniter, confirms the cron expression is valid and computes its next fire time, and asserts the model slug. It validates the cron and job config, not Hermes' internal scheduler.
python3 -m venv .venv .venv/bin/pip install -q croniter pyyaml cat > briefing.yaml <<'YAML' model: provider: openrouter model: tencent/hy3-preview agent: tool_use_enforcement: true schedule: cron: "0 7 * * *" YAML .venv/bin/python - <<'EOF' import yaml from datetime import datetime from croniter import croniter cfg = yaml.safe_load(open("briefing.yaml")) model = cfg["model"]["model"] cron = cfg["schedule"]["cron"] assert model == "tencent/hy3-preview", f"bad model {model}" assert croniter.is_valid(cron), f"invalid cron {cron}" nxt = croniter(cron, datetime(2026, 1, 1)).get_next(datetime) print(f"briefing config OK: cron '{cron}' valid (next fire {nxt.isoformat()}) + model {model}") EOF - 2
Wire the gateway and let it run (the model step, not checked by CI)
hermes gateway setup connects Telegram/Slack/Discord; with a key set, the scheduled job searches, summarizes, and delivers. That run is the model step and is fenced.
Eval, 3 fixtures
Last passed: verified todaycron-and-modelcontainstimeout 600s · max $0Expected:
briefing config OK: cron '0 7 * * *' validnames-hy3containstimeout 600s · max $0Expected:
+ model tencent/hy3-previewclean-exitexit_codetimeout 600s · max $0Expected:
0
Results
Hy3-preview's standout is its agentic score (~49.7 on Artificial Analysis), not raw intelligence, at $0.063 in / $0.21 out per 1M tokens (256K context) on third-party hosts. A good fit for a recurring search-and-summarize job for cents a run.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).