Skip to main content
POST
Create test

Authorizations

X-API-Key
string
header
required

API key for authentication

Body

application/json
name
string
required

Name of the test, unique within the workspace

type
enum<string>
required

What the test judges:

  • response: judges the generated reply
  • tool_call: diffs the generated tool calls
  • conversation: judges the full conversation
Available options:
response,
tool_call,
conversation
config
object | null

The calibrate test config. Three top-level keys.

  • history: the required conversation up to the agent's turn. Each item is {role, content} with role one of user, assistant, tool. A tool message also carries tool_call_id and name.
  • evaluation: the required {type, ...}, where type matches the test's type below.
  • settings: an optional object, e.g. {"language": "en"}.

evaluation by test type:

  • response: judge the agent's reply, graded by the linked evaluators. {"type": "response"}
  • conversation: append the reply and judge the whole conversation. {"type": "conversation"}
  • tool_call: diff the agent's tool calls against expected ones. Add tool_calls, a list of {tool, arguments, accept_any_arguments?}.

For tool_call, each expected argument value is one of:

  • {"match_type": "exact", "value": <any>}: must equal value
  • {"match_type": "llm_judge", "criteria": "..."}: judged against the criteria
  • {"match_type": "any"}: any value, only checks the argument was passed

response / conversation example:

tool_call example:

Evaluators are linked via the separate evaluators field, not inside config.

Omit to create the test with no config and fill it in later via update

Example:
evaluators
EvaluatorRef · object[] | null

Evaluators to link. Used by response and conversation tests

Response

Successful Response

uuid
string
required

ID of the newly created test

Required string length: 36
Example:

"b1c2d3e4-f5a6-7890-bcde-f12345678901"

message
string
required

Confirmation message