Skip to main content

Carga de herramientas a petición con búsqueda de herramientas

La búsqueda de herramientas mantiene pequeño el contexto, ya que permite CLI de Copilot cargar herramientas externas solo cuando una tarea las necesita.

Introducción

La conexión de servidores MCP y otras herramientas externas a CLI de Copilot es eficaz, pero cada herramienta que agregue conlleva un costo: su definición ocupa espacio en la ventana de contexto del modelo y un largo menú de herramientas dificulta que el agente elija el correcto. La carga de herramientas a petición (o "búsqueda de herramientas") impide que la ventana de contexto esté desordenada por definiciones para las herramientas que el agente no usa. El agente comienza con solo sus herramientas integradas y una manera de buscar el resto y, a continuación, carga herramientas adicionales solo cuando se necesitan para completar una tarea.

La búsqueda de herramientas aborda dos problemas asociados a un número creciente de herramientas:

  • Contexto desperdiciado. Algunas docenas de definiciones de herramientas pueden consumir entre 10 000 y 20 000 tokens antes de que el agente haya hecho nada.
  • Precisión de selección de herramientas degradada. Cuando hay varias docenas de herramientas a la vista al mismo tiempo, es más probable que el modelo elija la herramienta equivocada.

¿Qué ocurre durante una sesión?

Cada vez que introduces un prompt, la CLI comprueba el inventario actual de herramientas y decide si usar la búsqueda de herramientas. Por debajo de aproximadamente 30 herramientas, el ahorro que obtiene de la búsqueda de herramientas no vale la pena, por lo que CLI de Copilot omite la búsqueda de herramientas por completo y solo carga todo.

Inicialmente, cuando se usa la búsqueda de herramientas, solo se cargan las herramientas integradas de la CLI. Todo lo demás —las herramientas MCP y otras herramientas externas— queda bloqueado. El agente puede ver que estas herramientas existen y aproximadamente para lo que son, pero sus definiciones completas aún no se cargan.

Cuando el agente alcanza un paso que necesita una herramienta que no se ha cargado, ejecuta una búsqueda rápida sobre las herramientas disponibles y extrae las coincidencias más cercanas en el contexto. A continuación, esas herramientas se adhieren al resto de la conversación, por lo que la búsqueda solo se produce la primera vez que se necesita cada una.

Esa primera búsqueda cuesta un intercambio adicional con el modelo, pero se compensa con creces al mantener reducido el contexto en cada turno posterior.

Herramientas que siempre se cargan

Una serie de herramientas omiten la búsqueda de herramientas y están listas inmediatamente:

La búsqueda de herramientas está habilitada de forma predeterminada y se activa automáticamente siempre que se encuentre en un modelo compatible y tenga suficientes herramientas conectadas para que valga la pena. Para deshabilitar la búsqueda de herramientas y volver a cargar cada herramienta, establezca toolSearch: false en la configuración personal. Consulte directorio de configuración de la CLI de GitHub Copilot.

Modelos compatibles

FamiliaVersiones compatibles
Claude (antrópica)Mythos Preview, Fable, Sonnet 4.0+, Opus 4.0+ (no incluye Haiku)
GPT (OpenAI)GPT-5.4 y versiones posteriores

En cualquier otro modelo, todas las herramientas se cargan por adelantado.

Mantener siempre cargadas las herramientas de un servidor MCP

A veces, es posible que desee que las herramientas de un servidor MCP determinado siempre estén delante del agente, por ejemplo, un servidor cuyas herramientas se usan constantemente o uno en el que el paso de búsqueda adicional no vale la pena. Cada servidor MCP tiene una deferTools configuración que controla esto:

  • "auto" (valor predeterminado): las herramientas del servidor se comportan como cualquier otra y se pueden aplazar una vez que se supera el umbral.
  • "never"—las herramientas del servidor siempre se incluyen en la lista de herramientas del agente, incluso mientras la búsqueda de herramientas está activa para todo lo demás.

La manera más fácil de establecerla es mediante el /mcp edit comando de barra diagonal. En el formulario para editar el servidor MCP, cambie Herramientas de aplazamiento a Nunca. También puede establecerlo directamente en ~/.copilot/mcp-config.json:

{
    "mcpServers": {
        "my-server": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "@example/mcp-server"],
            "deferTools": "never",
            "tools": ["*"]
        }
    }
}

Configurar el aplazamiento de herramientas en agentes personalizados

Cuando un agente personalizado muestra sus herramientas por nombre, esas herramientas siempre se cargan para que el agente pueda usarlas inmediatamente. Esto suele ser lo que desea, pero si un agente declara un gran conjunto de herramientas y solo toca algunos de ellos en una ejecución determinada, puede devolver esa lista a la búsqueda de herramientas para que las herramientas se detecten según sea necesario en lugar de cargarlas a la vez.

Para un agente de Markdown (.github/agents/*.md), añada deferred-tool-loading: true a los metadatos iniciales:

---
name: my-agent
description: Works with a large catalog of tools
tools:
    - some_mcp_tool
    - another_mcp_tool
    # ...many more
deferred-tool-loading: true
---

Agent instructions here.

Tenga en cuenta lo siguiente en relación con la deferred-tool-loading configuración:

  • Solo tiene un efecto cuando la búsqueda de herramientas está activa (es decir, en un modelo compatible con suficientes herramientas para cruzar el umbral).
  • Solo es importante para los agentes que asignen un nombre a sus herramientas. Los agentes que ya usan el comodín * ya usan la búsqueda de herramientas.

La búsqueda de herramientas compara lo que el agente intenta hacer con el nombre de cada herramienta, su descripción y los nombres y las descripciones de los parámetros. El texto claro y específico hace que se muestre una herramienta para las solicitudes correctas:

  • Asigne un nombre a las herramientas para lo que hacen para que sean más fáciles de encontrar.
  • Escriba descripciones con las palabras que la gente buscaría realmente en lugar de vagas.