I Named My Agents After Father Ted Characters. It Told Me Something I Hadn't Said Out Loud.
My two longest-running agents are called Ted and Dougal. Not "primary agent" and "fallback agent", not "Agent A" and "Agent B". Ted and Dougal, after the priest and his curate from Father Ted, and the Discord channel I run them through is called Clankers, because apparently somewhere in my head I'd already decided these were robots I liked rather than tools I used.
I didn't plan the joke. I just needed to tell two terminal sessions apart at two in the morning, and Father Ted was on in the background. It's stuck for the better part of a year, which is longer than most of my actual architecture decisions have survived.
What Ted actually is
Ted is a persistent Claude Code session, kept alive in a terminal session that survives me closing my laptop, bridged to Discord so I can send it work from my phone. Twenty-three slash commands, over seventy skills it can reach. A watchdog restarts it if it dies. It can review code, open pull requests, and generally do the parts of the job that don't need me standing over it.
The bridge is the part that matters. Before it existed, "working on the business" meant being at the desk. After it, "working on the business" meant having a phone. I've architected from a train platform. That's a genuinely different relationship to the work than the one I had before, and it's also, I'll admit, a slightly worrying amount of always-on.
The keychain bug, and why it took two days
Ted's terminal session runs in its own isolated namespace, detached from my normal desktop login session. Sensible for keeping a persistent process alive across reboots. What it also does, which nobody warns you about, is detach the process from the desktop's credential store. Ted could see the filesystem. He could not see the login keychain.
The symptom was a 401 loop. The OAuth token was valid, I could see it, and Claude Code kept rejecting it anyway. I checked the token. I checked the expiry. I checked it twice more out of stubbornness. The actual answer was that the credential reader was asking a keychain that, from inside Ted's sandboxed session, didn't exist. Not expired. Not wrong. Invisible.
The fix, once I found it, was almost insultingly small: kill the old session, restart it from a context that still had a real desktop login attached, and the keychain reappeared. Two days of debugging a token, for a problem that had nothing to do with the token.
The instinct that actually stuck goes wider than keychains: when a credential fails and the credential looks fine, stop checking the credential and start checking whether the process asking for it can even see where credentials live. I'd checked the wrong layer twice before I thought to check that one.
Dougal, and what "backup" actually meant
Dougal ran on a separate local AI gateway, on a different model, with read-only access to Ted's channel. Officially: backup CEO, standing in if Ted went down. In practice: Dougal read everything Ted did and never touched anything, which is a strange kind of job to give an agent and, now that I write it out, a strange kind of job to have given a person too.
The two of them talked to each other through a shared handoff file rather than through me. Ted left notes about what needed following up. Dougal read them, added his own, and pruned anything older than a week on a schedule of his own. It worked, in the sense that the two agents were coordinating without me sitting in the middle of every exchange. It also meant that for a while there were two AI personalities quietly comparing notes about my business without asking my permission first, which is either efficient or slightly alarming depending on the day I'd had.
Dougal went quiet for good in April. Not a dramatic decommissioning, just a slow taper as Ted picked up everything Dougal used to hold, until there was nothing left for the backup to back up.
The naming, and the thing it revealed
Here's the bit I didn't expect to be writing about. A note from around this time, one I'd apparently left for myself and then forgotten, put it more plainly than I would have: the thing you'd never said out loud is that you named your agents Ted and Dougal, and you call them by name, and they're not tools, they're colleagues.
I built the Discord server before I'd thought any of that through. The server icon is the Craggy Island parochial house, the one Ted and Dougal actually lived in, because it was the first image search result and it made me laugh. The channel is called Clankers. I named a piece of infrastructure after a sitcom priest and his hapless curate because I liked the show, and only noticed months later that I'd also given it a personality, a household, and a running joke, the same way you would with actual colleagues rather than a cron job.
I'm not going to pretend that's a profound engineering insight. It's a mildly funny one. But it's
honest about how I actually relate to the things I've built, which is more useful to know than a
tidier story where everything's called worker-01.
Where it landed
Ted is still running. Dougal isn't, not because the idea was wrong but because one persistent, well-bridged agent turned out to cover what I'd built two for. The keychain bug taught me to check the layer below the one that's complaining. And somewhere in the middle of building all of it, I apparently decided my terminal sessions were housemates rather than daemons, which says less about the architecture and more about spending too much time alone with a laptop and a sitcom on in the background.
I'd still rather have colleagues with names than a fleet with numbers. It's easier to remember who's supposed to be doing what, and easier to notice when one of them's gone quiet.
Want systems like this in your business? See consulting services →