curl --request POST \
--url https://api.calibrate.artpark.ai/tests \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.calibrate.artpark.ai/tests"
payload = { "name": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"uuid": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create test
Create a test that runs your agent against a conversation and evaluates its answer quality or the tools it calls
curl --request POST \
--url https://api.calibrate.artpark.ai/tests \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.calibrate.artpark.ai/tests"
payload = { "name": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"uuid": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key for authentication
Body
Name of the test, unique within the workspace
What the test judges:
response: judges the generated replytool_call: diffs the generated tool callsconversation: judges the full conversationgeneral: judges a single plain-text input/output pair with no conversation involved (e.g. summarization, extraction, classification)
response, tool_call, conversation, general The calibrate test config.
history: the conversation up to the agent's turn, required forresponseandconversationtests and for atool_calltest aimed at a conversational agent. Each item is{role, content}withroleone ofuser,assistant,tool. Atoolmessage also carriestool_call_idandname.input: a standalone prompt with no conversation around it, required forgeneraltests and for atool_calltest aimed at ageneralagent. A string, not a conversation.evaluation: the required{type, ...}, wheretypematches the test'stypebelow.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. Addtool_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 equalvalue{"match_type": "llm_judge", "criteria": "..."}: judged against the criteria{"match_type": "any"}: any value, only checks the argument was passed
response / conversation example:
{
"history": [{"role": "user", "content": "What is your return policy?"}],
"evaluation": {"type": "response"},
"settings": {"language": "en"}
}
tool_call example, for a conversational agent. Swap history for input to aim it at a general agent:
{
"history": [{"role": "user", "content": "Book room 101 for tomorrow"}],
"evaluation": {
"type": "tool_call",
"tool_calls": [
{
"tool": "book_room",
"arguments": {
"room": {"match_type": "exact", "value": "101"},
"date": {"match_type": "llm_judge", "criteria": "tomorrow's date"}
},
"accept_any_arguments": false
}
]
}
}
general example:
{
"input": "Summarize this article: ...",
"evaluation": {"type": "general"},
"settings": {"language": "en"}
}
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
{
"evaluation": { "type": "response" },
"history": [
{
"content": "What is your return policy?",
"role": "user"
}
],
"settings": { "language": "en" }
}
Evaluators to link. Used by response and conversation tests
Show child attributes
Show child attributes