---
title: Testing and run history
description: Try your draft on a key you choose, read every step of any run, and see what people ask the published agent.
updated: 2026-10-29
---

> All VIABLE docs, for people and their agents: https://developers.viablelab.org/llms.txt

# Testing and run history

Try your draft before learners meet it, check it against tests, then read what happened in any run.

## Try it

**Test → Try it** runs the unpublished draft, so you don't need to publish to test.

- **Who pays.** Every message is a real run on the key under **Options → Who pays**. It needs the **Run agents** permission and must allow your steps' models. A stopped run still bills the model calls it started.
- **Memory.** **Options → Memory** chooses **Continue a conversation** (recommended), **Independent messages** or **Send history from this browser**.
- **Test as.** **Options → Test as** sends a person's identifier, such as `student-042`, as your app would.
- **Reference data.** Material sent with each message, such as a rubric. Steps read it as `{{context.name}}`. **Try it as in a course activity** fills in an activity's **How the AI helps**, so you see the replies its learners get.
- **Attachments.** **+** attaches photos and PDFs when every step that gets the message can read them.

Each reply shows its cost, steps and time. **Show on canvas** replays the run.

**Edit** a message you sent and click **Save & send**: it becomes a new version from that point, with its own replies, and **‹ n/m ›** moves between versions. **New chat** clears them; runs stay in Run history.

## Run history

A run is one execution of an agent. **Test → Run history** lists runs newest first. Filter by **Where runs came from**, such as **Chat page**, **Course** or **Dashboard test**, and by **How runs ended**. You can also filter by result data, for example `needs_human: true`. **Export** downloads the latest 200 as CSV or JSONL.

## A run's trace

A run shows its reply, duration, model calls, tokens and cost. **Run trace** lists the steps in order. A step's **Input** is what it acted on; its **Output** shows the result (**Pretty** or **Raw JSON**) with the **Provider calls**. A VETTING step lists each round's verdict and the **Reviewer**'s reason.

## Tests

To check a change against what learners might say before you publish, keep tests and run them: see [Agent tests](/docs/build/agent-tests).

## Insights

**Test → Insights** shows what people ask the published agent over 7, 30 or 90 days, without your tests, and flags answers that **need a look**: **Failed**, **Not answered**, **Needs a person** and **Review didn't pass**. **Topics** groups recent questions, with **What the sources seem to miss**. For the middle two, have your Reply step return `"status": "not_found"` or `"needs_human": true` in **Result data for your app**.

## Memory

Memory is what an agent keeps about a person between conversations, up to 200 facts each, from a **Memory** step or **Remember the user** in an Agent step. A person is the `user` your app sends, or a chat page's visitor. **Test → Memory** lists who the agent remembers and what.

> [!WARNING]
> Deleting a fact, or using **Forget everything about** a person, is permanent.

::: cards
- [VETTING](/docs/build/vetting): what each outcome of a VETTING step means.
- [Learners and traces](/docs/connect/learners-and-traces): name your app's users and keep each run's trace.
:::
