Unique identifier for prompt
OptionalfilterFilter condition for prompt version usage (maps to "Usage conditions" in ServiceNow UI) Defines when this prompt version should be used based on input attribute values
In ServiceNow UI, this appears as:
TYPE-SAFE: Keys can be:
'User table', 'priority')'user_table.building.country')Normalization converts spaces to underscores and lowercases: 'User table' → 'user_table'
OptionalmaxMaximum tokens for response (required for non-"Now LLM Generic" providers)
Model name — autocomplete suggests known models for the selected provider Accepts any custom string for instance-specific or custom models
Known model suggestions per provider:
'llm_generic_small', 'llm_generic_large', 'llm_generic_large_v2''gpt-4', 'gpt-4o-mini', 'gpt_large''gpt-4', 'gpt-4o-mini''gemini-pro', 'gemini_large''claude_large''ibm/granite-13b-chat-v2'The actual prompt text - can be a string or a builder function
Option 1: Static string
prompt: "You are a helpful assistant. User says: {{input.question}}"
Option 2: Builder function (TYPE-SAFE!) ✅
prompt: (p) => p.template`
You are a helpful assistant.
User question: ${p.input.question}
Search results: ${p.tool.search.results}
`
The builder function provides:
Prompt state/status
OptionaltemperatureTemperature for LLM generation
OptionalversionPrompt version for tracking versions of same prompt
Base prompt settings for prompt versions Maps to sys_generative_ai_config fields Generic over TInputs and TTools to enable type-safe prompt builder