Skip to main content
A Chat turn is a real tool loop. The model emits tool calls, Chat executes them, the results re-enter the context, and the loop continues until the model stops or Chat reaches its round budget. What you see is the streamed result of that loop: tokens, then tools, then the finished reply.
A Chat reply with headings and formatted prose explaining merge sort

A finished reply rendered from markdown — headings, emphasis, and math-style notation — after a turn with a High thinking level.

What you see

  1. You send a message, optionally with Library attachments.
  2. The composer reads Cortex is responding… and the send button becomes a stop control.
  3. Tokens stream. Tools may run. Their results come back into the thread.
  4. The model stops, or Chat hits its budget of eight tool rounds. That budget is Chat’s own — Code and Bot have different stopping rules.

What goes into a turn

After assembly, Chat clamps generation so prompt plus output fit the model’s context window.

Tools the model can receive

Chat’s python runs a snippet in an untrusted sandbox with no workspace. It is not Code’s shell inside a Cloud guest, and it cannot see a repository or a Bot’s desktop. See Security.

Compaction

Long threads are compacted on the request path so they keep fitting the model. Compaction keeps the last user ask, the active research plan, open artifact ids, and research child ids. It fails closed: if the summariser is unavailable, the turn returns service_unavailable rather than silently dropping old turns.

Deep Research is a different loop

A research run plans questions and fans out to parallel children with its own caps. It does not use the eight-round budget and does not draw tool chrome for each fetch. See Deep Research.

Compared with Code and Bot

See How Code works and How Bot works.
  • Streaming — reconnects and run state.
  • Models — context windows and thinking levels.