All videosVoice agents2:19

Tools and durable state

The conversation reports the observed result. A sentence does not create a booking.

Links containing ?t= open the video at a specific second.

Video summary

The ideas to retain

01

A tool call is not the external effect

Separate at least four events:

02

Separate four kinds of state

Calling everything “context” hides important failure modes. A realtime agent normally has at least these layers:

03

The minimum action contract

Before a mutating tool runs, define a stable identity and an explicit policy:

Key moments

Jump directly to a section

  1. Requesting is not executing
  2. Four states. Four authorities.
  3. Silence does not undo a booking
  4. The result arrives in another turn
  5. Timeout does not mean failure
  6. Async needs an owner
Read the reviewed transcript

This video has no narration. This transcript reproduces its on-screen text; it does not invent a spoken track.

Requesting is not executing

The model proposes a tool. The application checks identity, permissions and preconditions.

Only then does it admit op_42, and the external system can confirm the effect.

The conversation reports the observed result. A sentence does not create a booking.

Four states. Four authorities.

Context, session, durable operation and system of record are not the same store.

A restart loses ephemeral memory. Operation op_42 must remain discoverable.

Reconstruct from durable records and check the external effect, not an earlier sentence.

Silence does not undo a booking

The user says “wait” while op_42 is running. Spoken output should stop.

Cancelling generation or its local await does not prove the provider cancelled the effect.

When the record confirms the booking, reconcile it. Do not claim a cancellation that never happened.

The result arrives in another turn

T12 requested 21:00. T13 changes it to 21:30 before the result arrives.

The late op_42 confirmation still describes a real booking at 21:00.

Persist the fact and check relevance. Do not report it as success for the new request.

Timeout does not mean failure

The response is lost after sending op_42. The effect is UNKNOWN to the application.

With an idempotent API, the retry keeps the key and refers to the same operation.

Two attempts do not create two effects. Without that contract, reconcile first.

Async needs an owner

op_42 belongs to a durable workflow, not to a temporary agent’s await.

A handoff changes the active agent; the operation keeps its identity and deadline.

A progress update is not a final result. The owner must complete or reconcile the operation.