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

# Overview

> A 60-second crash course on Snowglobe and simulation testing.

Snowglobe is a high-fidelity simulation engine that generates thousands of realistic, diverse conversations to stress-test your AI chatbots. It creates synthetic users with different goals and personalities that interact with your chatbot's endpoints across various scenarios, helping you identify potential risks, edge cases, and performance issues before deployment.

## How It Works

Snowglobe generates AI personas that create test scenarios for user applications, then iteratively focuses on the highest-risk personas based on test results.

```mermaid theme={null}
flowchart LR
    %% external actors and user-provided components
    user(("<br/>User"))
    appUnderTest{{"<br/>AI Application<br/>under Test"}}
    
    %% Snowglobe subsystem with enhanced styling
    subgraph snowglobe["Snowglobe"]
        direction TB

        riskCfg["Risk & Behavior Config<br/>hallucination, product metrics<br/>tone, style"]
        appDesc["App Description<br/>mini PRD"]
        histData[("Historical Data<br/>Knowledge Base<br/>chatbot APIs")]

        persona["Rich Persona Modeller<br/>goals, tone, personality, skills"]
        genAlgo["Generation Algorithm<br/>proprietary"]
        riskEval["Risk Evaluation<br/>engine"]

        %% internal data flow
        riskCfg --> persona
        appDesc --> persona
        histData --> persona
        persona --> genAlgo
        riskEval -->|"Prioritise<br/>high-risk personas"| genAlgo
    end

    %% connections between Snowglobe and external components
    genAlgo -->|"Test scenarios"| appUnderTest
    appUnderTest -->|"Results"| riskEval

    %% user inputs
    user -->|"configure"| riskCfg
    user -->|"describe"| appDesc
    user -->|"provide"| histData

    %% styling
    classDef userProvided fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px,color:#1b5e20
    classDef snowglobeInternal fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c
    classDef dataStore fill:#fff3e0,stroke:#ef6c00,stroke-width:2px,color:#e65100
    classDef process fill:#e1f5fe,stroke:#0277bd,stroke-width:2px,color:#01579b
    
    class user,appUnderTest userProvided
    class riskCfg,appDesc snowglobeInternal
    class histData dataStore
    class persona,genAlgo,riskEval process
    
    %% subgraph styling
    style snowglobe fill:#f8f9ff,stroke:#3f51b5,stroke-width:3px
```

<CardGroup cols={2}>
  <Card title="Getting Started" icon="book-open-cover" href="/snowglobe/docs/quickstart">
    Get started with Snowglobe in under 5 minutes.
  </Card>

  <Card title="See Examples" icon="lightbulb" href="/snowglobe/docs/examples/llm">
    See examples Snowglobe in action for various kinds of chatbots.
  </Card>
</CardGroup>

## Core Concepts

* **AI chatbot**: The AI chatbot that Snowglobe will stress-test. In order to stress-test a chatbot, you need to provide a connection to the chatbot (e.g. a URL to an API endpoint or start a local server) as well as a short description of the chatbot's purpose and behavior.
* **Simulations**: One run of Snowglobe is called a simulation. During a simulation, Snowglobe will generate a set of personas that will interact with the chatbot's endpoints to create simulated conversations.
* **Personas**: Synthetic user that Snowglobe creates during a simulation. Personas have their own goals, personality, and behavior, and they maintain their own state as they interact with the chatbot's endpoints.
* **Scenarios**: Each simulated conversation is called a scenario. Snowglobe will generate scenarios at scale during simulation.
* **Metrics**: Judgements on the chatbot's performance on each scenario. Users select the metrics that they want to track during simulation.

## Why Snowglobe?

* **Testing at scale** - Simulate thousands of user interactions that manual testing cannot practically cover.
* **Rich persona modeling** - Multi-dimensional personas generate realistic, diverse interactions across varied user types and behavioral patterns.
* **High-quality test data** - Automated generation produces comprehensive scenarios with authentic conversation flows and edge cases.
* **Catches issues before deployment** - Identify vulnerabilities and failure modes during development phases before they reach production.
* **Workflow integration** - Integrates into CI/CD pipelines. Data can be exported to CSV, JSON, or exported to your favorite eval tool.

## Getting Started

Ready to secure your application? Start with our [Quickstart guide](/snowglobe/docs/quickstart) to run your first simulation in under 5 minutes.
