client.agents.verify_connection(...) -> VerifyConnectionResponse
-
-
-
Verify an agent's connection and persist the result when successful
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.verify_connection( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ The agent whose connection to verify
-
model:
typing.Optional[str]β Model to verify. Omit for a basic connection check. Provide it for a model-specific check before benchmarking that model
-
messages:
typing.Optional[typing.List[typing.Dict[str, str]]]β Sample chat messages to send during verification. Omit to use the default probe
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.resolve(...) -> ResolveAgentNamesResponse
-
-
-
Get the IDs for your agents by their names
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.resolve( names=[ "my-agent", "support-bot" ], )
-
-
-
names:
typing.List[str]β Agent names to resolve to IDs
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.list(...) -> PaginatedResponseAgentSummary
-
-
-
Get the list of all your agents
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.list()
-
-
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.create(...) -> AgentCreateResponse
-
-
-
Create an agent to test inside Calibrate or connect your existing agent to Calibrate
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.create( name="Support Agent", type="agent", config={ "system_prompt": "You are a helpful assistant.", "llm": {"model": "google/gemini-2.5-flash"}, "stt": {"provider": "google"}, "tts": {"provider": "google"}, "settings": {"agent_speaks_first": True, "max_assistant_turns": 50} }, )
-
-
-
name:
strβ Agent name, unique within the workspace
-
type:
typing.Optional[AgentCreateType]agent: built inside Calibrateconnection: your existing agent connected to Calibrate
-
config:
typing.Optional[typing.Dict[str, typing.Any]]Agent behavioral config. The keys depend on
type.type=agent, built inside Calibrate:system_prompt: the agent's instructionsllm.model:provider/model, e.g.openai/gpt-4.1orgoogle/gemini-2.5-flashstt.provider:deepgram,openai,cartesia,elevenlabs,google,sarvam, orsmallesttts.provider:cartesia,openai,google,elevenlabs,sarvam, orsmallestsettings.agent_speaks_first,settings.max_assistant_turnssystem_tools.end_call: let the agent end the calldata_extraction_fields:[{name, type, description, required}]
{ "system_prompt": "You are a helpful support agent.", "llm": {"model": "openai/gpt-4.1"}, "stt": {"provider": "deepgram"}, "tts": {"provider": "elevenlabs"}, "settings": {"agent_speaks_first": true, "max_assistant_turns": 50} }type=connection, your own HTTP endpoint:agent_url: public HTTP(S) endpoint your agent is called atagent_headers: headers sent on each request, e.g. authbenchmark_provider:openrouterby default. Other values:openai,google,anthropic,meta-llama,mistralai,deepseek,x-ai,cohere,qwen, orai21
{ "agent_url": "https://api.example.com/agent", "agent_headers": {"Authorization": "Bearer <token>"}, "benchmark_provider": "openrouter" }For
type=agent, omitted keys inherit managed defaults. Omitconfigentirely to use all defaults. Fortype=connection,configis stored as-is and must containagent_url
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.get(...) -> RoutersAgentsAgentResponse
-
-
-
Get one agent by its ID
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.get( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ The agent to retrieve
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.update(...) -> RoutersAgentsAgentResponse
-
-
-
Update an agent's configuration
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.update( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ The agent to update
-
name:
typing.Optional[str]β New agent name. Omit to leave the name unchanged
-
config:
typing.Optional[typing.Dict[str, typing.Any]]Agent behavioral config. The keys depend on
type.type=agent, built inside Calibrate:system_prompt: the agent's instructionsllm.model:provider/model, e.g.openai/gpt-4.1orgoogle/gemini-2.5-flashstt.provider:deepgram,openai,cartesia,elevenlabs,google,sarvam, orsmallesttts.provider:cartesia,openai,google,elevenlabs,sarvam, orsmallestsettings.agent_speaks_first,settings.max_assistant_turnssystem_tools.end_call: let the agent end the calldata_extraction_fields:[{name, type, description, required}]
{ "system_prompt": "You are a helpful support agent.", "llm": {"model": "openai/gpt-4.1"}, "stt": {"provider": "deepgram"}, "tts": {"provider": "elevenlabs"}, "settings": {"agent_speaks_first": true, "max_assistant_turns": 50} }type=connection, your own HTTP endpoint:agent_url: public HTTP(S) endpoint your agent is called atagent_headers: headers sent on each request, e.g. authbenchmark_provider:openrouterby default. Other values:openai,google,anthropic,meta-llama,mistralai,deepseek,x-ai,cohere,qwen, orai21
{ "agent_url": "https://api.example.com/agent", "agent_headers": {"Authorization": "Bearer <token>"}, "benchmark_provider": "openrouter" }Replaces the stored config. Omit to leave unchanged
For
type=connection, changingagent_urloragent_headersresets the connection and benchmark verification flags
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.list_evaluators(...) -> PaginatedResponseEvaluatorResponse
-
-
-
List evaluators linked to an agent
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.list_evaluators( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ The agent whose evaluators to list
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agents.link_evaluators(...) -> RoutersAgentsEvaluatorLinkResponse
-
-
-
Link one or more existing evaluators to an agent, skipping any already linked
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agents.link_evaluators( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", evaluator_ids=[ "f47ac10b-58cc-4372-a567-0e02b2c3d479" ], )
-
-
-
agent_uuid:
strβ The agent to link the evaluators to
-
evaluator_ids:
typing.List[str]β The evaluators to link to the agent. Ones that are already linked are skipped. Each must be one you created or a built-in default
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tests.bulk_create(...) -> BulkTestUploadResponse
-
-
-
Create many test cases at once and link them to your agents
-
-
-
from calibrate import Calibrate, BulkTestItem, ChatMessage from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.tests.bulk_create( type="response", tests=[ BulkTestItem( name="name", conversation_history=[ ChatMessage( role="user", ) ], ) ], )
-
-
-
type:
BulkTestUploadTypeWhat the test judges:
response: judges the generated replytool_call: diffs the generated tool callsconversation: judges the full conversation
Applied to every test in the batch
-
tests:
typing.List[BulkTestItem]β Test items to create, at most 500 per request, with names unique within the batch
-
agent_uuids:
typing.Optional[typing.List[str]]β IDs of agents to link every created test to. Omit to link none
-
language:
typing.Optional[str]β Language written to each test'sconfig.settings.language. Omit to leave unset
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tests.list(...) -> PaginatedResponseTestListResponse
-
-
-
List all the test cases for your agents
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.tests.list()
-
-
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tests.create(...) -> TestCreateResponse
-
-
-
Create a test that runs your agent against a conversation and evaluates its answer quality or the tools it calls
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.tests.create( name="name", type="response", )
-
-
-
name:
strβ Name of the test, unique within the workspace
-
type:
TestCreateTypeWhat the test judges:
response: judges the generated replytool_call: diffs the generated tool callsconversation: judges the full conversation
-
config:
typing.Optional[typing.Dict[str, typing.Any]]The calibrate test config. Three top-level keys.
history: the required conversation up to the agent's turn. Each item is{role, content}withroleone ofuser,assistant,tool. Atoolmessage also carriestool_call_idandname.evaluation: the required{type, ...}, wheretypematches the test'stypebelow.settings: an optional object, e.g.{"language": "en"}.
evaluationby 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?}.
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/conversationexample:{ "history": [{"role": "user", "content": "What is your return policy?"}], "evaluation": {"type": "response"}, "settings": {"language": "en"} }tool_callexample:{ "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 } ] } }Evaluators are linked via the separate
evaluatorsfield, not insideconfig.Omit to create the test with no config and fill it in later via update
-
evaluators:
typing.Optional[typing.List[RoutersTestsEvaluatorRef]]β Evaluators to link. Used byresponseandconversationtests
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tests.get(...) -> TestResponse
-
-
-
Get an agent test case by its ID
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.tests.get( test_uuid="b1c2d3e4-f5a6-7890-bcde-f12345678901", )
-
-
-
test_uuid:
strβ Test to retrieve
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.tests.update(...) -> TestResponse
-
-
-
Update an agent test case
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.tests.update( test_uuid="b1c2d3e4-f5a6-7890-bcde-f12345678901", )
-
-
-
test_uuid:
strβ Test to update
-
name:
typing.Optional[str]β New test name. Omit to leave unchanged
-
type:
typing.Optional[TestUpdateType]What the test judges:
response: judges the generated replytool_call: diffs the generated tool callsconversation: judges the full conversation
Immutable. Omit it, or send the current value
-
config:
typing.Optional[typing.Dict[str, typing.Any]]The calibrate test config. Three top-level keys.
history: the required conversation up to the agent's turn. Each item is{role, content}withroleone ofuser,assistant,tool. Atoolmessage also carriestool_call_idandname.evaluation: the required{type, ...}, wheretypematches the test'stypebelow.settings: an optional object, e.g.{"language": "en"}.
evaluationby 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?}.
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/conversationexample:{ "history": [{"role": "user", "content": "What is your return policy?"}], "evaluation": {"type": "response"}, "settings": {"language": "en"} }tool_callexample:{ "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 } ] } }Evaluators are linked via the separate
evaluatorsfield, not insideconfig.Replaces the stored config. Omit to leave unchanged
-
evaluators:
typing.Optional[typing.List[RoutersTestsEvaluatorRef]]β New evaluator links for the test. Omit to leave unchanged. An empty list clears them, except onconversationtests, which must keep at least one
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.link(...) -> AgentTestsCreateResponse
-
-
-
Link one or more tests to an agent. Tests that are already linked are skipped.
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.link( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", test_uuids=[ "b1c2d3e4-f5a6-7890-bcde-f12345678901" ], )
-
-
-
agent_uuid:
strβ Agent to link tests to
-
test_uuids:
typing.List[str]β Tests to link. Any that are already linked are skipped
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.list_for_agent(...) -> PaginatedResponseTestListResponse
-
-
-
List the tests linked to an agent.
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.list_for_agent( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ Agent whose linked tests to list
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.list_runs_for_agent(...) -> PaginatedResponseAgentTestRunListItem
-
-
-
List an agent's test runs with their results
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.list_runs_for_agent( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ Agent whose test runs to list
-
type:
typing.Optional[ListRunsForAgentAgentTestsRequestType]Filter by run type. Omit to return both:
llm-unit-test: single runs of an agent's testsllm-benchmark: multi-model comparisons
-
status:
typing.Optional[TaskStatus]β Filter by run status. Omit for all statuses
-
has_failures:
typing.Optional[bool]β Filter by whether the run has any failing test case or model.truereturns only runs with failures (or errors),falseonly clean runs. Omit for both
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.run(...) -> AgentTestRunCreateResponse
-
-
-
Run an agent's linked tests as a background job, returning a task ID to poll.
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.run( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
agent_uuid:
strβ Agent to test
-
test_uuids:
typing.Optional[typing.List[str]]β Tests to run. Omit to run all tests linked to the agent
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.run_batch(...) -> BatchTestRunResponse
-
-
-
Run agent tests for every agent, or for a selected set.
-
-
-
from calibrate import Calibrate, BatchRunRequest from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.run_batch( request=BatchRunRequest(), )
-
-
-
request:
typing.Optional[BatchRunRequest]
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.get_run(...) -> TestRunStatusResponse
-
-
-
Poll a test run for its status and evaluation results.
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.get_run( task_id="a3b2c1d0-e5f4-3210-abcd-ef1234567890", )
-
-
-
task_id:
strβ Test run to poll for status and results
-
only_failed:
typing.Optional[bool]β Return only failing test cases. Omit to return every case
-
compact:
typing.Optional[bool]β Return a compact response that omits heavy detail fields (results.output,results.test_case,results.judge_results,results.reasoning,evaluators.output_config), keeping only the lightweight decision fields. Omit for full detail
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.benchmark(...) -> AgentTestRunCreateResponse
-
-
-
Run a multi-model benchmark on an agent's linked tests as a background job.
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.benchmark( agent_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", models=[ "openai/gpt-4.1", "anthropic/claude-sonnet-4" ], )
-
-
-
agent_uuid:
strβ Agent to benchmark
-
models:
typing.List[str]β Model names to benchmark
-
test_uuids:
typing.Optional[typing.List[str]]β A subset of the agent's linked tests to benchmark. Each ID must be linked to the agent. Omit to run all linked tests
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.agent_tests.get_benchmark(...) -> BenchmarkStatusResponse
-
-
-
Get the results of a benchmark run
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.agent_tests.get_benchmark( task_id="a3b2c1d0-e5f4-3210-abcd-ef1234567890", )
-
-
-
task_id:
strβ Benchmark run to poll for status and results
-
only_failed:
typing.Optional[bool]β Return only failing test cases for each model. Omit to return every case
-
compact:
typing.Optional[bool]β Return a compact response that omits heavy detail fields (model_results.test_results,evaluators.output_config), keeping only the lightweight decision fields. Omit for full detail
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.evaluators.list(...) -> PaginatedResponseEvaluatorResponse
-
-
-
List your evaluators
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.evaluators.list()
-
-
-
evaluator_type:
typing.Optional[ListEvaluatorsRequestEvaluatorType]β Filter by what the evaluator judges. Omit for all types
-
data_type:
typing.Optional[ListEvaluatorsRequestDataType]β Filter by modality. Omit for all
-
include_defaults:
typing.Optional[bool]β Retained for backward compatibility and no longer filters. Your evaluators, including your editable copies of the defaults, are always returned
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.evaluators.create(...) -> EvaluatorCreateResponse
-
-
-
Create an evaluator along with its first version, which is set live
-
-
-
from calibrate import Calibrate, EvaluatorVersionCreate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.evaluators.create( name="name", version=EvaluatorVersionCreate( judge_model="judge_model", system_prompt="system_prompt", ), )
-
-
-
name:
strβ Evaluator name, unique within your workspace
-
version:
EvaluatorVersionCreateβ The evaluator's first version. Set as live when you create the evaluator
-
description:
typing.Optional[str]β Description. Omit to leave blank
-
evaluator_type:
typing.Optional[EvaluatorCreateEvaluatorType]What the evaluator judges:
tts: TTS audiostt: one transcriptllm: a reply with its conversation historyllm-general: a standalone input and output pairconversation: a full conversation
-
data_type:
typing.Optional[EvaluatorCreateDataType]The modality the judge reads:
textaudio
-
output_type:
typing.Optional[EvaluatorCreateOutputType]How the evaluator scores:
binary: pass or failrating: a numeric score, using the scale inoutput_config
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.evaluators.get(...) -> EvaluatorDetailResponseCompact
-
-
-
Get one evaluator with its full version history
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.evaluators.get( evaluator_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
evaluator_uuid:
strβ Evaluator to retrieve
-
compact:
typing.Optional[bool]β Return a compact response that omits heavy detail fields (versions.system_prompt,versions.output_config,versions.variables), keeping only the lightweight decision fields. Omit for full detail
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.evaluators.create_version(...) -> VersionCreateResponse
-
-
-
Add a new version to an evaluator you created
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.evaluators.create_version( evaluator_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", judge_model="judge_model", system_prompt="system_prompt", )
-
-
-
evaluator_uuid:
strβ Evaluator to add a version to
-
judge_model:
strβ The model that runs the judge, named the way its provider does, for exampleopenai/gpt-4.1oranthropic/claude-sonnet-4
-
system_prompt:
strβ Judge system prompt. May contain{{variable}}placeholders
-
output_config:
typing.Optional[OutputConfig]β The scale points and their labels. Required for aratingevaluator. Abinaryevaluator uses the default Correct/Wrong labels unless you set your own
-
variables:
typing.Optional[typing.List[VariableSpec]]β Declared prompt variables. Omit if the prompt has none. After the first version the variable names are fixed. You can change a variable's description or default, but not add, remove, or rename one
-
make_live:
typing.Optional[bool]β Whentrue, immediately point the evaluator's live version at this new version
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.list(...) -> PaginatedResponseAnnotationTaskResponse
-
-
-
List annotation tasks with linked evaluators
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.list()
-
-
-
q:
typing.Optional[str]β Case-insensitive substring search onname. Blank is a no-op
-
limit:
typing.Optional[int]β Maximum number of items to return. Omit for no limit (all items)
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.create(...) -> AnnotationTaskCreateResponse
-
-
-
Create an annotation task for annotators to label items against evaluators
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.create( name="name", type="stt", )
-
-
-
name:
strβ Task name, unique within your workspace
-
type:
AnnotationTaskCreateTypeTask type. Determines the shape of each item's payload.
stt: judge a transcript on its ownllm: judge one response with its conversation historyllm-general: judge a standaloneinput -> outputpairconversation: judge a full conversation
-
description:
typing.Optional[str]β A description for the task. Omit for none
-
evaluator_ids:
typing.Optional[typing.List[str]]β IDs of evaluators to link when the task is created, in order. Each must be one you created or a built-in default. Omit to create with no linked evaluators
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.get(...) -> AnnotationTaskResponse
-
-
-
Get one annotation task with linked evaluators, items, and labelling jobs
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.get( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
task_uuid:
strβ Task to retrieve
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.set_evaluators(...) -> EvaluatorSetResponse
-
-
-
Replace a task's linked evaluators with the given ordered set, linking, unlinking, and reordering as needed
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.set_evaluators( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", evaluator_ids=[ "f47ac10b-58cc-4372-a567-0e02b2c3d479" ], )
-
-
-
task_uuid:
strβ Annotation task to act on
-
evaluator_ids:
typing.List[str]β The full ordered set of evaluators the task should end up linked to, in display order. Missing ones are unlinked, new ones are linked, and the order sets their position. Send an empty list to unlink all. Each must be one you created or a built-in default
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.add_items(...) -> BulkCreateItemsResponse
-
-
-
Bulk-create annotation items in a task, optionally seeding human annotations
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.add_items( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", items=[], )
-
-
-
task_uuid:
strβ Annotation task to act on
-
items:
typing.List[AnnotationItemPayload]β Items to insert. Insertion order is preserved
-
annotator_id:
typing.Optional[str]β Annotator these initial annotations belong to. Required when any item carries annotations
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.update_items(...) -> BulkUpdateItemsResponse
-
-
-
Bulk-update item payloads in a task
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.update_items( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", updates=[], )
-
-
-
task_uuid:
strβ Annotation task to act on
-
updates:
typing.List[ItemUpdatePayload]β The new payload for each item you're updating. Entries not in this task, or referencing deleted items, are skipped
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.create_evaluator_run(...) -> EvaluatorRunLaunchResponse
-
-
-
Run evaluators on task items as a background job
-
-
-
from calibrate import Calibrate, EvaluatorRunRequestEntry from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.create_evaluator_run( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", evaluators=[ EvaluatorRunRequestEntry( evaluator_id="f47ac10b-58cc-4372-a567-0e02b2c3d479", ) ], )
-
-
-
task_uuid:
strβ Annotation task to act on
-
evaluators:
typing.List[EvaluatorRunRequestEntry]β The evaluators to run. Each must be linked to the task
-
item_ids:
typing.Optional[typing.List[str]]β Item IDs to run on. Required whenselect_all=false. Ignored whenselect_all=true
-
select_all:
typing.Optional[bool]β Whentrue, run on every item in the task. Setqto run only items whose name matches it
-
q:
typing.Optional[str]β Case-insensitive substring filter onpayload.name. Applies only whenselect_all=true
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.get_evaluator_run(...) -> EvaluatorRunResponse
-
-
-
Get one evaluator-run job with results and human-agreement summary
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.get_evaluator_run( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", job_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
task_uuid:
strβ Annotation task to act on
-
job_uuid:
strβ The evaluator run to act on
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.get_agreement(...) -> TaskAgreementResponse
-
-
-
Get human-vs-human and human-vs-evaluator agreement metrics for a task
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.get_agreement( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
task_uuid:
strβ Annotation task to act on
-
bucket:
typing.Optional[GetAgreementAnnotationTasksRequestBucket]β How to bucket points in the trend series
-
days:
typing.Optional[int]β Trailing window in days for the trend series
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-
client.annotation_tasks.get_summary(...) -> TaskSummaryResponse
-
-
-
Get a paginated summary table of items, evaluator runs, and human annotations for a task
-
-
-
from calibrate import Calibrate from calibrate.environment import CalibrateEnvironment client = Calibrate( api_key="<value>", environment=CalibrateEnvironment.DEFAULT, ) client.annotation_tasks.get_summary( task_uuid="f47ac10b-58cc-4372-a567-0e02b2c3d479", )
-
-
-
task_uuid:
strβ Annotation task to act on
-
item_id:
typing.Optional[str]β Filter rows to a single item. The full task-wide annotator union is still returned inannotators
-
live_only:
typing.Optional[bool]β When true, emit only one row for each (item, evaluator) pair using the evaluator's live version. Versions other than the live one that have runs are excluded
-
disagreement_only:
typing.Optional[bool]β When true, keep only rows where the evaluator disagreed with at least one annotator
-
q:
typing.Optional[str]β Case-insensitive substring search onpayload.name. Blank is a no-op
-
sort_by:
typing.Optional[str]β Sort key for the results
-
order:
typing.Optional[GetSummaryAnnotationTasksRequestOrder]β Sort direction
-
limit:
typing.Optional[int]β Maximum number of items to return
-
offset:
typing.Optional[int]β Number of items to skip before returning results
-
compact:
typing.Optional[bool]β Return a compact response that omits heavy detail fields (rows.payload,rows.evaluator_reasoning,rows.annotations.reasoning,evaluators.versions.system_prompt,evaluators.versions.output_config,evaluators.versions.variables,item_comments), keeping only the lightweight decision fields. Omit for full detail
-
request_options:
typing.Optional[RequestOptions]β Request-specific configuration.
-
-