Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando un cuadro de herramientas contiene muchas herramientas, pasar todas las definiciones de herramientas al modelo en cada turno crea tres problemas compuestos: los costos de token crecen con cada herramienta agregada al contexto, la ventana de contexto rellena con definiciones que la tarea actual no necesita y el modelo elige las herramientas incorrectas de una lista superpoblada. La búsqueda de herramientas resuelve este problema reemplazando la lista de herramientas completa con dos meta-herramientas centradas, por lo que el costo permanece plano independientemente del tamaño del cuadro de herramientas.
Al habilitar la búsqueda de herramientas, el modelo obtiene dos metaherramientas integradas: tool_search, a la que llama con una descripción en lenguaje natural de la funcionalidad que necesita, y call_tool, que usa para invocar cualquier herramienta descubierta por su nombre. Foundry evalúa las consultas tool_search con respecto al conjunto completo de herramientas del catálogo y devuelve únicamente las que coinciden, por lo que el contexto activo se mantiene centrado y relevante.
Para obtener información sobre la detección con ámbito de solicitud de definiciones de herramientas diferidas, consulte Uso de la búsqueda de herramientas con la API de respuestas de Azure OpenAI.
Use la búsqueda de herramientas cuando:
- Tu conjunto de herramientas tiene más de 10–15 herramientas y quieres evitar la sobrecarga de contexto.
- Las diferentes tareas del agente necesitan diferentes subconjuntos de herramientas y desea que el modelo elija el subconjunto correcto dinámicamente.
Prerequisites
- Un proyecto activo de Microsoft Foundry.
- Un cuadro de herramientas existente o nuevo con al menos una herramienta. Consulte Mantener la caja de herramientas basada en intenciones en Foundry.
- RBAC: asigne el rol Usuario de Foundry en el proyecto de Foundry a cada identidad pertinente (desarrollador, la identidad administrada del agente y usuarios finales en flujos de OAuth).
- Foundry Toolkit: Instale Visual Studio Code y Foundry Toolkit para Visual Studio Code.
Funcionamiento de la búsqueda de herramientas
Cuando se incluye {"type": "toolbox_search"} en un cuadro de herramientas, la respuesta inicial tools/list oculta todas las herramientas del cuadro de herramientas. En su lugar, Foundry agrega dos meta-herramientas:
-
tool_search: el modelo llama a esta herramienta con una descripción en lenguaje natural de la funcionalidad que necesita. Foundry evalúa la consulta y devuelve las definiciones de herramientas coincidentes. -
call_tool: el modelo usa esta herramienta para invocar cualquier herramienta detectada por nombre.
El modelo no examina una lista completa de herramientas. Describe la intención, detecta las herramientas adecuadas y las llama.
Mecanismo de búsqueda
La búsqueda de herramientas usa BM25 (Mejor coincidencia 25), un algoritmo de clasificación probabilístico que puntúa herramientas en función de la forma en que sus metadatos coinciden con la consulta. BM25 considera la frecuencia del término, la frecuencia inversa del documento y la normalización de longitud del documento para clasificar los resultados. Cuando el modelo llama a tool_search, Foundry indexa el nombre, la descripción y la información de parámetros de cada herramienta y, a continuación, devuelve las coincidencias de puntuación superior de la consulta.
Parámetros
La tool_search función acepta los parámetros siguientes:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
query |
string | Sí | Descripción en lenguaje natural de la funcionalidad o tarea para la que necesita una herramienta. |
limit |
entero | No | Número máximo de herramientas que se van a devolver. El valor por defecto es 5. El máximo es 10. |
El modelo puede llamar a tool_search tantas veces como sea necesario durante un solo turno. Cada llamada devuelve solo las herramientas que coinciden con la consulta, por lo que el contexto activo permanece centrado en lo que es relevante para el paso actual. Las herramientas devueltas por tool_search permanecen invocables para el resto del turno sin realizar búsquedas repetidas.
Note
La toolbox_search entrada es una directiva de configuración que activa la búsqueda de herramientas. No aparece en el propio tools/list y no cuenta para el límite de herramientas sin nombre por tipo.
Habilitación de la búsqueda de herramientas
Añada {"type": "toolbox_search"} a la lista de herramientas de su versión de la caja de herramientas. Todas las demás herramientas del cuadro de herramientas están disponibles a través de la búsqueda de herramientas: la lista de herramientas inicial que ve el modelo no las expone.
Use Foundry Toolkit para Visual Studio Code para habilitar la búsqueda de herramientas al crear o editar un cuadro de herramientas. La casilla Búsqueda de herramientas agrega la entrada de configuración toolbox_search a la versión de la caja de herramientas.
- Seleccione Foundry Toolkit en la barra de actividades.
- En Mis recursos, expanda El nombre> del proyectoHerramientas.
- Seleccione el icono + Agregar cuadro de herramientas .
- En la pestaña Crear un cuadro de herramientas personalizado , escriba el nombre y la descripción del cuadro de herramientas y agregue las herramientas que desee.
- Seleccione Búsqueda de herramientas.
- Seleccione Publicar.
Al publicar un nuevo cuadro de herramientas, se genera automáticamente su primera versión. Esa versión se convierte automáticamente en la versión predeterminada. Para consultar el flujo de trabajo completo de creación de la caja de herramientas, consulte Organizar una caja de herramientas basada en intenciones en Foundry.
import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import MCPToolboxTool, ToolSearchToolboxTool
project = AIProjectClient(
endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
# ToolSearchToolboxTool() enables tool search — other tools in the toolbox are discovered on
# demand through tool_search instead of being listed up front. Add as many MCP servers as you need;
# tool search keeps the agent's initial tool surface small regardless of toolbox size.
inner_mcp_tool = MCPToolboxTool(
server_label="github",
server_url="https://api.githubcopilot.com/mcp",
require_approval="never",
project_connection_id="github-mcp-conn",
)
toolbox_version = project.toolboxes.create_version(
name="my-toolbox",
description="Large toolbox with tool search enabled",
tools=[inner_mcp_tool, ToolSearchToolboxTool()],
)
print(f"Created toolbox `{toolbox_version.name}` (version {toolbox_version.version})")
Para anclar herramientas críticas o agregar palabras clave de búsqueda para herramientas específicas, use tool_configs en la entrada de herramienta individual. Consulte Detección de herramientas de ajuste fino.
POST {project_endpoint}/toolboxes/my-toolbox/versions?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json
{
"description": "Large toolbox with tool search enabled",
"tools": [
{
"type": "toolbox_search"
},
{
"type": "work_iq_preview",
"project_connection_id": "{workiq-connection-id}",
"tool_configs": {
"calendar_events": {
"pin": true,
"additional_search_text": "meetings appointments schedule calendar invites"
}
}
},
{
"type": "mcp",
"server_label": "github",
"server_url": "https://api.githubcopilot.com/mcp",
"require_approval": "never",
"project_connection_id": "github-mcp-conn"
}
]
}
Note
Use el ámbito del token https://ai.azure.com/.default al obtener el token de portador.
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;
var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT");
DefaultAzureCredential credential = new();
AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: credential);
AgentToolboxes toolboxClient = projectClient.AgentAdministrationClient.GetAgentToolboxes();
// ToolSearchToolboxTool enables tool search — other tools are discovered on demand via tool_search
MCPToolboxTool mcpTool = new(serverLabel: "github")
{
ServerUri = new Uri("https://api.githubcopilot.com/mcp"),
ToolCallApprovalPolicy = new McpToolCallApprovalPolicy(
GlobalMcpToolCallApprovalPolicy.NeverRequireApproval),
};
ToolSearchToolboxTool searchTool = new()
{
Name = "ToolBoxSearch",
Description = "Search for tools by capability"
};
ToolboxVersion toolboxVersion = toolboxClient.CreateVersion(
name: "my-toolbox",
tools: [mcpTool, searchTool],
description: "Large toolbox with tool search enabled");
Console.WriteLine($"Created toolbox `{toolboxVersion.Name}` (version {toolboxVersion.Version})");
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
const projectEndpoint = process.env["FOUNDRY_PROJECT_ENDPOINT"];
const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
// { type: "toolbox_search" } enables tool search — other tools in the toolbox are
// discovered on demand through tool_search instead of being listed up front. Add as many MCP
// servers as you need; tool search keeps the agent's initial tool surface small regardless of size.
const toolboxVersion = await project.toolboxes.createVersion(
"my-toolbox",
[
{
type: "mcp",
server_label: "github",
server_url: "https://api.githubcopilot.com/mcp",
require_approval: "never",
project_connection_id: "github-mcp-conn",
},
{ type: "toolbox_search" },
],
{ description: "Large toolbox with tool search enabled" },
);
console.log(`Created toolbox \`${toolboxVersion.name}\` (version ${toolboxVersion.version})`);
Comprobación de que la búsqueda de herramientas está activa
Utiliza el punto de conexión específico de la versión para confirmar que tool_search, call_tool y cualquier herramienta anclada aparecen en tools/list. Las herramientas normales de la caja de herramientas que no estén ancladas deben permanecer ocultas en la lista inicial.
Foundry Toolkit crea y publica el cuadro de herramientas. Para comprobar la respuesta del punto de conexión de MCP para una versión específica del cuadro de herramientas, seleccione la pestaña Python, .NET, JavaScript o API REST de esta sección.
Instale el SDK de cliente MCP si aún no lo ha hecho:
pip install mcp
import asyncio
from azure.identity import DefaultAzureCredential
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
url = "https://<account>.services.ai.azure.com/api/projects/<proj>/toolboxes/<name>/versions/<version>/mcp?api-version=v1"
expected_pinned_tools = {"calendar_events"} # Match the tools configured with pin=True.
token = DefaultAzureCredential().get_token("https://ai.azure.com/.default").token
headers = {
"Authorization": f"Bearer {token}",
}
async def verify_toolbox():
async with streamablehttp_client(url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# List the two meta-tools and any explicitly pinned tools.
tools_result = await session.list_tools()
print(f"Tools found: {len(tools_result.tools)}")
for tool in tools_result.tools:
print(f" - {tool.name}: {(tool.description or '')[:80]}")
names = {tool.name for tool in tools_result.tools}
meta_tools = {"tool_search", "call_tool"}
assert meta_tools <= names, "Tool Search meta-tools are missing -- check toolbox_search config"
assert expected_pinned_tools <= names, "A configured pinned tool is missing"
unexpected_tools = names - meta_tools - expected_pinned_tools
assert not unexpected_tools, f"Unpinned tools are visible: {sorted(unexpected_tools)}"
asyncio.run(verify_toolbox())
Utilice el punto de conexión específico de la versión (/versions/{version}/mcp) para validar antes de promoverla.
1. Inicialice la sesión de MCP:
POST {project_endpoint}/toolboxes/{toolbox_name}/versions/{version}/mcp?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}
2. Enviar la notificación inicializada:
POST {project_endpoint}/toolboxes/{toolbox_name}/versions/{version}/mcp?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json
{"jsonrpc":"2.0","method":"notifications/initialized"}
3. Enumerar las herramientas disponibles:
POST {project_endpoint}/toolboxes/{toolbox_name}/versions/{version}/mcp?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
En result.tools, confirme que tool_search, call_tooly todas las herramientas configuradas con pin: true están presentes. Todas las herramientas normales de la caja de herramientas que no estén ancladas deben estar ausentes de la lista inicial.
Use cualquier cliente de .NET compatible con MCP. Obtenga un token con el ámbito https://ai.azure.com/.default y realice la llamada tools/list al punto de conexión MCP específico de la versión. Vea la pestaña REST API para consultar el formato de la solicitud.
Instale el SDK de cliente MCP si aún no lo ha hecho:
npm install @modelcontextprotocol/sdk @azure/identity
import { DefaultAzureCredential } from "@azure/identity";
import { Client } from "@modelcontextprotocol/sdk/client";
import {
StreamableHTTPClientTransport,
} from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const url =
"https://<account>.services.ai.azure.com/api/projects/<proj>" +
"/toolboxes/<name>/versions/<version>/mcp?api-version=v1";
// Match the tools configured with pin: true.
const expectedPinnedTools = new Set(["calendar_events"]);
async function verifyToolbox() {
const credential = new DefaultAzureCredential();
const tokenResponse = await credential.getToken(
"https://ai.azure.com/.default",
);
if (!tokenResponse) {
throw new Error("Failed to acquire an access token.");
}
// Build the bearer header from the acquired token. Using tokenResponse.token
// here reveals no secret in source -- it's a variable reference resolved at
// runtime, not a hardcoded value.
const authorizationHeader = "Bearer " + tokenResponse.token;
const transport = new StreamableHTTPClientTransport(new URL(url), {
requestInit: {
headers: { Authorization: authorizationHeader },
},
});
const client = new Client({ name: "tool-search-verifier", version: "1.0.0" });
await client.connect(transport);
try {
// List the two meta-tools and any explicitly pinned tools.
const toolsResult = await client.listTools();
console.log(`Tools found: ${toolsResult.tools.length}`);
for (const tool of toolsResult.tools) {
console.log(` - ${tool.name}: ${(tool.description ?? "").slice(0, 80)}`);
}
const names = new Set(toolsResult.tools.map((tool) => tool.name));
const metaTools = ["tool_search", "call_tool"];
for (const metaTool of metaTools) {
if (!names.has(metaTool)) {
throw new Error(
`Tool Search meta-tool "${metaTool}" is missing -- check toolbox_search config`,
);
}
}
for (const pinnedTool of expectedPinnedTools) {
if (!names.has(pinnedTool)) {
throw new Error(`A configured pinned tool is missing: ${pinnedTool}`);
}
}
const unexpectedTools = [...names].filter(
(name) => !metaTools.includes(name) && !expectedPinnedTools.has(name),
);
if (unexpectedTools.length > 0) {
throw new Error(`Unpinned tools are visible: ${unexpectedTools.join(", ")}`);
}
} finally {
await client.close();
}
}
verifyToolbox().catch((err) => {
console.error("The verifier encountered an error:", err);
});
Ajustar con precisión la detección de herramientas
La búsqueda de herramientas funciona sin configuración adicional. Para patrones de uso predecibles, ajuste cómo se exponen e indexan las herramientas específicas.
Foundry Toolkit admite la habilitación de la búsqueda de herramientas. Para configurar herramientas ancladas o palabras clave de búsqueda adicionales, seleccione la pestaña Python, .NET, JavaScript o API REST de esta sección.
Anclar herramientas críticas
Use pin para hacer que una herramienta específica siempre aparezca junto tools/list con tool_search y call_tool. Las herramientas ancladas se pueden invocar de inmediato sin necesidad de realizar una búsqueda de ida y vuelta. Para anclar todas las herramientas de un servidor MCP o una entrada de herramienta integrada, use "*" como clave.
tools=[
{"type": "toolbox_search"},
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"execute_query": {"pin": True}, # always visible — no search needed
},
},
]
{
"tools": [
{ "type": "toolbox_search" },
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"execute_query": { "pin": true }
}
}
]
}
En el SDK de .NET, adjunte tool_configs a la entrada de la herramienta MCP al crear la versión del cuadro de herramientas. La forma de configuración es idéntica al JSON que se muestra en la pestaña API REST .
En JavaScript, incluya tool_configs en el objeto de herramienta MCP pasado a project.toolboxes.createVersion:
const tools = [
{ type: "toolbox_search" },
{
type: "mcp",
server_label: "analytics",
server_url: "https://db-mcp.internal/sse",
tool_configs: {
execute_query: { pin: true }, // always visible — no search needed
},
},
];
Para anclar todas las herramientas de una entrada, use "*" como clave:
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"*": {"pin": True}, # every tool in this server is always visible
},
}
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"*": { "pin": true }
}
}
Use la misma clave comodín "*" dentro de tool_configs en la entrada de la herramienta MCP de .NET para anclar todas las herramientas de un servidor MCP. Consulte la pestaña API de REST para la forma JSON.
Usa la misma "*" clave comodín dentro de tool_configs en el objeto de herramienta MCP de JavaScript para anclar todas las herramientas de un servidor MCP:
{
type: "mcp",
server_label: "analytics",
server_url: "https://db-mcp.internal/sse",
tool_configs: {
"*": { pin: true }, // every tool in this server is always visible
},
}
Agregar palabras clave de búsqueda
Si la descripción de MCP de una herramienta no coincide con el vocabulario que usan los usuarios de forma natural, agregue palabras clave mediante additional_search_text. El texto adicional solo se usa para la clasificación de búsqueda; nunca se expone al modelo en el esquema de herramientas.
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"execute_query": {
"pin": True,
"additional_search_text": "SQL database analytics reporting dashboard queries",
},
"list_tables": {
"additional_search_text": "schema columns metadata table structure discover",
},
},
}
{
"type": "mcp",
"server_label": "analytics",
"server_url": "https://db-mcp.internal/sse",
"tool_configs": {
"execute_query": {
"pin": true,
"additional_search_text": "SQL database analytics reporting dashboard queries"
},
"list_tables": {
"additional_search_text": "schema columns metadata table structure discover"
}
}
}
En el SDK de .NET, establezca additional_search_text (y, opcionalmente, pin) dentro de tool_configs en la entrada de la herramienta MCP. La forma coincide con el JSON que se muestra en la pestaña API rest .
En JavaScript, establezca additional_search_text (y opcionalmente pin) dentro tool_configs del objeto de herramienta MCP pasado a project.toolboxes.createVersion:
{
type: "mcp",
server_label: "analytics",
server_url: "https://db-mcp.internal/sse",
tool_configs: {
execute_query: {
pin: true,
additional_search_text: "SQL database analytics reporting dashboard queries",
},
list_tables: {
additional_search_text: "schema columns metadata table structure discover",
},
},
}
Anclaje automático
Foundry realiza un seguimiento automático de las herramientas que cada usuario llama con más frecuencia y las expone directamente en tools/list, sin ninguna configuración necesaria. Después de un breve periodo de calentamiento, las herramientas de uso frecuente aparecen sin necesidad de una ida y vuelta de búsqueda. El conjunto activo es por usuario y se actualiza a medida que cambian los patrones de uso; Las entradas obsoletas se agotan automáticamente.
El anclaje automático es compatible con la configuración explícita pin y additional_search_text. Ancle las herramientas críticas que conozca por adelantado, agregue palabras clave para herramientas con nombres ambiguos y deje que el anclaje automático controle la cola larga a medida que surjan patrones de uso.
Referencia de configuración
toolbox_search
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type |
"toolbox_search" |
Sí | Activa la búsqueda de herramientas en el cuadro de herramientas. |
Incluya {"type": "toolbox_search"} en la lista de herramientas del cuadro de herramientas para habilitar la búsqueda de herramientas. Todos los demás campos de configuración son opcionales.
tool_configs (por herramienta)
Establezca tool_configs en una entrada de herramienta MCP individual para controlar cómo se comportan las herramientas específicas dentro del contexto de búsqueda. Use un nombre de herramienta exacto como clave para configurar una herramienta específica o "*" para aplicar la configuración a todas las herramientas de esa entrada.
| Campo | Tipo | Descripción |
|---|---|---|
pin |
boolean | Cuando true, la herramienta aparece directamente en tools/list, junto a tool_search y call_tool. El modelo puede llamarlo sin buscar primero. |
additional_search_text |
string | Palabras clave adicionales agregadas a la entrada de índice de búsqueda de la herramienta. Se usa solo para la clasificación en búsquedas; nunca es visible para el modelo en el esquema de la herramienta. |
Consideraciones
- Todas las herramientas del cuadro de herramientas están ocultas de la lista inicial. Cuando
toolbox_searchestá en un cuadro de herramientas, ninguna otra herramienta del cuadro de herramientas aparece entools/list. El modelo solo los detecta a través detool_search. Las herramientas añadidas directamente a un agente fuera de la caja de herramientas no se ven afectadas y permanecen visibles. - Las descripciones de las herramientas determinan la calidad de las coincidencias. Foundry usa nombres y descripciones de herramientas para evaluar las consultas de búsqueda. Es poco probable que se muestre una herramienta sin descripción o con una descripción vaga, incluso en búsquedas relevantes. Escriba descripciones que describan lo que hace la herramienta y los tipos de tareas que controla.
-
tool_searchno cuenta para los límites de herramientas. La plataforma lo inyecta y no consume la ranura «unnamed-tool-per-type». - Se admiten varias búsquedas por turno. El modelo puede llamar a
tool_searchmás de una vez en un solo turno si los distintos pasos necesitan funcionalidades diferentes. - Las herramientas devueltas se conservan para el turno. Una vez que
tool_searchdevuelve una herramienta, el modelo puede invocarla varias veces sin tener que volver a buscarla. - Las herramientas ancladas siempre aparecen en
tools/list. Las herramientas con"pin": Trueentool_configsaparecen junto atool_searchycall_toolen cada turno, independientemente de las consultas de búsqueda. - El anclaje automático muestra automáticamente las herramientas de uso frecuente. Foundry realiza un seguimiento de la frecuencia de llamadas a herramientas por usuario y promueve las herramientas más utilizadas a
tools/listtras un breve periodo de calentamiento. El conjunto frecuente es por usuario y se actualiza a medida que cambian los patrones de uso. - Es posible que se requiera el consentimiento de OAuth. Si alguna herramienta del cuadro de herramientas se conecta a un servidor MCP basado en OAuth, la primera llamada devuelve un
CONSENT_REQUIREDerror (código-32006) con una dirección URL de consentimiento en la respuesta. Abra esa dirección URL en un explorador, complete el flujo de OAuth y vuelva a intentarlo. Las llamadas posteriores se realizan correctamente sin volver a solicitarlas. Consulte Solución de errores del cuadro de herramientas para controlar este error.
procedimientos recomendados
- Agregue una descripción a cada herramienta. La búsqueda de herramientas usa descripciones para hacer coincidir las herramientas con las consultas. Una descripción vaga o faltante provoca un descubrimiento deficiente.
- Use la búsqueda de herramientas para cuadros de herramientas grandes. Esta configuración es más eficaz cuando tiene 10 o más herramientas.
- Usa la búsqueda de herramientas junto con el control de versiones de la caja de herramientas. Pruebe la configuración en un punto de conexión específico de la versión antes de promoverla al valor predeterminado.
- Menciona la búsqueda de herramientas en el prompt del sistema. Guíe el modelo para llamar
tool_searchantes de concluir que una funcionalidad no está disponible. Por ejemplo: "Si necesita una herramienta que no esté en la lista actual, llame atool_searchcon una descripción de lo que necesita antes de responder que no puede ayudar". - Ancle las herramientas que siempre necesita. Utilice
"pin": Trueentool_configspara herramientas invocadas en casi todos los turnos, con el fin de evitar la ida y vuelta de la búsqueda. - Use
additional_search_textcuando las descripciones sean ambiguas. Si el equipo usa un vocabulario diferente a las descripciones de herramientas del servidor MCP, agregue palabras clave para mejorar la precisión de búsqueda sin modificar el servidor.
Troubleshoot
| Síntoma | Causa probable | Corregir |
|---|---|---|
tool_search falta en tools/list |
toolbox_search no estaba incluido en la versión de la caja de herramientas, o bien está conectado a una versión anterior al cambio. |
Agregue {"type": "toolbox_search"} a la lista de herramientas y cree una nueva versión. Confirme que usa el punto de conexión de la versión actualizada. |
tool_search no devuelve ningún resultado para una consulta |
Las herramientas del cuadro de herramientas no tienen ninguna descripción o descripciones no se relacionan con la consulta. | Agregue o mejore las descripciones de las herramientas del cuadro de herramientas. Las descripciones deben explicar lo que hace la herramienta y los tipos de tareas que controla. |
Aparece una herramienta de la caja de herramientas en la vista inicial de tools/list |
La herramienta se agregó directamente al agente en lugar de, o además, a la definición del cuadro de herramientas. | Quite la herramienta de la lista de herramientas directas del agente y confíe en el cuadro de herramientas. Las herramientas agregadas directamente a un agente siempre están visibles, independientemente de la búsqueda de herramientas. |
El modelo nunca llama a tool_search |
El modelo desconoce si tool_search puede obtener herramientas adicionales. |
Añada una instrucción en el prompt del sistema indicándole al modelo que llame a tool_search cuando una capacidad necesaria no esté en su lista actual de herramientas. |
tool_search se invoca, pero la herramienta devuelta no se ejecuta |
La conexión o configuración de la herramienta subyacente no es válida. | Compruebe el project_connection_id y los demás campos de la herramienta devuelta. Pruebe la herramienta directamente a través del endpoint MCP de la toolbox sin tener habilitada la búsqueda de herramientas. |