# Check what happened

> Find out what an agent did, whether it ran as often as it should, and whether it's using what you gave it, on the Monitor and Log pages.

After this page you can find out what an agent actually did: whether it ran, how often, how far it got, and what it reached. This is where you look before you change anything on the outcome, cost or security side of Optimize. To change an agent, go to [Diagnose and improve an agent](https://docs4.mindset.ai/docs/ams/diagnose-and-improve-an-agent).

## What this is

Two pages, both for admins:

| Page | Tabs | What it's for |
| --- | --- | --- |
| **Monitor** | **Cost**, **Performance**, **Resources**, **Topology** | How everything is doing, across the org |
| **Log** | **Sessions**, **Events** | What happened, one conversation or one step at a time |

Both cover one [environment](https://docs4.mindset.ai/docs/ams/environments) at a time. Pick it with the environment picker. They never mix environments.

Each page has an agent docked on the left (**Monitor agent** and **Log agent**). It reads the same records you do and can drive the page for you: switch tabs, change the time window, trace a run on the topology. It's read only and can't change anything. Ask it rather than hunting: "did the invoice agent run this morning?" is faster asked than found.

## Monitor

| Tab | What it shows |
| --- | --- |
| **Cost** | Where the money went. See [See and control what it costs](https://docs4.mindset.ai/docs/ams/see-and-control-what-it-costs). The default tab |
| **Performance** | How long every resource takes and how often it fails, at the median and the tail |
| **Resources** | Every resource in the org with its health, whether or not it has ever run |
| **Topology** | Every resource, what it can reach, and what's flowing through it |

**Resources** ranks and filters in the database across everything you have, so the top of a sorted list is the real top. Click a row to open it: calls, failures, success rate, **Avg latency**, **Last used**, recent logs, and **View in log**.

### Every resource has a two part status

The status answers two questions separately: has anything happened in the time window, and did the last one succeed? An agent that hasn't run for a week isn't failing. One that ran ten minutes ago and errored isn't idle.

| State | In the window? | Last one? |
| --- | --- | --- |
| **Active** | Yes | Succeeded |
| **Failing** | Yes | Failed |
| **Idle** | No | Drawn as a hollow ring |
| **Never used** | Never | Drawn as a dashed ring, and it says so in words |

The window is the time frame you pick: 1 hour, 6 hours, 24 hours (the default), 7, 14 or 30 days.

### Granted versus used

Compare what an agent was granted with what it actually called.

**Granted and never called is a dead grant.** The invoice agent is granted the supplier contracts knowledge base. If it never searches it, the assess phase is deciding whether the contract allows a difference without opening a contract, and it still sounds confident. Nothing failed, so run outcomes won't show you this.

**Called and never granted** shows on **Topology** as **Used without grant**. Look at it the same day. The usual reason is that the run delegated to another agent with resources of its own.

Ask the Monitor agent to trace a run, or to list an agent's granted and used resources.

## Log

**Sessions** lists every conversation with an agent, newest first. **Events** is the raw record: one row per step, each showing which version produced it.

Open a session for its detail: when, agent, user, channel, turns and outcome, and the tabs **Transcript**, **Steps**, **Resources**, **Cost** and **Compliance**. A session that delegated to another agent shows the delegated sessions under it, so if the month end close agent handed forty exceptions to the invoice agent, all forty are reachable from the close agent's session.

## The questions people arrive with

| The question | Where to look |
| --- | --- |
| Did it run? | **Monitor → Resources**, or ask the Monitor agent. If there's no run, nothing started it. Look at the trigger, not the agent |
| Did it run as often as it should? | Ask for the run count over a window. A schedule that should have fired fourteen times and fired nine is the clearest signal you'll get |
| How far did it get? | Open the session in **Log** and read **Steps** |
| Did it reach the right system? | Open the session and look for an identifier you recognize in what came back, such as a PO number |
| Is it waiting on someone? | A script run parked on a Slack question. Check the channel |
| Is it using what I gave it? | Granted versus used |
| Which version was this? | **Log → Events** shows it on every row. Check it first when two runs behaved differently |

## The routine check

Nothing chases you. Somebody has to hold the habit.

| How much the work matters | How often to look |
| --- | --- |
| A customer notices within hours | Daily |
| Internal work with a deadline that week | Twice a week |
| Reporting, nothing urgent | Weekly |
| Anything that changes a system of record | Daily, however quiet it looks |

Name a person and a backup.

## Things to be aware of

- Monitor, Log and Optimize are admin only.
- There's no CSV download of runs. **Export session** exports one session. To send traces, metrics and costs to a system you already run, set up OpenTelemetry export under **Settings → Governance → Telemetry export (OpenTelemetry)**.
- Nothing on these pages changes an agent.

## When it doesn't work

- **A resource says never used and you know it ran.** Wrong environment, almost every time.
- **A run isn't there at all.** Nothing started it. Check the trigger.
- **The run looks fine and the work didn't happen.** Check granted versus used, then check whether a write was refused because the operation is still pending approval.

## You're done when

- You can open any session and say what started it, which version ran, how far it got and what it reached.
- You've looked at granted versus used for one agent and can name its dead grants, or say it has none.
- A named person checks **Monitor → Resources** on a stated rhythm, with a backup.
