Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Quando uma caixa de ferramentas contém muitas ferramentas, passar todas as definições das ferramentas para o modelo a cada interação cria três problemas que se agravam entre si: os custos com tokens aumentam a cada ferramenta adicionada ao contexto, a janela de contexto se enche de definições de que a tarefa atual não precisa, e o modelo escolhe as ferramentas erradas em uma lista superlotada. A busca de ferramentas resolve esse problema substituindo a lista completa de ferramentas por duas metaferramentas focadas, de modo que o custo permanece constante, independentemente do tamanho do conjunto de ferramentas.
Quando você habilita a pesquisa de ferramentas, o modelo obtém duas meta-ferramentas internas: tool_search, que ele chama com uma descrição de linguagem natural da funcionalidade necessária e call_tool, que ele usa para invocar qualquer ferramenta descoberta por nome. Foundry avalia as consultas tool_search com base no conjunto completo de ferramentas da caixa de ferramentas e retorna apenas aquelas que correspondem, para que o contexto ativo permaneça focado e relevante.
Para a descoberta, no escopo da solicitação, de definições adiadas de ferramentas, consulte Usar a busca de ferramentas com a API Responses do OpenAI do Azure.
Use a pesquisa de ferramentas quando:
- Sua caixa de ferramentas tem mais de 10–15 ferramentas e você quer evitar a sobrecarga de contexto.
- Diferentes tarefas de agente precisam de subconjuntos diferentes de ferramentas e você deseja que o modelo escolha o subconjunto certo dinamicamente.
Pré-requisitos
- Um projeto ativo do Microsoft Foundry.
- Uma caixa de ferramentas existente ou nova com pelo menos uma ferramenta. Consulte Organizar a caixa de ferramentas baseada em intenções no Foundry.
- RBAC: conceda a função de Usuário do Foundry no projeto Foundry a cada identidade relevante (desenvolvedor, identidade gerenciada do agente e usuários finais em fluxos OAuth).
- Foundry Toolkit: instale Visual Studio Code e Foundry Toolkit for Visual Studio Code.
Como funciona a pesquisa de ferramentas
Quando você inclui {"type": "toolbox_search"} em uma caixa de ferramentas, a resposta inicial tools/list oculta todas as ferramentas na caixa de ferramentas. Em vez disso, a Foundry adiciona duas meta-ferramentas:
-
tool_search— o modelo chama essa ferramenta com uma descrição de linguagem natural da funcionalidade necessária. O Foundry avalia a consulta e retorna as definições de ferramentas correspondentes. -
call_tool— o modelo usa essa ferramenta para invocar qualquer ferramenta descoberta pelo nome.
O modelo não navega em uma lista de ferramentas completa. Ele descreve a intenção, descobre as ferramentas certas e as chama.
Mecanismo de pesquisa
A pesquisa de ferramentas usa BM25 (Melhor Correspondência 25), um algoritmo de classificação probabilística que atribui uma pontuação às ferramentas de acordo com o grau de correspondência entre seus metadados e a consulta. O BM25 considera a frequência de termos, a frequência inversa do documento e a normalização do comprimento do documento para classificar os resultados. Quando o modelo chama tool_search, o Foundry indexa as informações de nome, descrição e parâmetro de cada ferramenta e retorna as correspondências de pontuação superior para a consulta.
Parameters
A tool_search função aceita os seguintes parâmetros:
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
query |
cadeia | Sim | Descrição em linguagem natural da funcionalidade ou tarefa para a qual você precisa de uma ferramenta. |
limit |
inteiro | No | Número máximo de ferramentas a serem devolvidas. O padrão é 5. O máximo é 10. |
O modelo pode chamar tool_search quantas vezes forem necessárias durante uma única curva. Cada chamada retorna apenas as ferramentas que correspondem à consulta, portanto, o contexto ativo permanece focado no que é relevante para a etapa atual. As ferramentas devolvidas por tool_search podem continuar sendo chamadas pelo restante da interação sem a necessidade de pesquisar novamente.
Note
A toolbox_search entrada é uma diretiva de configuração que ativa a pesquisa de ferramentas. Não aparece no próprio tools/list e não conta para o limite de ferramentas não nomeadas por tipo.
Habilitar a pesquisa de ferramentas
Adicione {"type": "toolbox_search"} à lista de ferramentas da sua versão da caixa de ferramentas. Todas as outras ferramentas na caixa de ferramentas estão disponíveis por meio da pesquisa de ferramentas – a lista de ferramentas inicial que o modelo vê não as expõe.
Use o Foundry Toolkit para Visual Studio Code para habilitar a pesquisa de ferramentas ao criar ou editar uma caixa de ferramentas. A caixa de seleção Pesquisa de ferramentas adiciona a entrada de configuração toolbox_search à versão da caixa de ferramentas.
- Selecione o Foundry Toolkit na Barra de Atividades.
- Em Meus Recursos, expanda o nome do projeto>Ferramentas.
- Selecione o ícone + Adicionar Caixa de Ferramentas .
- Na guia Criar uma Caixa de Ferramentas Personalizada , insira o nome e a descrição da caixa de ferramentas e adicione as ferramentas desejadas.
- Selecione Busca de ferramentas.
- Selecione Publicar.
A publicação de uma nova caixa de ferramentas cria sua primeira versão. Essa versão se torna a versão padrão automaticamente. Para ver o fluxo de trabalho completo de criação da caixa de ferramentas, consulte Organizar a caixa de ferramentas baseada em intenções no 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 fixar ferramentas críticas ou adicionar palavras-chave de pesquisa para ferramentas específicas, use tool_configs na entrada de ferramenta individual. Consulte Descoberta de ferramentas 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 o escopo do token https://ai.azure.com/.default ao obter o 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})`);
Verificar se a pesquisa de ferramentas está ativa
Use o ponto de extremidade específico da versão para confirmar que tool_search, call_tool e quaisquer ferramentas fixadas aparecem em tools/list. As ferramentas comuns não fixadas da caixa de ferramentas devem permanecer ocultas na listagem inicial.
O Foundry Toolkit cria e publica a caixa de ferramentas. Para verificar a resposta do endpoint MCP de uma versão específica do kit de ferramentas, selecione a guia Python, .NET, JavaScript ou REST API nesta seção.
Instale o SDK do cliente MCP se você ainda não tiver:
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())
Use o endpoint específico da versão (/versions/{version}/mcp) para validar antes de promover.
1. Inicializar a sessão 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 a notificação 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. Listar as ferramentas disponíveis:
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":{}}
Em result.tools, confirme que tool_search, call_toole todas as ferramentas configuradas com pin: true estão presentes. Todas as ferramentas comuns não fixadas da barra de ferramentas não devem aparecer na lista inicial.
Use qualquer cliente .NET compatível com MCP. Adquira um token com escopo https://ai.azure.com/.default e chame tools/list contra o ponto de extremidade MCP específico da versão. Consulte a aba API REST para ver o formato da solicitação.
Instale o SDK do cliente MCP se você ainda não tiver:
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);
});
Descoberta de ferramentas de ajuste fino
A pesquisa de ferramentas funciona sem configuração extra. Para padrões de uso previsíveis, ajuste como ferramentas específicas são exibidas e indexadas.
O Foundry Toolkit dá suporte à habilitação da pesquisa de ferramentas. Para configurar ferramentas fixas ou palavras-chave de pesquisa extras, selecione a guia Python, .NET, JavaScript ou API REST nesta seção.
Fixar ferramentas críticas
Use pin para fazer com que uma ferramenta específica sempre apareça tools/list ao lado tool_search e call_tool. As ferramentas fixadas podem ser chamadas imediatamente, sem precisar fazer uma busca de ida e volta. Para fixar todas as ferramentas em um servidor MCP ou em uma entrada de ferramenta integrada, use "*" como chave.
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 }
}
}
]
}
No SDK do .NET, anexe tool_configs à entrada da ferramenta MCP ao construir a versão da caixa de ferramentas. A forma de configuração é idêntica ao JSON mostrado na guia API REST .
No JavaScript, inclua tool_configs no objeto de ferramenta MCP passado para 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 fixar todas as ferramentas em uma entrada, use "*" como a chave:
{
"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 a mesma chave curinga "*" dentro de tool_configs na entrada da ferramenta MCP .NET para fixar todas as ferramentas de um servidor MCP. Consulte a aba REST API para ver a estrutura JSON.
Use a mesma chave curinga "*" dentro de tool_configs no objeto da ferramenta MCP para JavaScript para fixar todas as ferramentas de um 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
},
}
Adicionar palavras-chave de pesquisa
Se a descrição do MCP de uma ferramenta não corresponder ao vocabulário que os usuários usam naturalmente, adicione palavras-chave usando additional_search_text. O texto extra é usado apenas para a classificação de pesquisa – ele nunca é exposto ao modelo no esquema de ferramentas.
{
"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"
}
}
}
No SDK do .NET, defina additional_search_text (e, opcionalmente, pin) dentro tool_configs na entrada da ferramenta MCP. A forma corresponde ao JSON mostrado na guia API REST .
No JavaScript, defina additional_search_text (e opcionalmente pin) dentro tool_configs do objeto de ferramenta MCP passado para 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",
},
},
}
Fixação automática
A Foundry controla automaticamente quais ferramentas cada usuário chama com mais frequência e as apresenta diretamente em tools/list— nenhuma configuração necessária. Após um breve período inicial, as ferramentas usadas com mais frequência aparecem sem a necessidade de fazer uma nova busca. O conjunto frequente é específico de cada usuário e é atualizado à medida que os padrões de uso mudam; as entradas obsoletas são removidas automaticamente com o tempo.
A fixação automática se combina com a configuração explícita de pin e additional_search_text. Fixe de antemão as ferramentas críticas que você já conhece, adicione palavras-chave para ferramentas com nomes ambíguos e deixe que a fixação automática cuide dos demais casos conforme os padrões de uso forem surgindo.
Referência de configuração
toolbox_search
| Campo | Tipo | Obrigatório | Description |
|---|---|---|---|
type |
"toolbox_search" |
Sim | Ativa a busca de ferramentas na caixa de ferramentas. |
Inclua {"type": "toolbox_search"} na lista de ferramentas da caixa de ferramentas para habilitar a pesquisa de ferramentas. Todos os outros campos de configuração são opcionais.
tool_configs (por ferramenta)
Defina tool_configs em uma entrada de ferramenta MCP individual para controlar como as ferramentas específicas se comportam dentro do contexto de pesquisa. Use um nome de ferramenta exato como a chave para configurar uma ferramenta específica ou "*" aplicar a configuração a todas as ferramentas nessa entrada.
| Campo | Tipo | Description |
|---|---|---|
pin |
boolean | Quando true, a ferramenta aparece diretamente em tools/list, ao lado de tool_search e call_tool. O modelo pode invocá-lo sem buscar primeiro. |
additional_search_text |
cadeia | Palavras-chave extras adicionadas à entrada de índice de pesquisa da ferramenta. Usado somente para classificação de pesquisa — nunca visível para o modelo no esquema de ferramentas. |
Considerações
- Todas as ferramentas da caixa de ferramentas estão ocultas da listagem inicial. Quando
toolbox_searchestá em uma caixa de ferramentas, nenhuma outra ferramenta da caixa de ferramentas aparece emtools/list. O modelo os descobre apenas por meio detool_search. As ferramentas adicionadas diretamente a um agente fora da caixa de ferramentas não são afetadas e permanecem visíveis. - As descrições de ferramentas determinam a qualidade da correspondência. A Foundry usa nomes de ferramentas e descrições para avaliar consultas de pesquisa. É improvável que uma ferramenta sem descrição, ou com uma descrição vaga, seja retornada mesmo em consultas relevantes. Escreva descrições que descrevem o que a ferramenta faz e os tipos de tarefas que ela manipula.
-
tool_searchnão conta em relação aos limites de ferramentas. A plataforma o injeta, e ele não consome o slot de ferramenta sem nome por tipo. - Há suporte para várias pesquisas por turno. O modelo pode chamar
tool_searchmais de uma vez em um único turno se diferentes etapas precisarem de recursos diferentes. - As ferramentas retornadas permanecem disponíveis durante o turno. Depois que uma ferramenta é retornada por
tool_search, o modelo pode chamá-la várias vezes sem fazer a busca novamente. - As ferramentas fixadas sempre aparecem em
tools/list. As ferramentas com"pin": Trueemtool_configsaparecem ao lado detool_searchecall_toola cada turno, independentemente das consultas de busca. - As superfícies de fixação automática frequentemente usavam as ferramentas automaticamente. O Foundry rastreia a frequência de chamadas de ferramentas por usuário e promove as ferramentas mais utilizadas a
tools/listapós um breve período de aquecimento. O conjunto frequente é individual para cada usuário e se atualiza à medida que os padrões de uso mudam. - O consentimento de OAuth pode ser necessário. Se qualquer ferramenta na caixa de ferramentas se conectar a um servidor MCP baseado em OAuth, a primeira chamada retornará um
CONSENT_REQUIREDerro (código-32006) com uma URL de consentimento na resposta. Abra essa URL em um navegador, conclua o fluxo OAuth e tente novamente. As chamadas subsequentes são bem-sucedidas sem precisar de nova solicitação. Consulte Solucionar problemas de erros de caixa de ferramentas para lidar com esse erro.
Práticas recomendadas
- Adicione uma descrição a cada ferramenta. A pesquisa de ferramentas usa descrições para corresponder ferramentas a consultas. Uma descrição ausente ou vaga causa uma descoberta ruim.
- Use a ferramenta de pesquisa para as caixas de ferramentas grandes. Essa configuração é mais eficaz quando você tem 10 ou mais ferramentas.
- Use a busca de ferramentas junto com o versionamento do kit de ferramentas. Teste sua configuração em um endpoint específico da versão antes de torná-la padrão.
- Mencione a busca de ferramentas no prompt do sistema. Oriente o modelo a chamar
tool_searchantes de concluir que uma capacidade não está disponível. Por exemplo: "Se você precisar de uma ferramenta que não esteja em sua lista atual, chametool_searchcom uma descrição do que você precisa antes de responder que você não pode ajudar." - Fixar as ferramentas sempre necessárias. Use
"pin": Trueemtool_configspara as ferramentas chamadas em quase todas as interações, para evitar a pesquisa de ida e volta. - Use
additional_search_textquando as descrições forem ambíguas. Se sua equipe usar um vocabulário diferente das descrições da ferramenta do servidor MCP, adicione palavras-chave para melhorar a precisão da pesquisa sem modificar o servidor.
Troubleshoot
| Sintoma | Causa provável | Corrigir |
|---|---|---|
tool_search está ausente de tools/list |
toolbox_search não foi incluído na versão da caixa de ferramentas ou você está conectado a uma versão que antecede a alteração. |
Adicione {"type": "toolbox_search"} à lista de ferramentas e crie uma nova versão. Confirme se você está usando o endpoint da versão atualizada. |
tool_search não retorna nenhum resultado para uma consulta |
As ferramentas na caixa de ferramentas não têm nenhuma descrição ou descrições não relacionadas à consulta. | Adicione ou melhore as descrições nas ferramentas na caixa de ferramentas. As descrições devem explicar o que a ferramenta faz e os tipos de tarefas que ela manipula. |
Uma ferramenta da caixa de ferramentas aparece inicialmente em tools/list |
A ferramenta foi adicionada diretamente ao agente, em vez de – ou adicionalmente a – à definição do conjunto de ferramentas. | Remova a ferramenta da lista de ferramentas diretas do agente e confie na caixa de ferramentas. As ferramentas adicionadas diretamente a um agente são sempre visíveis, independentemente da pesquisa de ferramentas. |
O modelo nunca chama tool_search |
O modelo não sabe que tool_search pode recuperar ferramentas adicionais. |
Adicione uma instrução no prompt do sistema informando ao modelo para chamar tool_search quando uma funcionalidade necessária não estiver em sua lista de ferramentas atual. |
tool_search é chamado, mas a ferramenta retornada falha ao ser executada |
A conexão ou configuração da ferramenta subjacente é inválida. | Verifique o project_connection_id e outros campos na ferramenta retornada. Teste a ferramenta diretamente por meio do endpoint MCP da toolbox, com a busca de ferramentas desabilitada. |