Skip to main content
PUT
Update test

Authorizations

X-API-Key
string
header
required

API key for authentication

Path Parameters

test_uuid
string
required

Test to update

Example:

"b1c2d3e4-f5a6-7890-bcde-f12345678901"

Body

application/json
name
string | null

New test name. Omit to leave unchanged

type
enum<string> | null

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)

Immutable. Omit it, or send the current value

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.

Replaces the stored config. Omit to leave unchanged

Example:
evaluators
EvaluatorRef · object[] | null

New evaluator links for the test. Omit to leave unchanged. An empty list clears them, except on conversation tests, which must keep at least one

Response

Successful Response

uuid
string
required

Unique ID for the test

Required string length: 36
Example:

"b1c2d3e4-f5a6-7890-bcde-f12345678901"

name
string
required

Name of the test

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
created_at
string
required

When the test was created (ISO 8601 UTC)

updated_at
string
required

When the test was last updated (ISO 8601 UTC)

config
object | null

The stored config: history, evaluation, and an optional settings

evaluators
object[]

Linked evaluators, resolved to their current live version at read time