﻿---
title: Agent states
description: The states an agent can be in, how Heed knows them, and how they order your sessions.
url: https://docs-v3-preview.elastic.dev/concepts/agent-states
---

# Agent states
Every session shows its agent's state, and the sidebar sorts by it: whatever needs you comes first.

| State       | Means                                                              |
|-------------|--------------------------------------------------------------------|
| **working** | The agent is busy.                                                 |
| **blocked** | It wants permission to run something and cannot go on without you. |
| **asking**  | It has questions for you.                                          |
| **done**    | It finished its turn.                                              |
| **idle**    | Waiting for a prompt.                                              |
| **limited** | It hit a rate or usage limit.                                      |
| **exited**  | The agent's process ended.                                         |

![The sidebar grouped by state: pinned, needs you, working, parked](https://docs-v3-preview.elastic.dev/images/shots/concepts/states.png)

## Reported or guessed

Most agents report their state through [hooks](https://docs-v3-preview.elastic.dev/agents/hooks): Heed passes them a small command to call as they
work. For states an agent cannot report, Heed reads its terminal and guesses from what is on screen
([Reading the screen](https://docs-v3-preview.elastic.dev/agents/screen-reading)). A guessed state is drawn with a dotted ring, and a reported state
always wins over a guess.

## Where states show

- The sidebar's groups and glyphs, and the inspector's event list.
- The title bar's counts of blocked and asking sessions.
- The [Dock badge](https://docs-v3-preview.elastic.dev/outside-the-window/dock) and the [menu bar item](https://docs-v3-preview.elastic.dev/outside-the-window/menu-bar).
- `ga` jumps to the next session that needs you.