two¢ents

The traps

Seven ways this build goes wrong.

1 · Metered tools on a schedule

Every web and browser tool is metered through Portal, and cron multiplies the calls:

Monitoring only, nothing newsworthy all month: 3 runs/day × 4 topics × (1 search + 3 extracts) = 48 calls/day + 3 runs × 1 x_search sweep = 3 calls/day ≈ 51 metered calls/day → ~1,550/month. That is the idle floor. Each drafted story adds: Researcher ~5 extracts + Fact-Checker re-fetching ~5 sources ≈ 10 to 12 more calls, ×3 LLM role invocations on top. Going hourly "to be safe": 8× the idle floor → ~12,000 calls/month for a beat that moves twice a day.

Multiply by whatever Portal charges per call. Start at two runs, cap extracts per topic, have every delivery report its call counts, and check Portal usage after day one. Watch browser_vision most, since it sends screenshots to a vision model. Prompt 2 makes the agent ask first.

2 · A fact-checker that agrees with everything

Hand it the draft and say “verify this”, and it checks fluent prose against its own priors and approves it. Give it only the claims and URLs and make it fetch each source. That costs about 5 extra calls per story.

3 · Silent scrape failures

x_search coverage varies, sites change, and web_extract on a JavaScript page can return a cookie banner and three nav links. The model will summarize thin content anyway, and an edition built on empty fetches looks like a quiet day. So the Researcher reports failed fetches, and “nothing cleared the bar” shows its counts so you notice when 14 searches drop to 2. Move stubborn sources to the browser tools on purpose.

4 · The urge to auto-publish

By week two you approve 90% of drafts as-is and start eyeing the browser tools. Keep CMS credentials out of ~/.hermes/.env and publish steps out of every skill, and keep the rule that nothing from a webpage or feed can make it post. This pipeline reads hostile text all day. The 10% you’d have auto-published includes the confidently wrong draft your publication gets remembered for. Keep approvals.mode on smart or manual.

5 · The style guide in the wrong file

SOUL.md loads on every run and allows up to 20,000 characters. Put the full guide there and you pay for it dozens of times a day, mostly on runs that draft nothing. Keep SOUL.md under 1,500 characters and the rubric in the skill.

6 · Agent-written scripts on the local backend

execute_code on the default local backend runs as you, inside a pipeline that reads arbitrary web content. Switch to the docker backend before the first script exists.

7 · The RSS reader that doesn’t exist

Hermes has no RSS reader as of v0.19.0. If a guide’s design relies on “native RSS”, doubt its other tool claims too. Use cron with search and extract, or the bridge you build.

Disagree? Pin a note on it →