Skip to Content
Parameters

Parameters

Parameters define the dimensions along which simulation scenarios can vary. Each parameter is a category — like Temperament or Crowdedness — that contains a set of fields representing its possible values.

Parameters list showing parameter groups with name, description, and field count

What is a Parameter?

A parameter is a named axis of variation for your simulations. It represents a category (such as “Temperament” or “Location”) and contains fields that define the specific values within that category (such as “Aggressive”, “Confused”, “Happy”, “Passive” for Temperament).

Parameters and their fields are attached to documents and scenarios, letting you organize simulation content along meaningful dimensions and control the conditions under which each simulation runs.

University example: A CS department might define these parameters:

ParameterFields
TemperamentAggressive, Confused, Happy, Passive
Intensity1 through 10
Crowdedness1 through 10 (e.g., “Almost Empty (1)” to “Hectic (10)“)
DeadlineSpecific deadline contexts
TimeTime-of-day contexts
LocationLawson, Felix Haas Hall
ClassCS-180, CS-251, CS-252, CS-307, CS-348, CS-381, CS-422

How It Connects: The 5-Step Workflow

Parameters contribute to step 2 of the Glow workflow by organizing the scenario content:

  1. Create Personas — Define AI student characters with temperaments and behaviors.
  2. Assign to Scenarios — Attach personas and documents to scenarios. Parameters and fields on those documents categorize the simulation conditions.
  3. Add to Simulations — Group scenarios into simulations.
  4. Add to Cohorts — Assign profiles and simulations to a cohort.
  5. Run Attempts — Learners launch simulations under the conditions defined by parameter values.

Parameters connect to fields. Each parameter contains one or more fields. Documents reference both parameters and fields, which helps organize and filter scenarios by their characteristics.


Create a parameter

Via the CLI

Calls below use $GLOW_INSTANCE_URL + $GLOW_TOKEN — see Authentication to export them once.

glow parameters create --body '{ "parameters": [ { "name": "Temperament", "description": "The emotional disposition of the AI student character" } ] }'

Via the API

All endpoints use POST and require an Authorization: Bearer header.

curl -X POST $GLOW_INSTANCE_URL/parameter/create \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "parameters": [ { "name": "Crowdedness", "description": "How crowded the simulated office hours environment is, from 1 (almost empty) to 10 (hectic)" } ] }'

Parameter creation form showing name, description, and field selection


Parameters vs. fields

Understanding the relationship between parameters and fields is essential:

  • A parameter is the category (e.g., “Temperament”).
  • A field is a specific value within that category (e.g., “Confused”).

Parameters own fields. When you create the “Temperament” parameter, you then create fields like “Aggressive”, “Confused”, “Happy”, and “Passive” under it. Documents and scenarios reference specific fields, while parameters provide the organizational grouping.

Example: The “Location” parameter has fields for “Lawson” and “Felix Haas Hall”. A document for CS-180 office hours might be tagged with the “Lawson” field, so scenarios using that document know the simulated location is Lawson Hall.

Parameter detail showing field list with values and linked personas/scenarios


Parameter value resolution

When a scenario runs, Glow resolves each persona {{placeholder}} against the parameter values supplied by the scenario. Parameters define the axis; the scenario supplies the concrete field for each axis at runtime.

For example, a persona referencing {{class}} and {{intensity}} will pull those values from whichever scenario the simulation hands it — so a single persona can drive wildly different conversations depending on the resolved parameter values.

See the Personas parameter fields section for the full list of available placeholders.


Drafts

Parameters support the draft workflow. Changes are saved as a draft before being published, with optimistic concurrency via expected_version.

# Save a parameter draft glow parameters draft --body '{ "name": "Intensity", "description": "The intensity level of the simulated interaction, from 1 to 10" }'

Via the API, use PATCH /parameter/draft with fields like input_draft_id, expected_version, name, description, flag_ids, department_ids, and field_ids.


Parameters support rich search and filtering. You can filter by:

  • Scenario — Find parameters used in specific scenarios (scenario_ids, scenario_search)
  • Field — Find parameters that contain specific fields (field_ids, field_search)
  • Department — Scope to a department (filter_department_ids, department_search)
# Search parameters by field curl -X POST $GLOW_INSTANCE_URL/parameter/search \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "field_search": "Confused", "page_size": 20 }'

Bulk operations

Bulk delete and update follow the canonical all-matching shape — pass either explicit IDs, or all: true with flat filter fields + optional excluded_ids + a patch for updates.

# Delete every parameter in a deprecated department, except canonical references glow parameters delete --body '{ "all": true, "filter_department_ids": ["dept-deprecated"], "excluded_ids": ["param-keep-canonical"] }' # Bulk update via patch glow parameters update --body '{ "all": true, "filter_department_ids": ["dept-archive"], "patch": { "archived": true } }'

See the Personas guide for the canonical write-up of this pattern.

Common Operations

TaskCLIAPI Endpoint
List all parametersglow parameters listPOST /parameter/search
Get a parameterglow parameters get --body '{...}'POST /parameter/get
Create parametersglow parameters create --body '{...}'POST /parameter/create
Update parametersglow parameters update --body '{...}'POST /parameter/update
Duplicate a parameterPOST /parameter/duplicate
Delete parametersglow parameters delete --body '{...}'POST /parameter/delete
Bulk delete (filter)glow parameters delete --body '{"all": true, "filter_…": "…"}'POST /parameter/delete
Export to CSVglow parameters exportPOST /parameter/export
Save a draftglow parameters draft --body '{...}'PATCH /parameter/draft
List draftsPOST /parameter/drafts
Last updated on