Hermes series · Training 01
Install an agent harness you own, plug in a brain you already pay for, and hire one agent that sorts your inbox before lunch. About forty five minutes, no coding.
What a triage agent feels like on a normal day, and the one idea that makes every other AI decision easier. No setup. Start here.
Five steps on your own machine, with the real walls called out and a check after each one.
Which subscriptions actually work, what a fleet costs, and where to run it once your laptop is not enough. Optional.
How many agents to build, what broke while we recorded this, a glossary, and the source docs.
Wherever we name a tool we use, you will see a 🔁 Swap box with alternatives. The entire reason this stack is worth learning is that it does not marry you to one company. Use whatever you already pay for.
One agent, one job. It reads your mail, sorts it, and interrupts you only when a human decision is genuinely required. The rest of the time you hear nothing, which is the whole point.
The mechanism behind that day is called a heartbeat. You give an agent one standing instruction and an interval. Each time the interval passes and the agent is idle, that instruction fires as though you had typed it. Then the part that makes it livable: if nothing changed, it says so in one line and stops.
Every message gets exactly one label, and you get one short report. Nothing is deleted and nothing is sent on your behalf, so the worst case on a bad day is a message filed in the wrong bucket.
An agent that only exists in a window on your desk is not an employee. Pick one channel and it can find you anywhere.
This is the part that confuses people, and everything else follows from it.
The model is the brain. It reads, reasons and writes, and that is the whole job. It cannot remember yesterday, open your inbox, or wake up on its own. You rent it, and a better one ships every few months.
The harness is the body. It is the application that holds your memory, your connectors, your permissions and your schedule, and talks to the model on your behalf. Most chat apps you already use are a harness with one company's brain bolted in. An open harness lets you choose the brain, per agent, and change it later without rebuilding anything.
Because they are different jobs, and you should keep both. A coding agent is your workshop: you open it, you drive, and it stops when you close the window. This is your staff: a roster of named agents with their own brains, tools and clocks, working while you are asleep and reaching you where you already are.
Use any model you want. Heartbeats, so it checks instead of you. And one agent per job, so each one does it properly.
Any model means the subscription you already pay for becomes the engine, and your cost per agent turns into a decision rather than a bill that arrives. Heartbeats mean "go check on it" stops being your job. Specialists mean shorter instructions, cheaper runs and noticeably better output than one assistant trying to do everything.
You can stop reading here and still have the whole idea. Level 1 is the product. Everything below is for when you want it actually running on your own machine.
Five steps on your own machine. Nothing here needs the terminal except one optional prep command, and nothing here is code.
The harness pulls down a handful of open source tools it needs to operate your machine. If they are already there, install takes about five minutes. If they are not, it takes considerably longer, and it looks stuck while it works.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
A package manager is the hardware store your agent walks to. Mid job it realises it needs a tool it does not have, and with one installed it can go and fetch it rather than stopping and asking you. Version control is the other thing it reaches for constantly.
Two things, and both cost us time. First, check the address: searching for the project by name surfaces lookalike domains, so type the address from the official docs rather than trusting a search result. Second, the install looks frozen when it is not. On a fresh user account it sat for several minutes, reported failures on individual tools, then quietly installed them as it went. Let it finish before you decide it broke.
The first question the app asks is which model to use. The cheapest good answer is a subscription you already pay for: some providers let a third party sign in on your behalf, which means no API key and no per token bill arriving later.
Not every provider allows this, and the ones that do not get expensive fast, because the fallback is paying per token through an API key. This is the one decision on this page worth five minutes of reading first: see the brains table.
Your agent now thinks but cannot touch anything. A connector service fixes that with one key that opens all the doors, rather than you wiring up each app by hand.
Every agent you create after this inherits the same tools, so you never do the wiring twice. And if you ever change harness or model provider, you move one key rather than reconnecting every app.
Permissions. It is tempting to approve everything so the demo works, and for a read and sort job that is more access than you need. Most connector services have an advanced control that gives you read, write and delete separately per connection. Connect your mail read only for the first day, watch what it does, then widen it.
Start a fresh session first. New task, new session, always: a conversation carrying yesterday's context burns tokens for nothing.
Stay in your main profile. That agent acts as the recruiter here. It scouts, builds, trains and onboards the new hire, writing the job description, pinning the model and setting the tool access. Then paste the prompt from the Starter kit below and let it work.
Letting a brand new agent loose on a live inbox. The prompt below ends with a dry run instruction on purpose: it shows you the labels it would apply to your last twenty messages and waits for your yes. Read that list properly. It is the cheapest possible moment to discover it thinks every newsletter needs your attention.
Three copy blocks. The first hands the whole build to your own coding agent, the second hires the triage agent, and the third is the blank job description to reuse for every hire after this one.
If you would rather not click through the steps yourself, fill in the four blanks at the top and paste this into the coding agent you already use. It reports after each step instead of working silently.
# FILL THESE IN FIRST # [OS] = macOS or Windows # [PROVIDER] = the AI provider whose subscription you already pay for # [MAIL] = the mail account you want triaged # [CHANNEL] = where you want to be pinged (chat bot, work chat, text) You are helping me install an open source agent harness on my [OS] machine and get one working agent running. I am not a developer. Explain each step in plain words, and stop and report after each numbered step rather than doing all of it silently. If something fails, tell me what you saw before you retry. 1. Check whether I already have a package manager and version control installed. If not, install them and confirm. 2. Walk me through downloading and installing the harness's desktop app for [OS]. Tell me where to get it from the official documentation, not a search result. Warn me before the step that usually looks frozen. 3. Help me connect [PROVIDER] as the model, using subscription sign in rather than an API key if that provider supports it. If it does not support sign in, stop and tell me before I spend anything, and show me the options. 4. Help me connect a tool connector service so the agent can reach [MAIL]. Set the mail permission to read only for now. Confirm what access it has. 5. Confirm the agent can list its own tools and see [MAIL]. 6. Set up [CHANNEL] so the agent can reach me when I am away from my desk. Do not create any agents yet. Stop when step 6 is confirmed and tell me what you set up, then I will give you the job description separately.
This is the prompt from the walkthrough. Change the two bracketed values and paste it into your main profile.
Set up a new specialized agent for me, then give it its job. Create a new profile called "triage" with this identity: Name: Triage Role: Email chief of staff for [YOUR NAME] at [YOUR COMPANY]. Job: Keep my inbox free of decisions I haven't made yet. Read new mail, label it, surface only what needs me. Configure it: - Model: pin a fast, cheap model. This job is sorting, not reasoning. - Access: use my existing mail connector. - Skills: only what it needs for email. Turn the rest off. - Create the labels TO DO, FYI and MARKETING if they don't exist. Write its job description file so it works exactly like this: 1. Each run, read unread mail from the last 24 hours. Skip anything already labeled. 2. Apply exactly one label per message: TO DO someone is waiting on a reply, a decision, or money from me FYI I should know it, no action: receipts, confirmations, CCs, reports, newsletters I chose to get MARKETING cold outreach, promos, blasts, anything selling to me When it is genuinely a coin flip, label it TO DO and say so. A missed reply costs me more than a wrong FYI. 3. Never archive, delete, reply, forward or send. Labeling only. 4. Then write me one report, in this shape: TO DO (n) one line each: who, what they want, deadline if stated FYI (n) one line total MARKETING (n) count only If TO DO is empty, say "Nothing needs you." and stop. Do not narrate an empty inbox. Then set its heartbeat: every 50 minutes, run the pass above and stay silent unless something new landed in TO DO. Before you touch my inbox: do one dry run. Show me the labels you would apply to the last 20 messages and wait for my yes.
Read this once and you can write the next agent yourself. These seven choices are the transferable part, not the email specifics.
| The line | What it buys you |
|---|---|
| Give it a name | The agent gets its own folder, its own memory and its own command. Names matter for you too: you need something to call when you tell one agent to hand work to another. |
| Pin a cheap model | Sorting subject lines is not reasoning. This is the single line that makes it affordable to leave running all day. |
| Exactly one label | Forces a decision. Multi label triage quietly recreates the pile you were trying to clear. |
| Name the expensive mistake | Telling it that a missed reply costs more than a wrong filing means it knows which way to err when it is unsure. |
| Never send or delete | Keeps the blast radius at zero while you are still learning to trust it. Grant more powers once it has earned them. |
| Silent by default | Without this line your agent becomes a second inbox, which is worse than the first one. |
| Dry run first | You approve its judgement on twenty real messages before it is allowed to write anything. |
Every agent after this one starts here. Fill in the six sections and you have a new hire; the shape is what keeps them predictable.
### Identity Name: [AGENT NAME] Role: [ONE LINE. Who they work for and what they own.] Job: [ONE SENTENCE. The outcome, not the activity.] ### On every run 1. [What to read, and how far back.] 2. [What to skip, so it does not redo finished work.] 3. [The decision it makes, with the exact options allowed.] 4. [Which way to err when it is genuinely unsure, and why.] ### Never - [The irreversible actions it must not take.] - [Anything that speaks to another human as me.] ### Report Write one report in this shape: [SECTION] (n) [one line each: who, what, when] [SECTION] (n) [one line total] If there is nothing that needs me, say "[YOUR QUIET PHRASE]" and stop. Do not narrate an empty result. ### Schedule Run [HOW OFTEN] and stay silent unless [WHAT MAKES IT WORTH INTERRUPTING ME]. ### Before you touch anything live Do one dry run on the last [N] items. Show me what you would do and wait for my yes.
Optional. This is the section that saves you money, and the first table is the one thing we would ask you to read before you buy anything.
Providers split into two camps, and the difference is the whole cost story. Sign in means the harness logs into a plan you already pay for, so there is no separate bill. API key means you pay per token on top of whatever else you pay, and an agent that runs all day is a meter that never stops.
| Provider | How it authenticates | What you need to know |
|---|---|---|
| OpenAI via the Codex provider | Sign in | Device code login with your existing chat subscription, and it runs the Codex models. This is what we used in the walkthrough. How much your plan tier allows is not documented, so expect to discover your own ceiling. |
| xAI Grok | Sign in | Browser sign in, no key needed, on the premium consumer tiers. Strong at using tools, which matters more for agent work than raw benchmark scores. |
| GitHub Copilot | Sign in | The same device code flow as the Copilot command line tool. Easy to overlook if you already pay for it for coding. |
| Anthropic Claude | Top tier only | Sign in works on the Max plan with purchased extra usage credits. It is not available on the mid tier plan, which has to use an API key instead. Worth checking your own plan before assuming either way. |
| Everything else routers, Gemini, DeepSeek, Qwen, NVIDIA and many more | API key | Dozens of providers are supported, all with a key in a local config file. Fine for occasional heavy thinking, expensive for anything on a schedule. |
| A model on your own hardware | Free | Needs a capable machine. Costs nothing per run, your data never leaves the building, and that unlocks work which cannot legally go to a third party. |
Which plans allow third party sign in is a commercial policy, and it moves. Two of the rows above changed shape in the months before this page was written. Read the harness's own provider documentation on the day you set this up rather than trusting any guide, including this one.
Build the agent on the smartest model you have. Once it knows its job, drop it to the cheapest one that can still do it.
Setup is where reasoning matters, and execution usually is not. Our triage agent was configured with a top model and left running on a small one. The counterweight is worth stating too: during setup, a cheap model on a hard job costs more in your wasted time than it saves in tokens.
If you hit a usage limit or your provider has an outage, the harness switches to a backup instead of stopping. Your work is about to depend on these agents, so do not let one provider's bad day become yours.
You can point one kind of work at one model and another elsewhere, and some harnesses will bounce a hard task between two. Ignore all of it on day one. One default is fine.
Raise it and the agent remembers more, at some cost to your machine. Third party memory providers plug in here too and extend it much further, which is worth a look once you are settled.
Local, hosted, or your own remote machine. You can change this later and keep the same desktop app in front of you, which is why starting local costs you nothing.
Leave everything off that this agent does not need. Fewer tools is not a limitation, it is how you stop an agent reaching for the wrong one.
Some harnesses let profiles become named bots with group chats and handoff between them. We prefer plain sessions. This is preference, not correctness.
Start local. You will know the moment you have outgrown it: you are away from your desk, you want to ask your agent something, and the machine it lives on is shut.
Download and go. Runs only while the machine is awake. On a Mac you also get your messages, notes and calendar as tools, and a small always on desktop left plugged in at home makes a capable little server.
The people who make the harness will run it, so there is no server to maintain and it is reachable while you are out. Check whether the hosted product is still in preview before you put client work on it.
A real computer, which is the whole point: you can install actual applications for your agents to use, which a hosted product will not let you do. Providers keep uptime high, so it beats a machine at home that shares your power supply.
If an agent is reading your inbox, it needs access to yours and that is that. But the moment an agent starts communicating with other people, give it its own identity: its own mail address, and its own number if it texts or calls.
Two reasons, and the second one surprised us. It stops the agent speaking as you, which is a real liability question. And it puts you in the right frame of mind: you send an assistant a request, you do not think their thoughts for them.
Triage is the easiest first hire because everyone has the problem. The same four part shape builds any of these, and the job description template in the Starter kit is the only file that changes.
Labels the inbox, escalates only decisions. What this guide builds.
Watches for new enquiries and drafts the first reply. Never sends without you.
Reads your industry overnight and files one brief you can skim over coffee.
Flags uncategorised spending and anything that looks like a duplicate charge.
There is no single right answer, but there is a trap. You will see people online with fleets of a hundred agents. That is payroll bloat, and it creates exactly the problem a large company has, where nobody can find out who owns what.
Build a flat team of broadly capable agents. A small team with big output.
Think of a T shaped hire: deep in one thing, capable across the neighbouring ones. An agent that handles search visibility and can also write copy and touch a website is really a content manager, and that is the right size of job. We recently collapsed our own fleet down to role level agents and the output got better, not worse.
You also do not need to talk to all of them. Run several, but speak to one: a chief of staff that assigns work to the others and reports back when it is done. Most harnesses have the plumbing for this already, including a board view where you can watch the handoffs happen if you want to.
We left these in on purpose. All four are normal, and knowing them in advance is the difference between a slow afternoon and a lost one.
| Term | What it actually means |
|---|---|
| Model | The brain you rent. It reads, reasons and writes, and it forgets everything the moment the conversation ends. |
| Harness | The application around the brain. It holds the memory, the tool access, the permissions and the schedule. This is the part you own. |
| Agent | One harness profile with a job description, a pinned model and its own memory. An employee, not a prompt. |
| Heartbeat | A standing instruction plus an interval. The agent wakes, does the job, and stays quiet unless something needs you. |
| Job description file | A plain text file holding an agent's identity and rules. Editing this file is how you manage the agent. |
| Connector | The bridge between an agent and a real application, so it can read your mail rather than talk about mail. |
| Dry run | The agent shows what it would do and waits for your yes. The cheapest safety feature there is. |
| Token | The unit AI usage is measured in. Roughly a word fragment. Relevant because an agent on a schedule spends them while you sleep. |
Ask in the community. This is the first guide in a series, and the next ones get built from the questions you bring, so tell us where you got blocked and what you want an agent to do next.