curl --request POST \ --url https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data '{ "input": { "input_messages": "[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]", "output_messages": "[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]" }}'
import requests
url = "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute"
payload = { "input": {
"input_messages": "[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]",
"output_messages": "[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]"
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
input_messages: '[{"role":"system","content":"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web."},{"role":"user","content":"What is the weather like in Paris?"}]',
output_messages: '[{"role":"assistant","tool_calls":[{"name":"get_weather","arguments":{"city":"Paris"}}]}]'
}
})
};
fetch('https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
'input_messages' => '[{"role":"system","content":"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web."},{"role":"user","content":"What is the weather like in Paris?"}]',
'output_messages' => '[{"role":"assistant","tool_calls":[{"name":"get_weather","arguments":{"city":"Paris"}}]}]'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute"
payload := strings.NewReader("{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}"
response = http.request(request)
puts response.read_body
{ "correct_args": true, "correct_args_reason": "The city argument matches the user's request", "tool_selection": "correct", "tool_selection_reason": "The agent correctly chose get_weather for the weather query"}
{
"error": "error message"
}
{
"error": "error message"
}
Evaluators
Execute agent-tool-selection-quality evaluator
Evaluate whether the agent selected the most appropriate tool(s) for the task at hand
Request Body:
input.input_messages (array of objects, required): The agent’s input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.)
input.output_messages (array of objects, required): The agent’s output messages for this step as a JSON array of message objects (may contain tool calls or plain text)
POST
/
v2
/
evaluators
/
agent-tool-selection-quality
/
execute
Execute agent-tool-selection-quality evaluator
curl --request POST \ --url https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data '{ "input": { "input_messages": "[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]", "output_messages": "[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]" }}'
import requests
url = "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute"
payload = { "input": {
"input_messages": "[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]",
"output_messages": "[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]"
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
input_messages: '[{"role":"system","content":"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web."},{"role":"user","content":"What is the weather like in Paris?"}]',
output_messages: '[{"role":"assistant","tool_calls":[{"name":"get_weather","arguments":{"city":"Paris"}}]}]'
}
})
};
fetch('https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
'input_messages' => '[{"role":"system","content":"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web."},{"role":"user","content":"What is the weather like in Paris?"}]',
'output_messages' => '[{"role":"assistant","tool_calls":[{"name":"get_weather","arguments":{"city":"Paris"}}]}]'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute"
payload := strings.NewReader("{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api.traceloop.com/v2/evaluators/agent-tool-selection-quality/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"input_messages\": \"[{\\\"role\\\":\\\"system\\\",\\\"content\\\":\\\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\\\"},{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"What is the weather like in Paris?\\\"}]\",\n \"output_messages\": \"[{\\\"role\\\":\\\"assistant\\\",\\\"tool_calls\\\":[{\\\"name\\\":\\\"get_weather\\\",\\\"arguments\\\":{\\\"city\\\":\\\"Paris\\\"}}]}]\"\n }\n}"
response = http.request(request)
puts response.read_body
{ "correct_args": true, "correct_args_reason": "The city argument matches the user's request", "tool_selection": "correct", "tool_selection_reason": "The agent correctly chose get_weather for the weather query"}
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"traceloop","colors":{"primary":"#EAB308","light":"#EAB308","dark":"#EAB308"},"favicon":"https://mintcdn.com/enrolla/-xQ9K52hAYrcQGvz/favicon.png?fit=max\u0026auto=format\u0026n=-xQ9K52hAYrcQGvz\u0026q=85\u0026s=6066426161fe311654d19ebca89ee7c0","logo":{"light":"https://mintcdn.com/enrolla/GspX1ocwd1gETLy0/logo/traceloop-light.png?fit=max\u0026auto=format\u0026n=GspX1ocwd1gETLy0\u0026q=85\u0026s=e245f77b5b8af11ef9aa4a0ce2ee97a6","dark":"https://mintcdn.com/enrolla/GspX1ocwd1gETLy0/logo/traceloop-dark.png?fit=max\u0026auto=format\u0026n=GspX1ocwd1gETLy0\u0026q=85\u0026s=d34d3b622526506a2a4512b32d4ebb9b"},"api":{"openapi":"openapi.json","mdx":{"server":"https://app.traceloop.com/api","auth":{"method":"bearer","name":null}}},"appearance":{"default":"dark","strict":null},"background":{"decoration":null,"color":{"light":null,"dark":"#09090B"}},"navbar":{"links":[{"label":"Community","href":"https://traceloop.com/slack"},{"label":"Support","href":"https://support.traceloop.com"}],"primary":{"type":"button","label":"Start now","href":"https://app.traceloop.com/"}},"footer":{"socials":{"github":"https://github.com/traceloop","twitter":"https://twitter.com/traceloopdev"}},"integrations":{"gtm":{"tagId":"GTM-NDQVZMH"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enrolla","hasAudioNarration":false,"actualSubdomain":"enrolla","customDomains":["www.traceloop.com"],"gitSource":{"type":"github","owner":"traceloop","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a50ddc4a3ca9e4edbc90a63","collectionId":"adc0afa5-95ac-4624-90b0-9d9b79bb22a1","schemaVersion":"v3"},"feedback":{"thumbs":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a50ddc4a3ca9e4edbc90a63:success","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Dashboard API","count":55},{"language":"default","tag":"OpenLLMetry","count":55},{"language":"default","tag":"Evaluators","count":43},{"language":"default","tag":"Integrations","count":34},{"language":"default","tag":"Documentation","count":30},{"language":"default","tag":"Tracing","count":14},{"language":"default","tag":"Quick Start","count":9},{"language":"default","tag":"Auto-monitor-setups","count":6},{"language":"default","tag":"Playgrounds","count":4},{"language":"default","tag":"Self-host","count":4}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#topbar-cta-button span,#topbar-cta-button svg{color:#09090b!important}#topbar-cta-button span.absolute{border-radius:8px!important}.nav-logo{width:140px!important}"}],"page":{"pagePath":"api-reference/evaluators/execute-agent-tool-selection-quality-evaluator","slug":"/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator","pageMetadata":{"openapi":"post /v2/evaluators/agent-tool-selection-quality/execute","title":"Execute agent-tool-selection-quality evaluator","description":"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand\n\n**Request Body:**\n- `input.input_messages` (array of objects, required): The agent's input messages — system prompt + conversation history as a JSON array of message objects (`role`, `content`, optional `tool_calls`, etc.)\n- `input.output_messages` (array of objects, required): The agent's output messages for this step as a JSON array of message objects (may contain tool calls or plain text)","href":"/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand\"\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Request Body:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"input.input_messages\"\n }), \" (array of objects, required): The agent’s input messages — system prompt + conversation history as a JSON array of message objects (\", _jsx(_components.code, {\n children: \"role\"\n }), \", \", _jsx(_components.code, {\n children: \"content\"\n }), \", optional \", _jsx(_components.code, {\n children: \"tool_calls\"\n }), \", etc.)\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"input.output_messages\"\n }), \" (array of objects, required): The agent’s output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /v2/evaluators/agent-tool-selection-quality/execute","title":"Execute agent-tool-selection-quality evaluator","description":"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand\n\n**Request Body:**\n- `input.input_messages` (array of objects, required): The agent's input messages — system prompt + conversation history as a JSON array of message objects (`role`, `content`, optional `tool_calls`, etc.)\n- `input.output_messages` (array of objects, required): The agent's output messages for this step as a JSON array of message objects (may contain tool calls or plain text)","href":"/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/enrolla/99d79fc3a15df79c/vibekit.js","/docs/_mintlify/custom/enrolla/a052f9c2fb91f2bb/scripts/filter-openapi.js","/docs/_mintlify/custom/enrolla/f023a04dbd14c606/scripts/update-mint-navigation.js"],"openApiReferenceData":{"operation":{"description":"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand\n\n**Request Body:**\n- `input.input_messages` (array of objects, required): The agent's input messages — system prompt + conversation history as a JSON array of message objects (`role`, `content`, optional `tool_calls`, etc.)\n- `input.output_messages` (array of objects, required): The agent's output messages for this step as a JSON array of message objects (may contain tool calls or plain text)","requestBody":"abe262cd-b09a-4b30-a6c5-316cdd981f92","responses":{"200":"583aa711-5451-4cb3-8293-5bcb6e36a699","400":"eb169739-d16b-4720-a1db-4ab4beb2f4b5","500":"620555bc-c3d2-48d9-ba58-489af77188e7"},"security":["9e70edfb-f661-4f08-98d8-5d5998c95377"],"summary":"Execute agent-tool-selection-quality evaluator","tags":["evaluators"],"method":"post","type":"path","servers":["381ed89e-4ddc-453c-9ccd-5725cffdc537"],"path":"/v2/evaluators/agent-tool-selection-quality/execute","baseUrlOptions":["https://api.traceloop.com"],"title":"Execute agent-tool-selection-quality evaluator","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"input":{"properties":{"input_messages":{"example":"[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]","type":"string","isRequired":true,"uniqueKey":"input.input_messages","typeLabel":"string"},"output_messages":{"example":"[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]","type":"string","isRequired":true,"uniqueKey":"input.output_messages","typeLabel":"string"}},"required":["input_messages","output_messages"],"type":"object","isRequired":true,"uniqueKey":"input","typeLabel":"object"}},"required":["input"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"input":{"input_messages":"[{\"role\":\"system\",\"content\":\"You are a helpful assistant with access to tools: 1. get_weather(city) - Get current weather. 2. search_web(query) - Search the web.\"},{\"role\":\"user\",\"content\":\"What is the weather like in Paris?\"}]","output_messages":"[{\"role\":\"assistant\",\"tool_calls\":[{\"name\":\"get_weather\",\"arguments\":{\"city\":\"Paris\"}}]}]"}}}},"exampleType":"generated"}},"description":"Request body","required":true,"exampleType":"generated"},"responses":{"583aa711-5451-4cb3-8293-5bcb6e36a699":{"description":"OK","content":{"application/json":{"schema":{"properties":{"correct_args":{"example":true,"type":"boolean","uniqueKey":"correct_args","typeLabel":"boolean"},"correct_args_reason":{"example":"The city argument matches the user's request","type":"string","uniqueKey":"correct_args_reason","typeLabel":"string"},"tool_selection":{"example":"correct","type":"string","uniqueKey":"tool_selection","typeLabel":"string"},"tool_selection_reason":{"example":"The agent correctly chose get_weather for the weather query","type":"string","uniqueKey":"tool_selection_reason","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"correct_args":true,"correct_args_reason":"The city argument matches the user's request","tool_selection":"correct","tool_selection_reason":"The agent correctly chose get_weather for the weather query"}}},"exampleType":"generated"}},"exampleType":"generated"},"eb169739-d16b-4720-a1db-4ab4beb2f4b5":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Standard error response structure","properties":{"error":{"example":"error message","type":"string","uniqueKey":"error","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"error message"}}},"exampleType":"generated"}},"exampleType":"generated"},"620555bc-c3d2-48d9-ba58-489af77188e7":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Standard error response structure","properties":{"error":{"example":"error message","type":"string","uniqueKey":"error","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"error message"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9e70edfb-f661-4f08-98d8-5d5998c95377":{"BearerAuth":{"description":"Type \"Bearer\" followed by a space and JWT token.","in":"header","name":"Authorization","type":"apiKey","scopes":[]}}},"servers":{"381ed89e-4ddc-453c-9ccd-5725cffdc537":{"url":"https://api.traceloop.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Type \"Bearer\" followed by a space and JWT token.","in":"header","name":"Authorization","type":"apiKey","scopes":[]},"schema":{"title":"Authorization","type":"string","description":"Type \"Bearer\" followed by a space and JWT token.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"enrolla","siteName":"traceloop","title":"Execute agent-tool-selection-quality evaluator - traceloop","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-18T10:50:41.329Z","originalFileLocation":"api-reference/evaluators/execute-agent-tool-selection-quality-evaluator.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand Request Body: - input.input_messages (array of objects, required): The agent\u0026#x27;s input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.) - input.output_messages (array of objects, required): The agent\u0026#x27;s output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\">\u003cmeta data-mint-head name=\"application-name\" content=\"traceloop\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execute agent-tool-selection-quality evaluator - traceloop\">\u003cmeta data-mint-head property=\"og:description\" content=\"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand Request Body: - input.input_messages (array of objects, required): The agent\u0026#x27;s input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.) - input.output_messages (array of objects, required): The agent\u0026#x27;s output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"traceloop\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enrolla.mintlify.app/_mintlify/api/og/v2?division=Evaluators\u0026amp;title=Execute+agent-tool-selection-quality+evaluator\u0026amp;description=Evaluate+whether+the+agent+selected+the+most+appropriate+tool%28s%29+for+the+task+at+hand%0A%0A**Request+Body%3A**%0A-+%60input.input_messages%60+%28array+of+objects%2C+required%29%3A+\u0026amp;theme=ff62921debafe09ea1aaaffe\u0026amp;signature=4ed49060fdafa170df92b6ae9e4a8eaae40c5154e96a5707297c3d0d730095b9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Execute agent-tool-selection-quality evaluator - traceloop\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand Request Body: - input.input_messages (array of objects, required): The agent\u0026#x27;s input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.) - input.output_messages (array of objects, required): The agent\u0026#x27;s output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enrolla.mintlify.app/_mintlify/api/og/v2?division=Evaluators\u0026amp;title=Execute+agent-tool-selection-quality+evaluator\u0026amp;description=Evaluate+whether+the+agent+selected+the+most+appropriate+tool%28s%29+for+the+task+at+hand%0A%0A**Request+Body%3A**%0A-+%60input.input_messages%60+%28array+of+objects%2C+required%29%3A+\u0026amp;theme=ff62921debafe09ea1aaaffe\u0026amp;signature=4ed49060fdafa170df92b6ae9e4a8eaae40c5154e96a5707297c3d0d730095b9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/enrolla/c4jFPLhIQoqlp6LG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"traceloop\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EAB308\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.traceloop.com/#organization\",\"name\":\"traceloop\",\"url\":\"https://www.traceloop.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enrolla/GspX1ocwd1gETLy0/logo/traceloop-light.png?fit=max\u0026auto=format\u0026n=GspX1ocwd1gETLy0\u0026q=85\u0026s=e245f77b5b8af11ef9aa4a0ce2ee97a6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.traceloop.com/docs#website\",\"name\":\"traceloop\",\"url\":\"https://www.traceloop.com/docs\",\"publisher\":{\"@id\":\"https://www.traceloop.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator#webpage\",\"url\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator\",\"name\":\"Execute agent-tool-selection-quality evaluator\",\"description\":\"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand Request Body: - input.input_messages (array of objects, required): The agent's input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.) - input.output_messages (array of objects, required): The agent's output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\",\"dateModified\":\"2026-06-18T10:50:41.329Z\",\"isPartOf\":{\"@id\":\"https://www.traceloop.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evaluators\",\"item\":\"https://www.traceloop.com/docs/api-reference/evaluators/create-a-custom-llm-as-a-judge-evaluator\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Execute agent-tool-selection-quality evaluator\",\"item\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator#apireference\",\"headline\":\"Execute agent-tool-selection-quality evaluator\",\"name\":\"Execute agent-tool-selection-quality evaluator\",\"description\":\"Evaluate whether the agent selected the most appropriate tool(s) for the task at hand Request Body: - input.input_messages (array of objects, required): The agent's input messages — system prompt + conversation history as a JSON array of message objects (role, content, optional tool_calls, etc.) - input.output_messages (array of objects, required): The agent's output messages for this step as a JSON array of message objects (may contain tool calls or plain text)\",\"url\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator\",\"mainEntityOfPage\":{\"@id\":\"https://www.traceloop.com/docs/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator#webpage\"},\"dateModified\":\"2026-06-18T10:50:41.329Z\",\"publisher\":{\"@id\":\"https://www.traceloop.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.traceloop.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"traceloop\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"traceloop","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction"}]},{"anchor":"OpenLLMetry","icon":"telescope","pages":[{"title":"OpenLLMetry","href":"/openllmetry/introduction"}]},{"anchor":"Hub","icon":"arrows-to-dot","pages":[{"title":"Hub","href":"/hub/getting-started"}]},{"anchor":"Dashboard API","icon":"webhook","groups":[{"group":"API Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"Tracing","pages":[{"title":"Enable logging of prompts and responses","api":"POST https://app.traceloop.com/api/config/pii/tracing-allow-list","href":"/api-reference/tracing/whitelist_user"},{"title":"Get identifiers of users that are allowed to be logged","api":"GET https://app.traceloop.com/api/config/pii/tracing-allow-list","href":"/api-reference/tracing/get_whitelisted_users"},{"title":"Disable logging of prompts and responses for specific users","api":"DELETE https://app.traceloop.com/api/config/pii/tracing-allow-list","href":"/api-reference/tracing/delete_whitelisted_user"}]},{"group":"GDPR \u0026 Privacy","pages":[{"title":"Delete specific user data","api":"DELETE https://app.traceloop.com/api/config/privacy/data-deletion","href":"/api-reference/privacy/delete_request"},{"title":"Status of user deletion request","api":"GET https://app.traceloop.com/api/config/privacy/data-deletion","href":"/api-reference/privacy/delete_status"}]},{"group":"Costs","pages":[{"title":"Get costs by property","api":"GET https://api.traceloop.com/v2/costs/by-association-property","href":"/api-reference/costs/property_costs"}]},{"group":"Warehouse","pages":[{"title":"Get Spans","api":"GET https://api.traceloop.com/v2/warehouse/spans","href":"/api-reference/warehouse/get_spans"}]},{"group":"Organizations","pages":[{"openapi":"post /v2/organizations","title":"Create a new organization","href":"/api-reference/organizations/create-a-new-organization"}]},{"group":"Evaluators","pages":[{"openapi":"post /v2/evaluators","title":"Create a custom LLM-as-a-judge evaluator","href":"/api-reference/evaluators/create-a-custom-llm-as-a-judge-evaluator"},{"openapi":"post /v2/evaluators/action-advancement/execute","title":"Execute action-advancement evaluator","href":"/api-reference/evaluators/execute-action-advancement-evaluator"},{"openapi":"post /v2/evaluators/agent-efficiency/execute","title":"Execute agent-efficiency evaluator","href":"/api-reference/evaluators/execute-agent-efficiency-evaluator"},{"openapi":"post /v2/evaluators/agent-flow-quality/execute","title":"Execute agent-flow-quality evaluator","href":"/api-reference/evaluators/execute-agent-flow-quality-evaluator"},{"openapi":"post /v2/evaluators/agent-goal-accuracy/execute","title":"Execute agent-goal-accuracy evaluator","href":"/api-reference/evaluators/execute-agent-goal-accuracy-evaluator"},{"openapi":"post /v2/evaluators/agent-goal-completeness/execute","title":"Execute agent-goal-completeness evaluator","href":"/api-reference/evaluators/execute-agent-goal-completeness-evaluator"},{"openapi":"post /v2/evaluators/agent-tool-error-detector/execute","title":"Execute agent-tool-error-detector evaluator","description":"Detect errors or failures during tool execution\n\n**Request Body:**\n- `input.tool_input` (string, required): JSON string of the tool input\n- `input.tool_output` (string, required): JSON string of the tool output","href":"/api-reference/evaluators/execute-agent-tool-error-detector-evaluator"},{"openapi":"post /v2/evaluators/agent-tool-selection-quality/execute","title":"Execute agent-tool-selection-quality evaluator","href":"/api-reference/evaluators/execute-agent-tool-selection-quality-evaluator"},{"openapi":"post /v2/evaluators/agent-tool-trajectory/execute","title":"Execute agent-tool-trajectory evaluator","description":"Compare actual tool calls against expected reference tool calls\n\n**Request Body:**\n- `input.executed_tool_calls` (string, required): JSON array of actual tool calls made by the agent\n- `input.expected_tool_calls` (string, required): JSON array of expected/reference tool calls\n- `config.threshold` (float, optional): Score threshold for pass/fail determination (default: 0.5)\n- `config.mismatch_sensitive` (bool, optional): Whether tool calls must match exactly (default: false)\n- `config.order_sensitive` (bool, optional): Whether order of tool calls matters (default: false)\n- `config.input_params_sensitive` (bool, optional): Whether to compare input parameters (default: true)","href":"/api-reference/evaluators/execute-agent-tool-trajectory-evaluator"},{"openapi":"post /v2/evaluators/answer-completeness/execute","title":"Execute answer-completeness evaluator","href":"/api-reference/evaluators/execute-answer-completeness-evaluator"},{"openapi":"post /v2/evaluators/answer-correctness/execute","title":"Execute answer-correctness evaluator","href":"/api-reference/evaluators/execute-answer-correctness-evaluator"},{"openapi":"post /v2/evaluators/answer-relevancy/execute","title":"Execute answer-relevancy evaluator","href":"/api-reference/evaluators/execute-answer-relevancy-evaluator"},{"openapi":"post /v2/evaluators/char-count/execute","title":"Execute char-count evaluator","href":"/api-reference/evaluators/execute-char-count-evaluator"},{"openapi":"post /v2/evaluators/char-count-ratio/execute","title":"Execute char-count-ratio evaluator","href":"/api-reference/evaluators/execute-char-count-ratio-evaluator"},{"openapi":"post /v2/evaluators/context-relevance/execute","title":"Execute context-relevance evaluator","href":"/api-reference/evaluators/execute-context-relevance-evaluator"},{"openapi":"post /v2/evaluators/conversation-quality/execute","title":"Execute conversation-quality evaluator","href":"/api-reference/evaluators/execute-conversation-quality-evaluator"},{"openapi":"post /v2/evaluators/faithfulness/execute","title":"Execute faithfulness evaluator","href":"/api-reference/evaluators/execute-faithfulness-evaluator"},{"openapi":"post /v2/evaluators/html-comparison/execute","title":"Execute html-comparison evaluator","href":"/api-reference/evaluators/execute-html-comparison-evaluator"},{"openapi":"post /v2/evaluators/instruction-adherence/execute","title":"Execute instruction-adherence evaluator","href":"/api-reference/evaluators/execute-instruction-adherence-evaluator"},{"openapi":"post /v2/evaluators/intent-change/execute","title":"Execute intent-change evaluator","href":"/api-reference/evaluators/execute-intent-change-evaluator"},{"openapi":"post /v2/evaluators/json-validator/execute","title":"Execute json-validator evaluator","href":"/api-reference/evaluators/execute-json-validator-evaluator"},{"openapi":"post /v2/evaluators/perplexity/execute","title":"Execute perplexity evaluator","href":"/api-reference/evaluators/execute-perplexity-evaluator"},{"openapi":"post /v2/evaluators/pii-detector/execute","title":"Execute pii-detector evaluator","href":"/api-reference/evaluators/execute-pii-detector-evaluator"},{"openapi":"post /v2/evaluators/placeholder-regex/execute","title":"Execute placeholder-regex evaluator","href":"/api-reference/evaluators/execute-placeholder-regex-evaluator"},{"openapi":"post /v2/evaluators/profanity-detector/execute","title":"Execute profanity-detector evaluator","href":"/api-reference/evaluators/execute-profanity-detector-evaluator"},{"openapi":"post /v2/evaluators/prompt-injection/execute","title":"Execute prompt-injection evaluator","href":"/api-reference/evaluators/execute-prompt-injection-evaluator"},{"openapi":"post /v2/evaluators/prompt-perplexity/execute","title":"Execute prompt-perplexity evaluator","href":"/api-reference/evaluators/execute-prompt-perplexity-evaluator"},{"openapi":"post /v2/evaluators/regex-validator/execute","title":"Execute regex-validator evaluator","href":"/api-reference/evaluators/execute-regex-validator-evaluator"},{"openapi":"post /v2/evaluators/secrets-detector/execute","title":"Execute secrets-detector evaluator","href":"/api-reference/evaluators/execute-secrets-detector-evaluator"},{"openapi":"post /v2/evaluators/semantic-similarity/execute","title":"Execute semantic-similarity evaluator","href":"/api-reference/evaluators/execute-semantic-similarity-evaluator"},{"openapi":"post /v2/evaluators/sexism-detector/execute","title":"Execute sexism-detector evaluator","href":"/api-reference/evaluators/execute-sexism-detector-evaluator"},{"openapi":"post /v2/evaluators/sql-validator/execute","title":"Execute sql-validator evaluator","href":"/api-reference/evaluators/execute-sql-validator-evaluator"},{"openapi":"post /v2/evaluators/tone-detection/execute","title":"Execute tone-detection evaluator","href":"/api-reference/evaluators/execute-tone-detection-evaluator"},{"openapi":"post /v2/evaluators/topic-adherence/execute","title":"Execute topic-adherence evaluator","href":"/api-reference/evaluators/execute-topic-adherence-evaluator"},{"openapi":"post /v2/evaluators/toxicity-detector/execute","title":"Execute toxicity-detector evaluator","href":"/api-reference/evaluators/execute-toxicity-detector-evaluator"},{"openapi":"post /v2/evaluators/uncertainty-detector/execute","title":"Execute uncertainty-detector evaluator","href":"/api-reference/evaluators/execute-uncertainty-detector-evaluator"},{"openapi":"post /v2/evaluators/word-count/execute","title":"Execute word-count evaluator","href":"/api-reference/evaluators/execute-word-count-evaluator"},{"openapi":"post /v2/evaluators/word-count-ratio/execute","title":"Execute word-count-ratio evaluator","href":"/api-reference/evaluators/execute-word-count-ratio-evaluator"}]},{"group":"Metrics","pages":[{"openapi":"get /v2/metrics_hwm","title":"Get metrics high water mark","href":"/api-reference/metrics/get-metrics-high-water-mark"},{"openapi":"post /v2/metrics","title":"Get metrics with filtering and grouping","href":"/api-reference/metrics/get-metrics-with-filtering-and-grouping"}]},{"group":"Auto-monitor-setups","pages":[{"title":"Create an Auto Monitor Setup","api":"POST /v2/auto-monitor-setups","href":"/api-reference/auto-monitor-setups/create-an-auto-monitor-setup"},{"title":"Bulk Upsert Auto Monitor Setups","api":"POST /v2/auto-monitor-setups/bulk","href":"/api-reference/auto-monitor-setups/bulk-upsert-auto-monitor-setups"},{"openapi":"delete /v2/auto-monitor-setups/{external_id}","title":"Delete an auto monitor setup by external ID","href":"/api-reference/auto-monitor-setups/delete-an-auto-monitor-setup-by-external-id"},{"openapi":"get /v2/auto-monitor-setups/{external_id}","title":"Get an auto monitor setup by external ID","href":"/api-reference/auto-monitor-setups/get-an-auto-monitor-setup-by-external-id"},{"openapi":"get /v2/auto-monitor-setups","title":"List auto monitor setups","href":"/api-reference/auto-monitor-setups/list-auto-monitor-setups"},{"openapi":"put /v2/auto-monitor-setups/{external_id}","title":"Update an auto monitor setup by external ID","href":"/api-reference/auto-monitor-setups/update-an-auto-monitor-setup-by-external-id"}]}]},{"anchor":"Community","href":"https://traceloop.com/slack","icon":"slack"},{"anchor":"GitHub","href":"https://github.com/traceloop","icon":"github"}]},"title":"Execute agent-tool-selection-quality evaluator - traceloop","buildId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","deploymentId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-D2GYGXhJ.js","utils-BFd71lo2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-i162M7Za.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-oUw0la6W.js","snippetPresets-DtIWL37f.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BCMBbEQM.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DC4RgS91.js","shallow-CgVeLRFv.js","getApiPlaygroundDisplay-D5biMY5x.js","CodeSnippet-BFsbT-Fu.js","CodeSnippets-zLLOIece.js","Page-Ddn8iQDL.js","getPastedJson-BrHW4jRt.js","icon-CkMCp-Tk.js","MethodPill-CCcSM-Ep.js","DuplicateIcon-4tBrFI-V.js","createIcon-YbZxtfvX.js","DynamicMarkdown-BQC1aHST.js","SectionHeading-Dyh8yRs0.js","axios-vUo_bRtp.js","Markdown-DnRxVfNy.js","clsx-BHwt7gjg.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI1QhstW.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ctpizp2W.js"]}