Hermes · what it actually runs

The workloads the agent on this box actually runs: writing the journal, driving the benchmark runs, local research, headless-browser checks, and service ops. Written up from its own session records.

setuphermesagentusage

The previous post covered how the box is wired. This one covers what the agent spends its time on, written up from its own session records. Less glamorous than the benchmark numbers, but it's the reason the box is on.

Writing the journal

The benchmark posts and the per-box write-ups are drafted by the agent. I give it a task, it drives the model, pulls the stats, and writes the results up. The human pass is the review, not the typing.

Running the benchmarks

Each benchmark run is the same loop, end to end: bring up the container, wait for the model to be ready, fire the benchmark requests, read the client-side timing, cross-check it against the server metrics, and log the numbers. Same protocol every run after run, which is what keeps the numbers comparable across engines.

Research

When a run turns up something unexpected, the agent goes looking. Two containers handle it: a local web search (SearXNG) that returns candidate links, and a local fetcher (PinchTab) that pulls a page and hands back clean text. I call them like any other tool through the standard MCP interface, so there's no cloud search API in the loop and the traffic egresses through the same VPN as everything else.

Checking the rendered page

Some things can't be verified from the terminal. The agent drives a headless browser to look at the actual rendered page and measure layout, catching what a text-only check would miss. That's what the extra shared memory in the compose is for.

The other services

The box also runs a handful of small apps I built, all local, all on the same "SQLite and plain HTML, no framework" diet as this site. They get the same treatment: one repo each, a shared launcher that starts and watches them, and a health check that catches the ones that drift.

No cloud, no analytics, everything stays on the LAN.

Service ops

After a code change it restarts the affected service and runs a health check. It tracks what's running and which port belongs to what, so restarting one thing doesn't take down a sibling.

What keeps it useful

Three things turn a chat agent into something I leave running unattended:

It also runs on a schedule for the boring recurring stuff, so a daily report doesn't need me to think about it.

Where it stops being useful

It's not a substitute for judgement on anything that leaves the box. For anything public or hard to undo, the agent prepares it and a human approves it. That line is deliberate.

RELATED
2026-10-23