Agent Architecture and Orchestration

Agent Architecture and Orchestration

Interrupt and Resume

50 of 77 in this book · 3 min read

What it is

Stopping an agent part-way through — because a person asked, because a policy requires approval before the next action, because a dependency is unavailable, or because an allowance ran out — and later continuing from where it stopped rather than from the beginning. It requires a defined point at which stopping is safe, a serialised record of everything the continuation needs, and a resumption path that reconciles whatever changed while it was stopped.

Why it matters

Pausing is most valuable exactly where it is hardest: long runs that touch the world. Requiring a person to approve a consequential action is the central mechanism of supervised automation, and it is only usable if waiting is cheap. An implementation that holds a process, a connection, and a context in memory for four hours has not made the run pausable, it has made it expensive. Resumption is also what stops a routine deployment from being an outage for everything currently in flight.

More than a state with a name

Adding a suspended value to a state model is easy; making it true is not. Suspension demands that everything required to continue lives outside the process — the position in the work, the accumulated record, the consumed allowance, the identity of effects already applied — and that the code which resumes can reconstruct a working context from it. The runtime states are the vocabulary; this capability is the machinery that makes two of those states mean something.

Key decisions

  • Where stopping is permitted: anywhere, which requires capturing an arbitrary continuation, or only at declared boundaries between steps, which is far cheaper and slightly less responsive.
  • What the snapshot contains, specifically whether it records which external effects have already been applied, as distinct from which steps were attempted.
  • The maximum time a run may stay suspended, and what expires meanwhile: credentials, prices, quotes, inventory, the user's willingness to care.
  • Whether the world is revalidated on resumption or assumed unchanged since the pause.
  • What happens to calls already in flight at the moment of interruption — cancelled, awaited, or orphaned to complete into a run that is no longer listening.
  • Who may interrupt, and whether a stop initiated by a person is distinguishable afterwards from one caused by an exhausted budget.

Failure modes

  • A run resumes with expired credentials, the first call fails on authorisation, and the agent interprets it as a permissions question to put to the user.
  • The snapshot captures the conversation but not the fact that an earlier step already sent the email, so resumption sends it again.
  • Interruption is implemented as termination plus a fresh start, which users experience as an assistant that forgets everything it was told.
  • Suspended runs awaiting approval are held in process memory and a rolling deployment discards every one of them.
  • The resumption path is exercised only by the approval flow and is broken for every other cause; the first budget-triggered pause in production discovers this.
  • The prompt is reconstructed differently from the original run, and the continuation behaves like a noticeably different agent mid-task.
  • Nothing expires suspended runs, so approvals requested months ago are still pending, still holding claims, and still counted as active.
  • A call issued just before the interrupt completes afterwards and writes into a run that has since been resumed elsewhere, producing two divergent continuations.

Related capabilities


Applies: Production readiness · Design questions