A test case is a recorded conversation with your agent that you want to keep answering correctly. Every AI Fusion test case starts from a real run of the agent: you hold the conversation (or let Studio AI hold it), check the answers, adjust any answer that is not what you expect, and save it. This article describes where test cases are stored and the four ways to create them in AI Fusion Studio.
Test cases are grouped into eval suites. Each suite belongs to one agent and is a CSV file in the agent's Evals folder:
<LU>/AI/Agents/<agent>/Evals/<suite>.csv
Each row of the file is one test case. You normally never edit these files by hand — the Eval Editor and the AI Explorer commands maintain them for you — but knowing the columns helps when you review changes in source control.
| Column | Content |
id |
A stable internal row ID. |
sessionid |
The baseline session the case was saved from. Its snapshots and its token/time figures are what the case replays on and is compared with. |
caseId |
The test case name, unique within the suite. |
initParams |
JSON object of the agent inputs the conversation starts with, for example {"customerId":"1"}. |
description |
Free-text description of what the case checks. |
disabled |
1 when the case is excluded from runs. |
threshold |
JSON array of thresholds, for example [{"defaultThreshold":{"MIN":"4.0"}},{"Tokens":{"MAX":"20"}}]. See Quality Criteria and Thresholds. |
dimension |
JSON map of dimension name to the description the judge receives. |
transcript |
JSON array of {"role","content"} messages. user messages are the questions that are replayed; assistant messages are the expected answers. |
transcript_edited |
1 while the transcript has changes that were not yet uploaded with Upload Artifacts. |
saved_with_snap |
1 when a snapshot of the business data was captured with the case. Set once, when the case is first saved. |
A case can be single-turn (one question, one answer) or multi-turn. In a multi-turn case, every user message is replayed in order within the same conversation, so the case also tests whether the agent keeps context across turns.
Suites are read from the deployed LU. The evaluation runtime reads the copy of the suites that was deployed with the LU, not the files in your workspace. Studio takes care of this: it soft-deploys the agent's LU after every change it makes to a suite and before every run. If you change a CSV outside Studio (for example, by pulling from Git), deploy the LU before running.
In the AI Explorer, expand an agent and its Evals folder. Each suite is shown as a node, and its test cases are listed under it.
To create a suite, right-click the agent (or its Evals folder) and select New Eval Suite…. Enter a name; Studio creates the CSV with one test case named "New test" and opens it in the Eval Editor.
Right-click a suite to:
Right-click a test case to:
Use this method when you want to design a specific scenario from scratch.
The suite file is edited like any other document in Studio: save it with Ctrl+S. Studio asks you to save or discard unsaved changes when you switch to another case.
Use this method when you find an interesting conversation while testing the agent in Preview — a good answer you want to protect, or a bad one you want to fix and keep fixed.
Open the new case from the AI Explorer to review the answers and thresholds before you rely on it.
Conversations that real users had — especially those with negative feedback or unexpected behavior — make the most valuable test cases. You export them from Observation and import them into Studio Preview, then save them as test cases. See Data Snapshots and Production Import.
The Agent Builder in Studio AI can build a suite for you from a list of business questions. Unlike the AI-assisted generation of AI Fusion 2.x, it does not invent answers: it runs every question through the agent and saves the agent's real answer as the expected answer.
For an entity-scoped agent, the agent needs a working step_start hook that loads the entity with the GetWithSnap actor; otherwise the agent has no customer data and the snapshots are empty. The Agent Builder checks this and offers to fix the hook first.
See AI-Assisted Development for how to start the Agent Builder.
Review generated cases like any other: an answer captured from the agent is a baseline, not automatically a correct answer.
The assistant answers in a case's transcript are what the judge compares new answers with. When a recorded answer is wrong or incomplete, correct it so the case describes what the agent should say.
Editing the user questions changes what is replayed; editing the assistant answers changes what is expected. Write expected answers that describe the required content, not exact wording — see Evaluation Best Practices.
Toggle Disabled in the Eval Editor top bar (or use Enable / Disable in the AI Explorer) to keep a case in the suite without running it, for example while a known issue is being fixed. Disabled cases are skipped by suite runs, and Run Evaluation is not available for them.
Agents that answer relative-date questions ("my bill from last month") get today's date from the current_datetime tool. When a case replays a snapshot captured months ago, today's date no longer matches the data. To pin the date for a case, add a now key to the case's initParams, for example {"customerId":"1","now":"2025-06-01T00:00:00Z"} (a date-only value means midnight UTC).
now is honored only in evaluation runs. The interactive agent endpoints reject it, so you cannot enter it in the New chat dialog; add it to the initParams cell of the suite CSV and deploy the LU.
Next article: Quality Criteria and Thresholds
A test case is a recorded conversation with your agent that you want to keep answering correctly. Every AI Fusion test case starts from a real run of the agent: you hold the conversation (or let Studio AI hold it), check the answers, adjust any answer that is not what you expect, and save it. This article describes where test cases are stored and the four ways to create them in AI Fusion Studio.
Test cases are grouped into eval suites. Each suite belongs to one agent and is a CSV file in the agent's Evals folder:
<LU>/AI/Agents/<agent>/Evals/<suite>.csv
Each row of the file is one test case. You normally never edit these files by hand — the Eval Editor and the AI Explorer commands maintain them for you — but knowing the columns helps when you review changes in source control.
| Column | Content |
id |
A stable internal row ID. |
sessionid |
The baseline session the case was saved from. Its snapshots and its token/time figures are what the case replays on and is compared with. |
caseId |
The test case name, unique within the suite. |
initParams |
JSON object of the agent inputs the conversation starts with, for example {"customerId":"1"}. |
description |
Free-text description of what the case checks. |
disabled |
1 when the case is excluded from runs. |
threshold |
JSON array of thresholds, for example [{"defaultThreshold":{"MIN":"4.0"}},{"Tokens":{"MAX":"20"}}]. See Quality Criteria and Thresholds. |
dimension |
JSON map of dimension name to the description the judge receives. |
transcript |
JSON array of {"role","content"} messages. user messages are the questions that are replayed; assistant messages are the expected answers. |
transcript_edited |
1 while the transcript has changes that were not yet uploaded with Upload Artifacts. |
saved_with_snap |
1 when a snapshot of the business data was captured with the case. Set once, when the case is first saved. |
A case can be single-turn (one question, one answer) or multi-turn. In a multi-turn case, every user message is replayed in order within the same conversation, so the case also tests whether the agent keeps context across turns.
Suites are read from the deployed LU. The evaluation runtime reads the copy of the suites that was deployed with the LU, not the files in your workspace. Studio takes care of this: it soft-deploys the agent's LU after every change it makes to a suite and before every run. If you change a CSV outside Studio (for example, by pulling from Git), deploy the LU before running.
In the AI Explorer, expand an agent and its Evals folder. Each suite is shown as a node, and its test cases are listed under it.
To create a suite, right-click the agent (or its Evals folder) and select New Eval Suite…. Enter a name; Studio creates the CSV with one test case named "New test" and opens it in the Eval Editor.
Right-click a suite to:
Right-click a test case to:
Use this method when you want to design a specific scenario from scratch.
The suite file is edited like any other document in Studio: save it with Ctrl+S. Studio asks you to save or discard unsaved changes when you switch to another case.
Use this method when you find an interesting conversation while testing the agent in Preview — a good answer you want to protect, or a bad one you want to fix and keep fixed.
Open the new case from the AI Explorer to review the answers and thresholds before you rely on it.
Conversations that real users had — especially those with negative feedback or unexpected behavior — make the most valuable test cases. You export them from Observation and import them into Studio Preview, then save them as test cases. See Data Snapshots and Production Import.
The Agent Builder in Studio AI can build a suite for you from a list of business questions. Unlike the AI-assisted generation of AI Fusion 2.x, it does not invent answers: it runs every question through the agent and saves the agent's real answer as the expected answer.
For an entity-scoped agent, the agent needs a working step_start hook that loads the entity with the GetWithSnap actor; otherwise the agent has no customer data and the snapshots are empty. The Agent Builder checks this and offers to fix the hook first.
See AI-Assisted Development for how to start the Agent Builder.
Review generated cases like any other: an answer captured from the agent is a baseline, not automatically a correct answer.
The assistant answers in a case's transcript are what the judge compares new answers with. When a recorded answer is wrong or incomplete, correct it so the case describes what the agent should say.
Editing the user questions changes what is replayed; editing the assistant answers changes what is expected. Write expected answers that describe the required content, not exact wording — see Evaluation Best Practices.
Toggle Disabled in the Eval Editor top bar (or use Enable / Disable in the AI Explorer) to keep a case in the suite without running it, for example while a known issue is being fixed. Disabled cases are skipped by suite runs, and Run Evaluation is not available for them.
Agents that answer relative-date questions ("my bill from last month") get today's date from the current_datetime tool. When a case replays a snapshot captured months ago, today's date no longer matches the data. To pin the date for a case, add a now key to the case's initParams, for example {"customerId":"1","now":"2025-06-01T00:00:00Z"} (a date-only value means midnight UTC).
now is honored only in evaluation runs. The interactive agent endpoints reject it, so you cannot enter it in the New chat dialog; add it to the initParams cell of the suite CSV and deploy the LU.
Next article: Quality Criteria and Thresholds