Docs/Advanced/Prompt Management

Prompt Management

Version-control prompts with diff capabilities. Pin prompt versions to experiments for reproducible testing.

import { Invariance } from '@invariance/sdk';

Overview

The prompt management system provides version control for system prompts and developer prompts. Each prompt can have multiple versions, and you can diff between any two versions to see what changed.

Prompt versions can be pinned to experiments, ensuring that A/B tests use exactly the prompts you intended.

Quick Example

Create prompt, add versions, difftypescript
const inv = Invariance.init({ apiKey: process.env.INVARIANCE_API_KEY! });

const prompt = await inv.prompts.create({
  name: 'Support Agent System Prompt',
  description: 'Main system prompt for customer support agent',
});

const v1 = await inv.prompts.createVersion(prompt.id, {
  system_prompt: 'You are a helpful customer support agent.',
  variables: ['customer_name', 'issue_type'],
});

const v2 = await inv.prompts.createVersion(prompt.id, {
  system_prompt: 'You are a helpful and concise customer support agent. Always verify the customer identity first.',
  variables: ['customer_name', 'issue_type', 'account_id'],
});

const diff = await inv.prompts.diff(v1.id, v2.id);
console.log(diff.changes);

API Reference

prompts.list
List all prompts.
async list(): Promise<Prompt[]>
ReturnsPromise<Prompt[]>
prompts.create
Create a new prompt.
async create(body: { name: string; description?: string; scope?: string }): Promise<Prompt>
Parameters
namestringPrompt name
descriptionstringDescription
ReturnsPromise<Prompt>
prompts.createVersion
Add a new version to a prompt.
async createVersion(id: string, body: CreatePromptVersionBody): Promise<PromptVersion>
Parameters
idstringPrompt ID
system_promptstringSystem prompt text
developer_promptstringDeveloper prompt text
variablesstring[]Template variables used
ReturnsPromise<PromptVersion>
prompts.listVersions
List all versions of a prompt.
async listVersions(id: string): Promise<PromptVersion[]>
Parameters
idstringPrompt ID
ReturnsPromise<PromptVersion[]>
prompts.diff
Diff two prompt versions.
async diff(fromId: string, toId: string): Promise<PromptDiffResult>
Parameters
fromIdstringSource version ID
toIdstringTarget version ID
ReturnsPromise<PromptDiffResult>
prompts.delete
Delete a prompt and all its versions.
async delete(id: string): Promise<void>
Parameters
idstringPrompt ID
ReturnsPromise<void>

Use Cases

  • Version-control system prompts alongside code changes
  • A/B test prompt variations through experiments
  • Diff prompt versions to review changes before deployment
  • Pin prompts to experiments for reproducible results
On this page
OverviewQuick ExampleAPI ReferenceUse CasesRelated Modules