Messages and input modes
Append raw inputs or substitute named variables into messages.
A prompt contains ordered messages and an input mode. The mode controls how each test case becomes a model request. Retrieval returns the saved configuration without applying an input; your application must perform the same assembly.
User message
Choose user_message when each case is a complete request. PromptLens appends the case's raw input as the final user message after the saved messages.
For the ticket router, save only the classification instructions as a system message. The case I was charged twice. is then appended as a user message. If you also save a user message, it stays in the conversation before the appended input.
Variables
Choose variables when you want named values inside saved messages. For example, save this user message:
Customer request: {{question}}
Applicable policy: {{policy}}
Write a reply using only the supplied policy.Set the case's input format to JSON and enter an object:
{
"question": "Can I get a refund after 12 days?",
"policy": "Unused purchases may be refunded within 30 days."
}The object's properties replace the corresponding placeholders. Include every required variable in every case. A missing variable stays as an unresolved placeholder; it does not turn into an empty string or a guessed value.
For plain text or JSON that is not an object, the raw input is available as {{input}}. If you want predictable variable substitution, use an object with explicit fields. Text and JSON formats describe how an input is stored and validated; the selected input mode determines how it enters the messages.
Keep evaluation and application requests aligned
Use the same message order, input assembly, model route, and generation settings in your application. Do not append a second copy of the input in Variables mode. The complete TypeScript and Python examples implement the ticket router's User message mode and reject another mode so a configuration change cannot silently alter request assembly.