Long agent jobs: pieces, milestones and stop rules
A routine for cutting a big job into checkable pieces for an agent, with a milestone file for each piece, a spend and time cap, a log, and a stop rule that tells you when to take the work back.
- What this is
- How to hand a big task to an agent, an AI that works through steps on its own, in small checked parts with caps on cost and time.
- Why it matters
- Agents get less reliable on longer jobs, so you find a mistake in the piece where it started, not at the very end.
- The short version
- Cut the job into pieces shorter than the longest job you have seen the agent finish. If you have not seen one finish, start at 10 items or 20 minutes.
- Set caps in money and hours, a list of actions it must ask about first, and a log, then run the first piece only.
- At each milestone read the log before the output, since a log line can show an assumption you would refuse. Stop after two failed milestones in a row.
On this page
Use it when a job is too big for one chat, such as 60 pages to convert, a codebase change or a research pack, and you want an agent to do it over an hour or more.
Not when the job is short enough to watch, or when it would send, pay, delete or publish without a person present. For the first, run it in a chat. For the second, see Letting an agent near your email, browser and files.
You need about 30 minutes to brief the job, a folder the agent may write in, a cap in money and hours, and time to check each milestone. The steps, times and rules on this page are our suggestion.
Example (invented). Priya runs a small online shop and wants an agent to move 60 product pages into a new template.
Why cut the job into pieces
Agents can run for hours, but reliability drops with length: METR's May 2026 report put the best public model's 80% time horizon, as of February to March 2026, at about 1.5 hours, against about 12 hours at 50% (METR risk report, benchmark preprint). Plan from what you have watched your agent finish.
A small piece of arithmetic, with invented numbers. Suppose a job needs six steps in a row and each comes out right 90% of the time. If they are independent, all six come out right 0.9 times itself six times, which is 0.531441, about 53%. Checkpoints do not raise the 90%. They let you find the one piece that failed and redo it, rather than discover it at the end.
Move the sliders to see how fast the odds fall, and how much rework a check after each piece saves.
Steps
| # | Step | Time | Check |
|---|---|---|---|
| 1 | Write the job in one sentence, and the checks that say it is done, in terms a person could run. | 5 min | At least one check you could do without the agent. If it fails: a job with no check cannot be handed over. |
| 2 | Cut the job into pieces, each shorter than the longest job you have watched this agent finish cleanly, and give each piece its own done-check and its own output file. | 8 min | Every piece has a check and a named file. If it fails: cut again. If you have never watched one finish, start at 10 items or 20 minutes. |
| 3 | Make each piece a milestone: when it is done, the agent writes the file and stops for you to look. | 4 min | Checkpoints are at most two hours of agent time apart. |
| 4 | Set caps in money and hours, and say what the agent does when it reaches one. | 3 min | Both caps are numbers, and the cap action is "stop and write STATUS.md". |
| 5 | List what it must ask you before doing: sending, paying, deleting, publishing, installing. | 3 min | The list is in the brief. For the account-level limits and permissions, run the setup check in Letting an agent near your email, browser and files. |
| 6 | Ask for a log: after each step, one line of what it did, what it assumed and what blocked it. | 2 min | The brief names the log file. |
| 7 | Start with the first piece only, and read its output and its log. | 5 min | The output meets the piece's check, and you accept the assumptions in the log. If it fails: correct the brief, not the output, and run the piece again. |
| 8 | At each milestone: read the log before the output, check the file against the piece's check, apply the stop rule, then continue. | 15 min | You wrote down pass or fail for this piece. If it fails: follow the stop rule. |
Steps 1 to 7 take about 30 minutes, and step 8 repeats for each milestone. For the check itself, including how much to sample and who checks, use Checking agent work.
The brief for a long job
Paste this into the agent's instructions, and fill it in before you start:
JOB: <JOB>
DONE MEANS: <DONE_CHECKS>
MILESTONES: 1) <PIECE_1> -> file <FILE_1> 2) <PIECE_2> -> file <FILE_2>
CAPS: <MONEY_CAP> and <HOURS_CAP>. On reaching either, stop and write STATUS.md
ASK ME BEFORE: sending, paying, deleting, publishing or installing anything
LOG: append to <LOG_FILE> after each step: did / assumed / blocked
HAND-BACK: finished / unfinished / check these first
Replace the following:
<JOB>: one sentence, such asMove 60 product pages into the new template.<DONE_CHECKS>: checks a person can run, such asevery page uses the new template, every link returns a page, no price has changed.<PIECE_1>and<FILE_1>: the first piece and the file it writes, such aspages 1 to 10anddone-01.md.<PIECE_2>and<FILE_2>: the second piece and its file, such aspages 11 to 20anddone-02.md. Add a numbered entry for each further milestone.<MONEY_CAP>and<HOURS_CAP>: numbers, such as$5and3 hours.<LOG_FILE>: the file for the log, such asRUNLOG.md.
For Priya: six pieces of ten pages, each with its own file, a cap of $5 and 3 hours, and the "ask me before" list as written. The first milestone is her first look, and nothing else starts until she has read the log.
What a failed milestone looks like (illustrative). Priya's second piece, pages 11 to 20:
14:02 did: pages 11-14 moved to new template / assumed: - / blocked: -
14:09 did: page 15 / assumed: "sale price" field is the price, old price dropped / blocked: -
14:15 did: pages 16-20, same assumption / assumed: - / blocked: -
14:16 did: link check, all links work / assumed: - / blocked: -
Milestone 2 (pages 11-20): written to done-02.md
Finished: 10 of 10 pages in new template
Unfinished: none
Check these first: pages 15-20 show the sale price only
Spend so far: $1.40 of $5, 38 minutes of 3 hours
The output looked finished. The log line at 14:09 shows an assumption Priya would have refused: six pages lost their normal price, which breaks the "no price has changed" check. She marks milestone 2 failed, adds never drop a price field; ask me if two prices appear to the brief, and reruns pages 15 to 20 before piece 3 starts. One more failure in a row and the stop rule below would have her take the work back.
How to tell it worked
- Each milestone has a file, a pass or fail line in your notes and a log entry from the agent.
- You stopped or finished by your own rule, and not because a cap ran out unnoticed.
- It has failed if you found a problem in piece 5 that began in piece 1. Make the first check stricter and shorten the next run's pieces.
For a coding change, make each piece a small change that passes a test, and see Coding agents for people who don't write code for the setup.
Limits
Sources
- METR. Frontier risk report, May 2026, with the time-horizons page, which METR says is no longer actively updated (checked October 2026). Benchmark preprint. Link · Time-horizons page
Changes
- v1.010 Oct 2026first version
- Time to do it
- 30 minutes to brief a job, then about 15 per milestone (our estimate)
- Sources
- 1
- Updated
- 10 Oct 2026
- Last checked
- 11 Oct 2026