All field notes

Published field note · Research note

· 4 min read

A transcript is not a recovery system

After a timeout, replaying the conversation cannot tell you whether an external effect happened, which operation it belonged to, or how to reconcile it safely.

The credit request left your process. Then the call timed out.

You did not receive a provider receipt or transaction ID. You did not receive an error from the billing system. The customer may already have the $40 credit, or the request may have died before the effect. The application still owns the operation identity it committed before dispatch, but the agent has only a cheerful transcript saying it decided to issue the credit and a tool message saying the call returned nothing.

Write-ahead recovery sequence for an uncertain external effectThe top row rejects a transcript with unknown effect status as recovery state. The lower row is an ordered three-step path. First, commit the application-owned operation identity, exact request, and pending intent to durable storage. Second, allow the external request to dispatch once. Third, reconcile by observing provider state. Only after that observation may the controller retry, compensate, wait, escalate, or take no action. Arrowheads make the write-ahead-before-dispatch invariant explicit.RECOVERY ORDER / RECORD BEFORE EFFECTTRANSCRIPTeffect status: unknownNOT RECOVERY STATEconversation cannot settle the effect01 / WRITE AHEADID + exact request+ pending intent02 / DISPATCHexternal requestsend once03 / RECONCILEobserve providerthen decideTHEN: RETRY / COMPENSATE / WAIT / ESCALATE / NO-OP
Recovery commits identity, exact request, and pending intent before dispatch, then observes external state before choosing the next legal action.

Would you replay the conversation?

That might reconstruct what the model saw. It does not answer the dangerous question: did the externally visible effect happen? It also does not establish which logical operation the request belonged to, whether a retry would be recognized as the same operation, or which observation could settle the uncertainty. Replaying the chat can produce another confident decision while duplicating the credit.

This is the gap between temporary context and durable recovery state.

Temporary context is the bounded view assembled for the next model call: recent messages, selected tool results, instructions, perhaps a summary. It is useful precisely because it can be selected, compressed, and replaced. Those properties make it a poor authority on world state.

A recovery path needs smaller, duller objects with sharper jobs. A durable event says what the application orchestrator knew at a point in time: credit proposed, policy authorized, request started, response absent. That orchestrator writes the recovery record; a model transcript does not. An artifact preserves something inspectable, such as the exact request body or a returned receipt. A pending-effect record names the operation, target account, start time, observation still required, and—if the provider supports it—a deduplication key that tells a retry to refer to the same logical operation rather than create a new one.

The ordering is an invariant: the operation identity, exact request artifact, and pending intent must commit to durable storage before the request is allowed to leave the process. If the process crashes after that commit but before dispatch, reconciliation finds no external effect and can resume from the recorded intent. If it crashes after dispatch, the same record identifies what must be observed and which key a safe retry must reuse. Writing the record only after the tool returns recreates the original failure window: the effect can happen while its identity disappears. If completion remains unknown, the next legal step is reconciliation—query the billing ledger, search by the operation identity, or escalate—not blind replay.

Consider Patchwork, a fictional repository-agent scenario created as a teaching example, facing the same problem in a less financial setting. It starts a remote merge operation, loses the response, and wakes up with only a transcript. The branch may be merged, rejected, or still processing. Asking the model to repeat “merge this branch” is not recovery. Patchwork needs a durable operation identity, the before-state it acted against, and a fresh observation of repository state before deciding what can happen next.

There is old systems language nearby, but I want to keep the borrowing bounded. The Sagas paper is a candidate foundation for thinking about long-lived work and compensating actions when one large atomic transaction is unavailable. That does not make arbitrary agent effects transactional or reversible; a credit reversal is itself a new effect and may fail. W3C PROV-DM supplies a formal vocabulary for relating entities, activities, agents, and derivations. Provenance structure does not prove that an event occurred or that the record is complete. Anthropic's managed-agents report describes one current implementation with durable session events outside replaceable harness workers and sandboxes. One vendor architecture is a useful named example, not a recovery standard.

What this does not prove is that an append-only log, a checkpoint, or a durable session makes effects exactly once. A perfectly preserved record can still end at “request sent, completion unknown.” The engineering improvement is not certainty; it is refusing to manufacture certainty from chat history.

Pick one effect in your current system that you cannot safely retry after a timeout. What durable identity, pending-effect record, and external observation would let you reconcile it without asking the model to guess?

Open question

What I'm testing

What is one effect in your system that you cannot safely retry after a timeout, and what durable record would let you reconcile it?

Evidence boundary

Sources and boundaries

A linked source supports only its named role below. This note connects and tests ideas; the note itself is not evidence.

  • scholarly synthesis
    Sagas

    Supplies a foundation for reasoning about long-lived transactions and compensating actions; it does not make arbitrary agent effects transactional or reversible.

  • official spec
    W3C PROV-DM

    Defines a provenance vocabulary for entities, activities, agents, and derivations; provenance structure does not prove that a record is true or complete.

  • production report
    Scaling managed agents: sessions, harnesses, and sandboxes

    Describes one production design with durable session events outside replaceable workers and sandboxes; it is not a general recovery standard.

Back to all field notes