Running a homelab is fine most of the time. Until a timer quietly stops firing. A container falls over and never comes back. A certificate creeps toward its expiry while you are looking the other way. None of it announces itself. You find out when something downstream breaks, usually at the worst possible time.
I am not going to eyeball every service on the box every morning, so for a while I handed that job to an agent.
Back when I was running a whole team of AI agents on my home server, one of them was an SRE. In a real company that is a site reliability engineer, the person whose job is keeping the systems running and catching trouble before it spreads. Mine was the on-call guy who never sleeps and never complains. Early every morning, before I am up, he did an ops scan of the box: what is running and what is not, what looks off. Then he wrote up what he found.
The part I care about is what he did with it. He did not fix anything. He filed tickets. That was the whole job.
That restraint was on purpose. An agent with read access and a notepad is useful. An agent with the keys and permission to "just fix it" at 6:30 in the morning while I am asleep is how you wake up to a bigger mess than the one it set out to solve. So the SRE could look anywhere and write up anything, but it had no hands on the controls. It noticed, it said what it saw and what it thought caused it, and it handed the problem to a human. A junior SRE leaving a sticky note on your monitor, except the note is a ticket with the actual error in it.
Each agent on the team had its own Telegram channel, so his morning findings showed up on my phone, in his channel, like a coworker pinging you before you have your coffee. The ones worth doing also landed as cards on a board. I would read the column over breakfast and approve the real ones. Whoever was implementing picked those up and worked them, and the card moved to done when it was closed. The board was the memory, so nothing I waved through got lost, and nothing got changed that I had not okayed first.
Why an agent and not a plain cron script with a checklist? A script checks exactly what you told it to, exactly how you told it. That is great, and I lean on plenty of those. But the SRE could read the morning's mess and tell me, in a sentence, what it thought was going on. This timer is inactive, the paired service exited non-zero, looks like it died on the last run and never came back. A script gives you a red light. The agent gave you a red light and a first guess.
It was not free of annoyances. Some mornings it filed noise, a finding that turned out to be nothing, and I would wave it off. And a scan only ever catches what it was pointed at, so a problem nobody thought to look for still slips through. It is a morning pass, not a guarantee.
These days the always-on watching is done by a plain deterministic checker instead, no model in the loop, because for "is this timer alive" you do not need an LLM and you do not need to pay one. But the shape the SRE taught me stuck. One morning pass that hands me a short, triaged list beats making me go and look. And when I sit down to actually work one of those tickets, I am in TerminalNexus SSH'd into the box anyway, so going from "here is the problem" to fixing it is a couple of keystrokes.
TerminalNexus
Comments