> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autosage.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Streaming responses

> Follow live progress, sources, tool activity, and final answer content as a response runs.

AutoSage streams live progress while a response runs, including tool activity, sources, charts, and final answer content. When the assistant is working through a longer step — like running a data query — AutoSage keeps the connection alive with periodic keep-alive signals, so the run stays responsive from start to finish.

## What you'll see

As an answer streams, updates arrive in a natural order:

<Steps>
  <Step title="Progress updates">
    Signals that the assistant is working — searching, querying data, or using a tool.
  </Step>

  <Step title="Sources">
    The passages and data the answer is grounded in, so you can verify it.
  </Step>

  <Step title="The answer">
    Final answer content when it is ready. The main runtime normally sends one complete response, while clients remain compatible with partial response events.
  </Step>

  <Step title="Completion">
    A final signal that the answer is finished.
  </Step>
</Steps>

<Note>
  Developer clients should treat a `final_response` with `isComplete: true` as the canonical complete answer. If partial `final_response` events arrive, accumulate their `content` until the complete event replaces it.
</Note>

## One active stream per chat

A chat has **one active stream at a time**. Starting a new message on the same chat replaces any answer that's still in progress — so a chat always reflects the latest question you asked, and there's never more than one response competing for the same conversation.

<Tip>
  Want to explore a different question while an answer is still streaming? Start it in a separate chat. Each chat runs its own stream independently, so you can keep several lines of inquiry going at once.
</Tip>

## Stopping and reconnecting

You can **stop a streaming answer at any time**. Whatever was generated up to that point is saved to the chat, so you keep the partial answer and can pick up from there.

The same holds if a client disconnects mid-answer — say you close the tab or lose your connection. The response stops and everything generated so far is saved to the chat. Nothing is lost: reopen the chat to see the partial answer, then continue with a new message.

<Note>
  Because partial answers are always saved, a dropped connection never loses your progress. Reopen the chat to review what was generated, then send a follow-up to carry on.
</Note>

## For developers

Building your own streaming UI or integration? The developer guide documents the full event format — the exact event types and payloads — and how to consume them.

<Card title="Chat & streaming guide" icon="code" href="/developers/guides/chat-and-stream">
  The event stream format and how to handle it in your own client.
</Card>

## Next steps

<CardGroup cols={2}>
  <Card title="Chat overview" icon="comments" href="/chat/overview">
    How grounded, cited answers come together.
  </Card>

  <Card title="Quick vs Deep modes" icon="gauge-high" href="/chat/modes">
    Choose how deeply each message is answered.
  </Card>

  <Card title="Long conversations" icon="clock-rotate-left" href="/chat/long-conversations">
    How lengthy chats stay fast and coherent.
  </Card>

  <Card title="Chat & streaming guide" icon="code" href="/developers/guides/chat-and-stream">
    Consume the event stream in your own product.
  </Card>
</CardGroup>
