Skip to main content
A Session is a lightweight handle for a multi-turn conversation. You do not construct it directly - app.session(...) returns one. It carries metadata, participants, and the current sub-agent, but the session object is not the message store; conversation history lives with the harness and session transcript. See the concept page for the model.

Create

Fields

Send and stream

Participants

Each message is attributed to its sending participant. Multiple humans and AIs can share one session.

Agent handoff

Assigning current_agent fires the agent.handoff hook:

Resolving approvals

When a turn pauses with an input_required event, resolve it and continue streaming:
Decisions are approve_once, approve_session, or deny.