← All posts Source on GitHub jacob@stephens.page
Notes · AI Infrastructure

The AI Agents I Run, and What I Have Them Do

July 8, 2026 · ~950 words · The roster of agents I run, and the work I hand them

Someone asked me which AI agents I actually use day to day and what I have them do, and I gave a short answer that I've wanted to expand ever since. The short version is that I no longer think of myself as writing software so much as running a small set of agents that write it, and my job is deciding which agent gets which problem. Which models earn a slot I settle partly by the public benchmarks, Artificial Analysis and the arena.ai leaderboard, and I re-shuffle as the rankings move. What follows is the full roster, from the ones that run without me to the ones I babysit, and then the work I hand them.

What runs without me?

The most chronic agents are the persistent ones with scheduled and recurring tasks. I run these on Sonnet 4.6 inside OpenClaw harnesses. I'd rather point more powerful models at them, but a persistent agent that wakes up on a cron and burns Opus tokens every time gets expensive fast, so Sonnet 4.6 is the compromise I've settled on for anything that runs unattended.

One thing I want to fix here: these OpenClaws currently live in Docker containers, and I'd like to migrate them into microVMs instead. A container shares the host's Linux kernel, so an agent that goes wrong has a shorter path to something it shouldn't touch. A microVM gives each agent its own kernel and a real isolation boundary, which is the posture I want for anything running on its own schedule without me watching.

What do I drive through Claude Code?

My day-to-day work runs on a Claude Code Max subscription, split by job.

For planning I use Fable 5, usually at low or high effort, and occasionally at ultracode when the problem is worth the spend (that setting is expensive enough that I only reach for it deliberately). For coding I mostly run Opus 4.8 Extra, with some Sonnet 5 mixed in. I'll often run the coding sessions in tmux inside containers on cloud VMs, driving them with /remote-control, so a long-running or persistent-but-ephemeral session doesn't require me to keep a laptop open. The context lives on the VM; I attach and detach from wherever I am.

Separately I run a Claude Cowork desktop agent on Opus 4.8 for the work that fits a desktop rather than a terminal.

And I run everything close to hands-off: pretty much exclusively claude code --permission-mode auto, or codex --yolo.

What do I use for research?

For research I lean on two different councils depending on how private the context is.

For work grounded in my own internal context plus web research, I run a council of GPT 5.5, GLM 5.2, and Gemini 3 Pro, with Fable 5 as the synthesizer that reconciles their answers, all through Open WebUI. When I want opinionated, wide-net internet research across a hundred-plus sources and I'm willing to expose less private context, I use a Perplexity Max model council of Opus 4.8 thinking, GPT 5.5 thinking, and GLM 5.2, plus a Perplexity browser agent on Opus 4.8.

One choice in that mix is deliberate: I'd rather my inference spend land with a US company. GLM 5.2 comes from Z.ai, a Chinese lab, but it ships under a permissive open-weight (MIT) license, so any US provider can download the weights and run it on their own hardware. Where I control the host I serve it through Fireworks AI, a US inference provider, rather than calling Z.ai directly, and the money stays here even though the research behind the model is Chinese.

I assumed the Perplexity council was the blind spot, since I don't choose the host there. It isn't: Perplexity self-hosts the open GLM 5.2 weights on its own infrastructure at first-party pricing, so paying Perplexity for it keeps the money domestic too. What's Chinese in both cases is the model's origin, not where the inference dollars go. Data residency is a separate question, and if it mattered for a given task I'd check Perplexity's hosting terms rather than assume.

For conversational learning where I just want to talk something through out loud, I use the OpenAI voice agent in their Android app.

What do I actually have them do?

The roster above is the how; here's the what. Across all of them, the work falls into a handful of buckets:

How do I keep track of it all?

To keep all of this legible I built and use an agent-management dashboard at Educational Travel Adventures. It shows the live tmux sessions across the orchestration and preview hosts: which agent is attached, how much memory each is holding, when it last did anything, and one-click Attach / Restart / Clear / Kill on each. It's how I tell at a glance which of a dozen sessions is actually working and which is idle.

An agent-management dashboard listing live tmux sessions across two hosts, each row showing a Claude session name, memory use, last-activity time, and Attach / Restart / Clear / Kill controls. Hostnames, session IDs, and internal project names are redacted.
The agent-management dashboard I built at Educational Travel Adventures, showing live tmux sessions across the orchestration and preview hosts. Hostnames, session IDs, and internal project names are redacted.

I'm also looking at OpenHands, the open-source project, as a possible foundation for the management layer rather than continuing to grow my own.

Why any of this?

The reason I organize it this way is a bet about where software is going. I think we're moving away from hand-writing software and toward engineering software factories. The analogy I keep coming back to is shirt-making: it went from artisans sewing one garment at a time to people who build and run the factory that makes the shirts. I'd rather be building the factory. And I want to do it with a product-engineering eye, which to me means starting from the human problem and aiming to solve it well, not just shipping the code.

I don't think I have the shape of that factory right yet. The microVM migration is unfinished, I'm still prompting agents rather than building loops, and the split between which model does planning versus coding keeps shifting as the models do. But the direction feels correct, and the roster above is where it stands today.

Sources

Expanded from a reply I sent to that question, with help from Claude. The setup and the choices are mine; the prose is collaborative. I keep jacobstephens.net/blog for hand-written essays and longer-form personal writing.