You ask ChatGPT a question, it answers, and then… nothing. Silence. Meanwhile one colleague has “an agent fixing a bug” and another has “a loop watching the CI all night”. Same AI, three very different job descriptions. The whole difference fits in one double question: who decides the next step, and what makes it stop?

Three workers, one house

Picture your AI as a tradesperson you hire for your house:

  • Chat is the expert on the phone. You describe the leak, they tell you which valve to close, and they hang up. If the repair takes ten steps, you call ten times.
  • Agent is the plumber. You describe the problem, they come in with their toolbox, test, tighten, test again, and walk out when the leak is fixed. One mission, one ending.
  • Loop is the gardener under a yearly contract. Nobody calls them: the calendar does. Every Monday they come, look at what has grown, prune what needs pruning (sometimes nothing), leave a note in the shed, and come back next Monday. Forever, until you cancel the contract.

Same skills, three contracts. Let’s open each one.

Chat: you hold the loop

In chat mode, the model does exactly one thing: it reads your message and produces an answer. Then it stops, completely. If the job takes ten steps, you are the loop: you read the answer, think, and type the next prompt. The intelligence cycles through your chair.

That’s not a limitation, it’s a feature. Chat is perfect when the job is thinking rather than doing: explain this error message, draft this email, poke holes in my plan. You keep full control at every step, and you pay one answer at a time, the cheapest possible deal in tokens.

Agent: the model holds the loop

An agent is that same model, wrapped in a harness that gives it tools and, crucially, a loop. This agentic loop is a simple cycle: plan, act (a tool call), observe the result, repeat. The model itself decides the next step, and it exits the loop when it judges the task done (or when it’s blocked and asks you).

Concretely: “fix this failing test”. The agent runs the test suite, reads the error, opens the file, edits it, re-runs the tests, sees a new failure, edits again, re-runs, green. Done, it stops and reports. You pressed Enter once; it looped a dozen times.

The price of autonomy: every turn of the loop re-sends the context, so an agent costs more than a chat. And since it acts on the real world (files, commands), it deserves seatbelts: review its work, keep a human in the loop for anything irreversible.

Loop: the clock holds the trigger

Now remove the last human act: pressing Enter. In a loop, a trigger relaunches the agent all by itself. A schedule (“every morning at 8”), an interval (“every 10 minutes”), or an event (“each new issue”). Each run is a fresh little agent mission: look at what changed since last time, do what’s needed (often: nothing), leave a note for the next run, go back to sleep.

That note-leaving matters. Runs don’t share a conversation, so the loop needs memory between passes: a journal, a checklist, a “state of the garden” file. The gardener’s notebook in the shed.

And here is the defining trait: a loop is never “done”. It has no finish line, only a next occurrence. It runs until you cancel the contract. Real examples: a morning brief of your inbox, a watcher that checks a deployment and rolls back if errors spike, a triage bot that labels each new GitHub issue, tools like Claude Code’s scheduled tasks or /loop.

Choosing (and paying the bill)

The escalation rule is simple: start with chat, promote to agent, subscribe to a loop. Chat for thinking. An agent when you have one well-defined, multi-step task. A loop only when the same task genuinely comes back on a trigger.

Honesty time: a loop multiplies both the value and the mistakes. A bad prompt in chat fails once, in front of you. The same bad prompt in a loop fails every 10 minutes, all weekend, and each failure is billed in tokens. Before subscribing, give your loop a budget cap, logs you actually read, and human approval on anything irreversible. The gardener may prune; the gardener does not cut down trees alone.

In summary

Question Chat 📞 Agent 🔧 Loop 🌱
Who decides the next step? You The model The trigger, then the model
When does it stop? After every answer Task done (or blocked) When you cancel it
What it remembers The conversation Its task context Notes left between runs
Perfect for Thinking, drafting, explaining One multi-step task A recurring watch or chore
Main risk Your own time Drifting mid-task Repeating a mistake on schedule
Cost profile One answer at a time One mission, many turns A subscription in tokens

One last thing: a loop is not “more advanced AI”. It’s the exact same model as your chat window, under a different contract. So choose the smallest contract that does the job, and only sign the yearly one when the work truly comes back every Monday. C’est pas sorcier, as we say: it’s not rocket science.