Sessions are the durable runtime unit for interaction with an agent.
Sessions
A session tracks:
- the target namespace and agent
- lifecycle state
- timestamps and labels
- accumulated messages and execution history
Persisted messages are not the whole story. A session also accumulates execution steps, which are what make Talon observable.
Messaging flow
The common flow is:
- create a session
- send a message
- observe streamed steps while the worker executes
- fetch or resume session state later
Under the hood, the gateway persists intent and the worker performs execution.
Streaming surfaces
Talon supports multiple consumption patterns:
- native gRPC streaming via
StreamSessionSteps - REST-transcoded control-plane endpoints for non-streaming operations
- browser-native UI session routes for Sightline and AI SDK-style clients
The important distinction is:
- gRPC is the system-of-record contract
- the browser-oriented UI surface is the ergonomic integration path for frontend clients
Tool visibility
Session streams are not only text streams. They also expose:
- tool call starts
- tool results
- persisted execution steps
This is what makes Sightline useful as an operator/debugging surface rather than a plain chat UI.
Session state vs stream state
It helps to separate two views of the same interaction:
- persisted session state is what you can fetch later with
GetSession - stream state is what you observe live while execution is still in progress
Talon gives you both because durable auditability and live UX are different needs.