AgentsOpen SourceFreeActiveMachine-verified· intermediate · ~15 min setup

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.

by Shilpa Mitra· verified today· v1.0.0

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.12

Side 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. 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. 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 today
  • cron-and-modelcontainstimeout 600s · max $0

    Expected: briefing config OK: cron '0 7 * * *' valid

  • names-hy3containstimeout 600s · max $0

    Expected: + model tencent/hy3-preview

  • clean-exitexit_codetimeout 600s · max $0

    Expected: 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).