How to Use AI

Running a Team of Agents

Once one coding agent feels normal, the hard part stops being the model. It becomes keeping track: which agent is doing what, where that idea from Tuesday went, and whether anyone checked the work. This is how I run several agents at once.

Optional, and for later

This page assumes you've done the Coding Agents page and have a few agents running on real work. If you use AI in a chat window, none of this applies to you yet, and that's fine.


The record lives outside the chat

A chat scrolls away, and the next agent can't see it. So the chat is never the record. Each piece of work is a ticket (I use GitHub issues), and the ticket is where its story lives. Every change to code or documents goes through a pull request that links back to its ticket. When an agent finishes or gets stuck, it leaves proof on the ticket: a command and what it printed, a link, or a plain description of what's blocking it.

Each ticket gets its own branch, named after it (something like issue-12-fix-login), and the branch is deleted once its pull request merges. If you give agents separate working copies of a repo, use the tool's own command for it rather than making them by hand, so the tool also cleans them up afterwards.

Check, then claim

Two agents working on the same ticket waste time and step on each other. The rule has an order, and the order matters:

  1. Before starting a ticket, look for a claim comment or an assignee. If there is one, leave it alone.
  2. If there isn't, comment claim: your-name, then start.
  3. If you stop early, comment handoff with what's done and what's left. If you're blocked, add a blocked label and say what would unblock you.

Checking first is the important half. If two agents both just comment "claim" at the same moment, both of them think they own the work.

Capture every idea the moment it's said

I do a lot of my thinking out loud to agents, and ideas come out mid-conversation. So every agent follows one rule: when I state a new idea, task or decision, it writes it down in the same turn and tells me where it went.

Where it goes is a board, a small command-line tool I built for myself. It holds threads (one per piece of work, each with a status, a next step, plan steps and links), quick ideas, and questions waiting for me. Every agent tool on my computer can write to it, and each write records who made it. Every write also adds a row to an event log that can't be edited or deleted, so there's always a history of what changed. A local page shows the whole board.

Capture: an idea goes on the board in the same turn You say an idea. The agent writes it to the board in the same turn: an idea, a thread with a status and next step, and a row in an add-only event log. Questions come back to you as buttons. you sayan idea agent,same turn the board idea thread + next step add-only event log question withbuttons
An idea is written down the moment you say it, and every write leaves a row in a log nobody can edit. Questions for you come back with the text inline and buttons to answer.

One more rule: an agent never asks me to go read a file. If it needs a decision, it puts the question on the board with the context written out and a button for each option. I click one, and my answer goes back into the record.

You don't need my tool to copy this

The tool matters less than the rule. One shared file that every agent appends to, plus an instruction in each agent's instructions file ("when I state an idea, task or decision, record it in the same turn and say where"), gets you most of the way there.

One window for every session

With several agents in several terminals, you lose track of what's running. I use OpenRig, an open-source control plane for agent sessions. Running rig ui open opens its web page, where my sessions show up as they start, and I've added my board to it, so one window shows both.

I also set a hard limit: at most one group of agents (OpenRig calls it a "rig") with at most six seats at a time, and the group is shut down, with a snapshot saved, as soon as its work is done.

Route by the shape of the task

Not every job needs the biggest model. Before handing out work, I sort it by shape:

The same thinking applies when one agent hands a sub-task to a helper. Small models get small tasks, the big one is the ceiling, and you name the model every time. If you don't, a helper can silently inherit the most expensive model for a job a small one would finish just as well.

Route work by the shape of the task Four task shapes and who gets each: must be right goes to the strongest model plus a second reader; bulk chores go to cheaper agents in parallel; finding and summarising go to a read-only explorer; a second opinion goes to a model from another company. task shape who gets it must be right strongest model + a reader bulk chores cheaper agents, in parallel find, summarise read-only explorer second opinion another company's model
Match the task to the worker before you start. The expensive model goes where a mistake costs the most.

A second checker

The agent that wrote the code, the document or the answer doesn't verify it alone. A second agent or I check critical work before it counts as done, and nothing is called done until a check ran and passed. The Checking page has more on this, along with the rule that every claim has to point at something you can open.

Keep private things private

Agents write a lot of text into tickets and pull requests, and some repos are public or shared with other people. Three rules keep that safe:

Quick check

Two agents might pick up the same ticket. What stops them both starting it?

Answer: check first, then claim. If both agents just comment "claim" at the same moment, both believe they own the work.

Chat doesn't fix it either, because the other agent can't see your chat. The ticket is the shared record.