Four kinds of agent loop, sorted by what starts and stops them
The Claude Code team sorts agent loops into four kinds by two questions: what starts a run and what tells it to stop. Picking the kind first saves you from building machinery the work never needed.
The four kinds
| Kind | Starts on | Stops when | Analyst example |
|---|---|---|---|
| Turn-based | each prompt you send | it answers, and you decide the next turn | asking why yesterday's revenue dipped |
| Goal-based | one request | an evaluator confirms the success criteria, or a turn cap is hit | reconcile every account in a region to the ledger |
| Time-based | a fixed interval, such as /loop |
you stop it or it expires | check the pipeline every hour for a failed load |
| Proactive | an event or a schedule, with nobody watching | the task's own goal is met | triage each new data-quality ticket as it lands |
A turn-based loop is the ordinary agent session: you direct every turn. A goal-based loop hands the stopping decision to an evaluator model that checks the Success criteria each time the agent tries to finish. Time-based and proactive loops remove the human from triggering the run as well.
They compose
A time-based loop makes a good trigger for a goal. The schedule notices the problem, and the goal fixes it. That is the pairing Loop engineering builds on. Proactive loops can send routine runs to a smaller, faster model and save the most capable one for judgement calls, the same dial as Set the LLM model per agent, not one for the whole system.
Start with the simplest kind that works
That is the team's own advice. Most recurring analyst work starts as a time-based check, and it earns a goal only once "fixed" can be written as a condition an evaluator can test.
The bottom line
Name the trigger and the stop before building anything. The answers pick the kind of loop for you.
Source: Addy Osmani, "Practical Loop Engineering" (2026), summarising the Claude Code team's loop types.