{"version":"2.1.224","anchor":"drain-loops-should-break-on-budget-reached-not-just-terminal","canonical_anchor":"drain-loops-should-break-on-budget-reached-not-just-terminal","heading":"Drain loops should break on budget_reached , not just terminal stops","tier":"internal","area":"Agent SDK Docs","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224\/e\/drain-loops-should-break-on-budget-reached-not-just-terminal","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224","markdown":"### Drain loops should break on `budget_reached`, not just terminal stops\n\nSkill guidance now says polling loops should break on any stop reason except requires_action.\n\n**What**\n\nThe skill's client-patterns guidance changed its advice for loops that poll a session: break on any stop reason that is not `requires_action`, rather than only on terminal ones. `budget_reached` is listed as resumable only by changing the budget.\n\n**Details**\n\n- The sample loop comment moved from `\/\/ end_turn or retries_exhausted - both terminal` to also name `budget_reached`.\n\n**Evidence**\n\n`break \/\/ end_turn, retries_exhausted, or budget_reached \\u2014 see list below`\n\n- Area: Agent SDK Docs\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}