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

# Human in the loop

> How an agent asks you a question, requests an approval, or collects a credential.

An agent that never checks with you is a liability. Rerun gives every agent four ways to hand a decision back, and one way to tell you something without stopping.

## The four pauses

When an agent uses any of these, it **stops its turn**. A card appears above the message box, you answer it, and the run continues from your reply.

<CardGroup cols={2}>
  <Card title="A question" icon="message-circle-question">
    Up to six questions at once, each with suggested answers as buttons. You can always type something else instead.
  </Card>

  <Card title="An approval" icon="hand">
    A list of actions it wants to take, with the detail behind each one: the command, the target, the diff. Approve or decline per item.
  </Card>

  <Card title="A connector" icon="link">
    It found the integration it needs in the library and asks you to connect it. The card carries the setup form.
  </Card>

  <Card title="A credential" icon="key">
    A masked form for an API key that no connector covers.
  </Card>
</CardGroup>

An agent asks one thing at a time, batching everything into a single card, so you are never facing three stacked questions.

## The secret guarantee

When an agent needs an API key, it never asks for it in the chat. It opens a masked form, and the value goes straight into your Box variables.

The agent learns which variable name was filled and nothing else. It then references it as `${VARIABLE_NAME}` in a connector config or a command, and the value resolves on your Box at run time.

<Warning>
  Never paste a secret into the chat itself. The conversation is stored and sent to the model. An agent that asks you to is doing it wrong: use the masked form.
</Warning>

## Notifications

Separate from the pauses, an agent can tell you something and keep working. Those arrive as notifications rather than cards.

Kinds are `info`, `progress`, `done`, `error`, plus the `question`, `approval` and `connector` kinds raised by the pauses above.

Everything waiting for you is collected in the agent **To handle** tab, and in the workspace notifications panel.

## Delivery

Notifications reach you in the app and by email. Configure it from your profile menu, under **Notifications**: per kind, per channel, and separately for runs you started and runs that fired on their own.

Set the automated ones to email and leave your own conversations in-app, so a 3am approval actually finds you.

## While you are away

A run started by a [scheduled task or a webhook](/agents/automations) can pause exactly like a chat run. Nothing is skipped because nobody was watching.

The run waits, the notification goes out, and the agent resumes from your answer whenever you get to it.

## Reading it back

A paused run shows up in [`list_runs`](/api/tools/runs#list-runs) like any other, and `output` carries the agent last message. The card itself is answered in the app: there is no API tool for approving on someone's behalf.
