Core Concepts
Prompt Management revolves around two core objects: the prompt you author and the versions you save and promote.
A prompt is the unit you author and ship. It has a human-readable name, a URL slug, template text, and test settings such as model and tools.
Example: a prompt named “Welcome Email” with slug welcome-email. One prompt per concept your application consumes.
A version is an immutable snapshot of a prompt’s template text. Versions are numbered sequentially (v1, v2, v3, …) and recorded with the author and timestamp. You save a version when you want a stable point to promote, compare against, or roll back to.
Every prompt is backed by a managed variable. That backing variable is what your application fetches, and it is where labels, targeting, and rollout rules live.
The backing variable name is derived from the prompt slug:
prompt__<slug_with_underscores>
For example, a prompt with slug welcome-email has the backing variable
prompt__welcome_email.
Use Prompt Management to author the prompt and save versions. Use Managed
Variables to promote a version by moving labels such as production, canary,
or staging, or to configure rollout and targeting rules.
Prompts can compose reusable fragments with @{...}@ references. A prompt can
reference a regular managed variable:
@{support_safety_rules}@
It can also reference another prompt through that prompt’s backing variable:
@{prompt__support_style}@
Use composition for shared configuration that should have its own owner, version
history, or rollout. Use {{...}} template parameters for per-request inputs.
For prompt testing workflows, see Test Prompts.
Prompts carry two identifiers that matter in normal use.
| Identifier | Example | Where you see it |
|---|---|---|
| Display name | Welcome Email | Prompts list, page titles, search |
| Slug | welcome-email | URL path (/prompts/welcome-email/) |