Dataset Variables
Access any dataset column by its type or column name. These variables are available for all entity types:dataset.input- Input column (same asrun.input)dataset.output- Output columndataset.expectedOutput- Expected output columndataset.scenario- Scenario columndataset.expectedSteps- Expected steps columndataset.expectedToolCalls- Expected tool calls columndataset.columns["column name"]- Any custom column by name
Run Variables
Access run-specific data using therun. prefix. Available options depend on your entity type (prompt or agent).
Prompt Variable Mapping
Single-Turn Prompts
Access prompt version data using theversion. prefix:
version.messages(JSON) - All messages in the prompt version, including saved messagesversion.systemMessage(String) - System message from the saved versionversion.userMessages(JSON) - User messages combining saved version messages and run input
run.input(String) - Input variablerun.output(String) - Output variablerun.context(String) - Retrieved context based on your selectionrun.toolCalls(JSON) - Tool calls with name, arguments, and results
Multi-Turn Prompts
Variable mapping in multi-turn prompts works the same way as in single-turn prompts.Version Variables
version.messages(JSON) — All messages defined in the prompt versionversion.systemMessage(String) — System messageversion.userMessages(JSON) — Combined user messages
Run Variables
run.input(String) — Input variablerun.toolCalls(JSON) — Tool calls with detailsrun.sessionMessages(JSON) — All messages in the sessionrun.sessionMessages[*]— All messages in the sessionrun.sessionMessages[index]— Message at a specific indexrun.sessionMessages[turn].input— Input message for a specific or all turnsrun.sessionMessages[turn].output— Output message for a specific or all turns
run.context (JSON) object.
If your prompt defines variables such as context and context2, their resolved values across turns are available as an array in run.context. Each array entry represents the variable bindings for a single turn in the session.
You can:
- Map all turns using
run.context[*]in your evaluator - Access a specific turn using
run.context[index]
Agent Variable Mapping
Single-Turn Agents
Access agent response data using theresponse. prefix:
run.input(String) - Input variablerun.output(String) - Output variablerun.context(String) - Retrieved contextrun.response(JSON/any) - Agent response with nested field access via dropdown or dot notation for objects, index notation for arrays
Multi-Turn Agent
For simulation runs, map variables from the conversation:run.session(JSON) - Complete conversation session
Voice agent Variable Mapping
For voice agent simulation runs, map variables from the conversation:run.session(JSON) - Complete conversation sessionrun.recordingUrl(String) - Call recording url of the call
No-code agent Variable Mapping
Access no-code agent run data:run.input(String) - Input variablerun.output(String) - Output variablerun.context(String) - Retrieved context based on your selectionrun.toolCalls(JSON) - Tool calls with name, arguments, and results
Custom code variables mapping
If your use case is’nt met by the above variables mapping options, you can write your own custom code to manupluate and access the variables in your evaluator. You can write your own custom code to manupluate and access the variables in your evaluator.