The question “are we still talking loops, or did we shift to graphs?” captures a real design transition, but not a replacement.
A loop repeats work until a condition is met:
act -> inspect -> correct -> repeat
A graph makes the routes explicit:
discover -> verify -> publishable?
| yes -> draft -> approve -> release
| no -> resolve source -> verify
| risk -> deep research -> owner review
Official LangGraph documentation treats sequences, branches, loops, parallel work, and shared state as structures inside one graph. Loops remain a local mechanism. The graph becomes necessary when several loops interact and different outcomes need different owners or controls.
When a loop is still better
Do not introduce a graph because the word sounds more advanced. A bounded repair task with one evaluator and one stopping rule is easier to test as a loop.
Move to a graph when the workflow needs:
- conditional branches and exception queues;
- parallel workers that merge into shared state;
- human approval or pause points;
- durable checkpoints and recovery;
- separate retry policies for different actions;
- auditable transitions between agents and deterministic code.
New Runtime Read
The newsroom is already a graph even if parts of it are described as loops. X discovery, primary-source resolution, story clustering, trend evidence, site materialization, R2 backup, OpenClaw review, and owner-gated Telegram publication do not share one stopping rule.
The next architecture step is to make that graph explicit in data: every node writes a status, every edge records why it was taken, and every external write has an idempotency key and receipt.
Loops produce persistence. Graphs govern where persistence is allowed to go.
