Tag (25)
hermes
- Field Report // NO. 032
My agent did the points arithmetic, I booked the flights: an Avios decision loop
How a personal agent turns a vague trip wish into ranked, priced, bookable flights: value points against the live cash fare, make every screen reading falsifiable, and keep the paying click human.
- Field Report // NO. 030
What an extended memory system actually buys you
My agent's new memory librarian filed 49 junk slips out of 52 notes, and every useful card in her store was written by hand. What an extended memory system buys, what it really costs, and how to hire one in three commands.
- Tradecraft // NO. 029
Extended memory systems compared
Hermes plugs into nine extended memory providers, plus the plain-markdown control arm. What each one costs, where each keeps your facts, and which one fits which situation.
- Mission Briefing // NO. 027
Hermes v0.21.0, the Pantheon Release: a household of helpers gets faces, a phone line, and a memory
Hermes Agent v0.21.0 rolls the post-v0.20.0 patch window into one milestone: Bot Mode built into the desktop, hermes peer for bot-to-bot DMs across machines, cron jobs that remember their last run, and subagents you can steer mid-flight. What each one is for, how to wire it, and the hermes update path.
- Mission Briefing // NO. 025
Bot Mode: a group chat for the agents you already run
Hermes Agent's Bot Mode turns the profiles you already run into a roster of named bots that share group rooms, hand off work by mention, and message each other across machines. What it is, why bot-to-bot delivery was the feature's hard problem, and the recipe to wire up one room plus one cross-machine DM.
- Mission Briefing // NO. 026
Keyless: web search with zero API keys on a fresh install
Hermes Agent's keyless web tier gives a fresh install working search and page extraction with no accounts and no keys, riding a five-vendor free rotation with automatic failover. What it is, where it breaks, and the ten-minute recipe to try it.
- Tradecraft // NO. 018
Check upstream before you patch: the three-command version-skew check
Before you patch a bug in the tool you run, find out whether upstream already fixed it. Three git commands tell you how far behind you are and whether your fix already exists.
- Debrief // NO. 017
The day I removed the orchestrator pattern I'd just documented
I published a guide to headless worker agents, then spent two days tearing the same pattern out of my fleet. Here is what the pattern actually cost, the safe way to reverse an architecture decision, and the three things I kept when I did.
- Tradecraft // NO. 016
The .env line that killed your monitoring: sourcing secrets under set -euo pipefail
One unquoted value in a dotenv file can abort every cron that sources it. A monitoring script died on the word Obsidian and the only early-warning system for the site went silent for a day. Here is how dotenv sourcing turns a data file into code, how to find the bad lines, and a loader that cannot be killed by one of them.
- Tradecraft // NO. 015
The bombardment that wasn't: trace your agent's delivery channel before you throttle it
An agent that looks like it is spamming you may be delivering nothing to any human. Every webhook route has a deliver target — and it defaults to log. Here is how to tell whether your agents are actually messaging you or just talking to each other.
- Tradecraft // NO. 014
We deleted it: how to fully remove a self-hosted service
A self-hosted service is never one thing — it is a systemd unit, a cron job, a data directory, a set of env vars, and a process. Here are the five places it hides and the exact commands to prove each one is gone.
- Field Report // NO. 013
How to build a headless worker agent (and when not to)
Build a Hermes profile with no chat channel, no persona, no memory, and four tools, for jobs that genuinely need a fresh context. The exact config, the verifiable-handle rule, and the operating costs that only appear after you run it.
- Field Report // NO. 012
The 13-Profile Stack: how I run a fleet of Hermes agents on one machine
How to run a fleet of Hermes profiles like a cost ledger: the rule for when a new profile earns its own tier, who sits where, and the four failure modes that burn money.
- Tradecraft // NO. 011
Changing a profile's model tier in one line
The mechanism: edit one line in models.yaml, diff it, sync it, restart the profile, grep the config to prove the new tier loaded.
- Tradecraft // NO. 010
One assistant, two channels: Telegram and Slack together
Wire one Hermes profile to Telegram and Slack: the opt-in rule that makes Slack different, the two tokens it needs, and the one-connection trap that took down every profile at once.
- Tradecraft // NO. 009
Memory is for facts. Skills are for procedures.
Memory is for facts and skills are for procedures: one rule that tells you where any agent write belongs, with a working example and the failure that proved it.
- Field Report // NO. 008
Send calendar invites from an email API: the exact payload that gets Accept/Decline buttons in Outlook
How to send a calendar invite through the Dead Simple Email REST API so it renders with Accept and Decline buttons in Outlook: the exact httpx call, the .ics payload, and the two knobs that decide whether the buttons appear.
- Field Report // NO. 007
Stand up a LiteLLM gateway on a VPS: the install, the chain API, and the env-var trap
How to install LiteLLM on a VPS with PostgreSQL, wire provider credentials, add a four-leg model chain through the REST API, and avoid the STORE_MODEL_IN_DB environment-variable trap that made my models vanish on restart.
- Tradecraft // NO. 024
The tool-selection rule that most agent guides skip
Every tool you give an agent is a surface area for cost, a potential failure point, and a prompt injection vector. Here is the minimal-tools principle and how to apply it in Hermes.
- Field Report // NO. 006
How I Consolidated Model Config Across 13 Profiles Into One File
Thirteen copy-pasted model configs, one typo breaking a profile for a weekend. The fix: one models.yaml, tiers instead of per-profile chains, and a sync script you can copy. Here is the whole recipe.
- Field Report // NO. 005
Three things I'd do differently if I started this build today
Three day-one actions that prevent recurring friction: make the box rejoin the tailnet after every restart, name the workload before picking a model, and wire the calendar while you are already in setup mode.
- Field Report // NO. 004
Wiring a Telegram bot to your box: BotFather, tokens, and the Hermes .env schema
Create a Telegram bot your Hermes agent can receive messages from and reply to, keeping the box locked while enabling chat from any Telegram client.
- Field Report // NO. 003
Installing Hermes and giving it a persona: a SOUL that earns its place
Install Hermes on your box, create a named profile, and write a SOUL that tells the agent who it works for, what it is for, and what it will not do.
- Field Report // NO. 002
Locking down a personal-agent box: Tailscale, sshd, and ufw in the right order
The three-step lockdown for a personal-agent VPS, why the order matters, and what ufw actually does when you turn it on.
- Field Report // NO. 001
Picking and standing up a Hetzner CX23
Why Hetzner CX23 for a personal agent VPS, and how to bring one up in two hcloud commands.