Letting my homelab do things on its own

On this page
  1. What an agent is
  2. OpenClaw
  3. Hermes Agent
  4. What I use it for
  5. Setting it up took four days
  6. What I learned
  7. References

After setting up my homelab and switching to a smaller model, I had a good private AI. But it only did something when I typed into it. Close the tab, and it waits.

I wanted it to do small jobs for me on its own, and to reach me in the chat apps I already use. That kind of program is called an AI agent. In August I tried two: OpenClaw early in the month, and Hermes Agent near the end.

What an agent is

An agent is a language model with four extra things around it (Table 1):

Table 1. The four parts around the model and what each means
PartWhat it means
ToolsIt can read files, run commands or open web pages, look at the result, and decide what to do next
SkillsSaved instructions, so it does a job my way every time
SchedulerIt runs jobs on its own at set times, like a timer
Chat appsI can talk to it from Discord, WhatsApp, Telegram and others

The tools are what make the difference. A chat window can only talk. An agent can act.

OpenClaw

OpenClaw is an open-source assistant that runs on your own computer and talks to you through the chat apps you already use.

I ran it in two places: on my Mac, connected to a Discord bot, and on my homelab inside NVIDIA’s NemoClaw. NemoClaw runs the agent in a locked box (a sandbox), so it can’t touch the rest of the machine.

Two things caught me out:

  • Free models stopped working. I connected it to OpenRouter, a service that gives one connection point to many AI models. Every free model failed with an error about “guardrail restrictions”. The model wasn’t the problem. One privacy setting was: it only allowed providers that don’t keep any data, and free models almost never offer that.
  • My contacts could get bot messages. By default, anyone who sends a WhatsApp message to the connected number gets an automatic reply from the bot. On a personal number, that means friends and family. I changed it so only my own number can talk to it.

Hermes Agent

Hermes Agent is an open-source agent from Nous Research. It has all four parts from Table 1, and it runs its tools inside Docker containers, not directly on my machine.

The part I liked most: it uses my own model on the homelab. Hermes talks to models the same way apps talk to OpenAI, and my model server speaks that same language. A few lines of config, and the agent’s brain was the model under my desk.

Then I checked its usage records instead of assuming. 480 of 612 requests had gone to my own model. The rest came from a day of testing, including 121 requests to a backup provider I had set up and forgotten about. It cost 24 cents, but it taught me something: “local” is a setting, not a promise. Check where your requests actually go.

What I use it for

Nothing fancy. Seven scheduled jobs:

  • Every night: read a calendar and add each new deadline to Apple Reminders.
  • Every half hour: two jobs save my notes and settings to git (version history), if anything changed.
  • Every day: add new items from a shared calendar to Reminders.
  • Two jobs watch websites I care about and tell me when something new appears.
  • Every week: read what I committed to my notes and send me a summary of what I learned.

Six of these seven jobs don’t use AI at all. They are plain scripts that Hermes runs on a schedule. Only the weekly summary uses the model.

It wasn’t the plan. I gave every job to the AI first, because it was new and fun. Then, job by job, once I understood the steps well enough to write them down, I turned it into a script.

The rule I ended up with:

  • One right answer? Use a script. “Add this deadline to Reminders” has one correct result. A script does it for free, can’t make up a date, and fails loudly.
  • Needs judgement? Use the AI. “Tell me what I learned this week” has no single right answer. That one earns the model.

So for me, the value of Hermes is everything around the model: the scheduler, sending results to Discord, the sandbox, and having it all in one place.

Setting it up took four days

Most of the problems were silent ones:

  • A small network component inside Hermes clashed with another program on the same port (the numbered door a program listens on) and stopped. It reported “success” while it stopped, so nothing noticed.
  • After I fixed that, it didn’t start again after a reboot. I had to add a service so the machine starts it every time.
  • I spent a full day on a bug that had already been fixed, three hours after I installed. Updating first would have saved me the day.

What I learned

  1. Use AI only where there’s no single right answer. Everything else is a script.
  2. Check where your data actually goes. A forgotten backup setting sent requests elsewhere.
  3. Give the agent access step by step. It runs commands based on chat messages, so I only give it the folders it needs.
  4. Expect silent failures. Check yourself that things started, and that they start again after a reboot.

Next, I want to give Hermes more tools through MCP, a standard way to plug new tools into AI agents.

If you’ve built something similar, I’d like to know what you automated, and whether it really needed AI.

References

Tagged agents, hermes, openclaw, homelab, automation← Home