Skip to main content
A conversation stores an interaction. A run records one execution, and events describe what happened during that execution. Keeping these resources separate lets a client display the conversation while inspecting how each response was produced.

From input to result

When a person asks a support agent a question, the client stores a user message and starts an agent run. The runtime produces events while it works, and the assistant’s output is persisted as a message. The message provides the answer shown in the thread. The run provides its status, tool activity, output, and errors. An incomplete answer can therefore be investigated through its associated run rather than inferred from the message text.

One conversation, multiple runs

A follow-up question creates another interaction in the same conversation. Regenerated answers can create alternative message paths, and delegated work can create child runs. Each execution retains its own identity and history. Runs can also exist without a conversation. A scheduled task or an agent invoked for background work still needs execution tracking even when there is no chat thread.

Reconnection and recovery

Messages rebuild the visible thread after a client reconnects. Persisted events support replay and live progress, while the run record identifies its current or terminal state. An interrupted connection alone says nothing about the execution outcome. Run lifecycle explains status and waiting; events and streaming describes the event formats.

Explore the model

The Execution API provides the operations for these resources.