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
  • general: judges a single plain-text input/output pair with no conversation involved (e.g. summarization, extraction, classification)
Available options:
response,
tool_call,
conversation,
general
config
object | null

The calibrate test config.

  • history: the conversation up to the agent's turn, required for response and conversation tests and for a tool_call test aimed at a conversational agent. Each item is {role, content} with role one of user, assistant, tool. A tool message also carries tool_call_id and name.
  • input: a standalone prompt with no conversation around it, required for general tests and for a tool_call test aimed at a general agent. A string, not a conversation.
  • evaluation: the required {type, ...}, where type matches the test's type below.
  • settings: an optional object, e.g. {"language": "en"}.

A tool_call test carries exactly one of history or input, and which one it carries decides the agent it can be linked to.

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?}.
  • general: judge a standalone, non-conversational input/output pair, graded by the linked evaluators. {"type": "general"}

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, for a conversational agent. Swap history for input to aim it at a general agent:

general 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