Turn
One user message and the model’s reply.
A single exchange: your message in, the model’s response out. Turns accumulate in a session, and each new turn resends the whole history.
Counting turns is a practical budget tool. A twenty-turn conversation is paying for the first turn nineteen more times.
Because each turn resends history, cost and latency grow through a conversation. That is why long support threads get expensive and slow, and why trimming history — keeping the recent turns verbatim and summarising the distant ones — is a standard piece of the architecture rather than an optimisation.
A conversation that got slower as it went
Turn one is crisp; turn thirty feels sluggish.
Nothing changed except the amount of history being replayed and re-read. Summarise turns older than the last few, keep the recent window verbatim, and the experience flattens out instead of degrading.
- docsContext windows ↗
What actually consumes the window — input, tools, thinking and output — plus context rot and compaction. Authoritative for this product, not for models generally.
- docsAgents ↗
Compares a managed hosted agent, an in-app SDK loop, and the raw Responses API, including sessions, handoffs, approvals, sandboxing and compaction.
Session
One continuous run of work with the agent, with its own accumulated history.
Context
Everything the model can currently see.
Input Tokens · Prompt tokens
What you send. Cheaper, but repeated on every request.
Compaction · Summarisation
Replacing old context with a shorter summary of it.