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

# Test your Agent Responses

> Test and validate your AI agents before deployment

## The first step to reliable agents

Eval (Evaluate agent responses) is the entry point to Rippletide. Before adding memory or decision runtime, start by testing what your agent already does. Rippletide evaluates your agent's responses against expected answers, detects hallucinations, and gives you a clear pass/fail report.

Once you know where your agent stands, you can move to the [Context Graph](/docs/mcp/overview) for persistent memory and [Decision runtime](/docs/hypergraph_overview) for deterministic decision-making.

## How It Works

<Steps>
  <Step title="Define expected Q&A pairs">
    Provide questions and their expected answers in a `qanda.json` file, a Pinecone index, or a PostgreSQL database.
  </Step>

  <Step title="Send questions to your agent">
    Rippletide sends each question to your agent's endpoint and collects the response.
  </Step>

  <Step title="Compare and score">
    Each response is compared against the expected answer. The evaluation engine checks for factual accuracy, hallucinations, and completeness.
  </Step>

  <Step title="View results">
    Get a summary with total tests, pass/fail count, duration, and a link to the detailed dashboard at [app.rippletide.com](https://app.rippletide.com).
  </Step>
</Steps>

## Evaluation Criteria

Each agent response is evaluated on:

| Criterion                   | What it checks                                                           |
| --------------------------- | ------------------------------------------------------------------------ |
| **Factual accuracy**        | Does the response match the expected answer's facts?                     |
| **Hallucination detection** | Does the response contain information not present in the knowledge base? |
| **Completeness**            | Does the response cover all key points from the expected answer?         |

A response **passes** when it is factually accurate and free of hallucinations. It **fails** when it contains fabricated information or contradicts the expected answer.

## Evaluation report

After evaluation, each response gets:

* A **label** (`pass` or `fail`)
* A **justification** explaining the verdict
* A list of **facts** extracted from the response, each labeled as correct or hallucinated

```json theme={null}
{
  "label": "fail",
  "justification": "The response claims free shipping on all orders, which contradicts the knowledge base.",
  "facts": [
    { "fact": "Returns accepted within 30 days", "label": "correct" },
    { "fact": "Free shipping on all orders", "label": "hallucination" }
  ]
}
```

## Two Ways to Evaluate

### CLI

Run evaluations from the terminal with an interactive UI, real-time progress, and template support. [See the CLI guide →](/docs/cli_guide)

### API Endpoints

Use the Evaluation API for the smallest supported programmatic workflow:
create or update an evaluation agent, upload knowledge, create a test prompt,
submit the result, and read the result.

See the [API Reference](/api-reference/introduction) for full endpoint documentation.

## What's next?

Now that you can evaluate your agent, the next step is to give it memory:

<CardGroup cols={2}>
  <Card title="Context Graph" icon="diagram-project" href="/docs/mcp/overview">
    Give your agent persistent memory with a context graph
  </Card>

  <Card title="Decision runtime" icon="wand-magic-sparkles" href="/docs/hypergraph_overview">
    Build deterministic agents with less than 1% hallucination rate
  </Card>
</CardGroup>
