Skip to main content
Available on versions 0.9.11+ of the client This command creates a new simulation and starts a Snowglobe session with your chatbot connected to it. In this session your chatbot will only process scenarios from the newly launched simulation and no others. Once the simulation is in a terminal state, your chatbot will disconnect from Snowglobe and the session will automatically close.

Prerequisites

  • Installed and authenticated snowglobe
  • Wrapper created and tested
  • .snowglobe/agents.json and .snowglobe/config.rc exist (created by init)
  • A valid simulation config yaml file

What this does

  • Creates a new simulation using the values provided in the yaml config file
  • Binds your wrapper so it can call Snowglobe during a session
  • Processes scenarios created in the Snowglobe simulation and sends them to your chatbot
  • Sends the chatbot’s response back to Snowglobe
  • Streams basic status to your terminal while active
  • Exits once the simulation is in a terminal state

Usage

snowglobe simulate ./config.yml

Simulation Configuration File

The config file supports two mutually exclusive shapes. Use the generated shape to let Snowglobe generate personas up to the bounds you set, or the explicit personas shape to run a fixed set of personas you describe yourself.

Generated personas

version: int # Required, Currently only supports 1
max_personas: int # Required, Sets the upper bound for the number of personas to generate
max_conversations: int # Required, Sets the upper bound for the number of conversations to generate
max_conversation_length: int # Required, Sets the upper bound for the number of turns per conversation
agent_description: str # Optional, overrides the description set on the Agent during intial setup
simulation_prompt: str # Optional, provides coarse guidance for the  intent of the simulation

Explicit personas

Available on versions 1.0.0+ of the client Provide a list of persona descriptions instead of letting Snowglobe generate them. Each persona runs conversations_per_persona conversations.
version: int # Required, Currently only supports 1
personas: list[str] # Required, at least one persona description (e.g. "Alice, a friendly first-time user")
conversations_per_persona: int # Required, number of conversations to run per persona (>= 1)
max_conversation_length: int # Required, Sets the upper bound for the number of turns per conversation (>= 1)

Example

version: 1
personas:
  - "Alice, a friendly first-time user."
  - "Bob, a frustrated user who wants a refund."
conversations_per_persona: 3
max_conversation_length: 6
The personas and max_personas / max_conversations shapes can’t be combined — provide one or the other. If personas is present, the explicit-personas shape is used.

CLI Options

All of the below options are required in order to successfully start a simulation. If they are not provided in the command, and there are no reasonable defaults, you will be prompted to make selections using the CLI.

--agent-id

The UUID for the Agent the simulation should target. If you do not provide a value and you only have one agent configured, that agent will be automatically selected. If you do not provide a value and you have more than one agent configued, you will be prompted to interactively select an agent.

--name

A name for the simulation.

--agent-profile

Skip auto-tuning and pin a specific Agent Profile by version number (e.g. ‘5’) or UUID. The profile must already exist and be approved on the selected agent. Requires exactly one agent to be selected. Mutually exclusive with —no-agent-profile. If you do not provide a value, do not specify —no-agent-profile, and you only have one agent profile available, that agent profile will be automatically selected. If you do not provide a value, do not specify —no-agent-profile, and you have more than one agent profile available for the selected agent, you will be prompted to interactively select an agent profile.

--no-agent-profile

Skip the Agent Profile (tuning) preflight and launch the simulation without an Agent Profile. Use this when the wrapper should never participate in the tool-mock tuning pipeline.

--organization-id

The organization to create this simulation in. The specified org must have access to the agent. If you do not provide a value and do not have SNOWGLOBE_ORG_ID specified either in .snowglobe/config.rc or via an environment variable, you will be prompted to interactively select an organization. You can interactively configure a default organization beforehand with the snowglobe select-organization command.