Información general sobre herramientas

Agent Framework admite muchos tipos diferentes de herramientas que amplían las funcionalidades del agente. Las herramientas permiten a los agentes interactuar con sistemas externos, ejecutar código, buscar datos, etc.

Tipos de herramientas

Tipo de herramienta Description
Herramientas de funciones Código personalizado al que pueden llamar los agentes durante las conversaciones
Intérprete de código Ejecución de código en un entorno de espacio aislado
Búsqueda de archivos Búsqueda a través de archivos cargados
Búsqueda web Buscar información en la web
Herramientas de MCP hospedadas Servidores MCP invocados por el entorno de ejecución del proveedor
Herramientas de MCP locales Servidores MCP que se ejecutan localmente o en hosts personalizados
Cuadros de herramientas de fundición Conjuntos con versiones con nombre de configuraciones de herramientas hospedadas administradas en un proyecto foundry
Tipo de herramienta Description
Herramientas de funciones Código personalizado al que pueden llamar los agentes durante las conversaciones
Intérprete de código Ejecución de código en un entorno de espacio aislado
Búsqueda de archivos Búsqueda a través de archivos cargados
Búsqueda web Buscar información en la web
Herramientas de MCP hospedadas Servidores MCP invocados por el entorno de ejecución del proveedor
Herramientas de MCP locales Servidores MCP que se ejecutan localmente o en hosts personalizados
Cuadros de herramientas de fundición Conjuntos con versiones con nombre de configuraciones de herramientas hospedadas administradas en un proyecto foundry
Generación de imágenes Generación de imágenes hospedadas en el entorno de ejecución de respuestas de Foundry/OpenAI
Shell Ejecución del shell hospedado en el entorno de ejecución de respuestas de OpenAI, distinto de las herramientas integradas del entorno de ejecución de shell/archivo/URL de la CLI de GitHub Copilot
Conexión a tierra Bing Conexión web a través de su propio recurso grounding con Bing Search: experimental
Bing Custom Search Bing grounding restricted to a curated domain list (Bing grounding restricted to a curated domain list— preview (Versión preliminar)
Búsqueda de Azure AI Consulta de un índice de Búsqueda de Azure AI a través de una conexión Foundry: experimental
SharePoint Respuestas básicas en SharePoint contenido: versión preliminar
Microsoft Fabric Consulta de un agente de datos de Fabric: versión preliminar
Búsqueda de memoria Búsqueda de un almacén de memoria administrado por Foundry: versión preliminar
Uso del ordenador Controlar un entorno de escritorio o explorador: versión preliminar
Automatización del explorador Conducir un explorador a través de Azure Playwright ( versión preliminar)
Herramienta de Agente a Agente (A2A) Llamada a un agente A2A remoto como una herramienta de un agente foundry: versión preliminar

Nota:

Las herramientas marcadas como experimentales o preliminares se documentan en la página del proveedor pertinente y emiten ExperimentalWarning la primera vez que se usan en un proceso.

Aprobación de herramientas

La aprobación de herramientas es una característica de marco que le permite gatear todas las invocaciones de herramientas ( herramientas de función, herramientas hospedadas, llamadas a herramientas MCP) a través de una decisión humana en el bucle antes de que el modelo reciba el resultado. Se controla mediante el cliente de chat de invocación de funciones del marco en .NET y Python, por lo que funciona con cualquier proveedor cuyo cliente invoca herramientas localmente; no es una funcionalidad por proveedor. Consulte la página Aprobación de herramientas para obtener el patrón completo, incluido cómo interactúan las aprobaciones con sesiones, streaming y middleware.

Matriz de compatibilidad del proveedor

Los proveedores de OpenAI y Azure OpenAI ofrecen cada uno dos tipos de cliente ( Respuestas y finalización de chat) con diferentes funcionalidades de herramientas. Los clientes de Azure OpenAI reflejan sus equivalentes de OpenAI. Copilot Studio y A2A los agentes se ejecutan en un servicio remoto para que sus funcionalidades estén configuradas en el agente remoto en lugar de a través del cliente de Agent Framework, no se muestran en la matriz.

Tipo de herramienta Respuestas Finalización del chat Fundición Antrópica Ollama Copiloto de GitHub
Herramientas de funciones
Intérprete de código
Búsqueda de archivos
Búsqueda web
Herramientas de MCP hospedadas
Herramientas de MCP locales

Nota:

Las columnas Responses y Chat Completion se aplican a openAI y Azure OpenAI: las variantes de Azure reflejan la misma compatibilidad con la herramienta que sus homólogos de OpenAI. La API openAI en desuso Assistants ya no está documentada; para obtener instrucciones de migración, consulte la guía de migración Kernel semántico.

Matriz de compatibilidad del proveedor

Los proveedores de OpenAI y Azure OpenAI ofrecen cada uno varios tipos de cliente con distintas funcionalidades de herramientas. Los clientes de Azure OpenAI reflejan sus equivalentes de OpenAI. La columna Foundry se aplica a FoundryChatClient : para FoundryAgent, las herramientas se configuran en la definición del agente Foundry (consulte ¿Qué funciona y qué no con FoundryAgent). Copilot Studio y A2A los agentes se ejecutan en un servicio remoto para que sus funcionalidades estén configuradas en el agente remoto en lugar de a través del cliente de Agent Framework, no se muestran en la matriz.

Tipo de herramienta Respuestas Finalización del chat Fundición Antrópica Ollama Foundry Local Copiloto de GitHub
Herramientas de funciones ⚠️¹ ⚠️¹
Intérprete de código
Búsqueda de archivos
Búsqueda web
Generación de imágenes
Shell hospedado (get_shell_tool)
Shell integrado, sistema de archivos o captura de direcciones URL ✅²
Herramientas de MCP hospedadas
Herramientas de MCP locales
Cuadros de herramientas de fundición
Bing Grounding (experimental)
Bing Custom Search (versión preliminar)
Búsqueda de Azure AI (experimental)
SharePoint (versión preliminar)
Microsoft Fabric (versión preliminar)
Búsqueda de memoria (versión preliminar)
Uso del equipo (versión preliminar)
Automatización del explorador (versión preliminar)
Herramienta Agente a agente (A2A) ( versión preliminar)

¹ Depende del modelo local elegido que admita la llamada a funciones. ² Integrado en el entorno de ejecución de la CLI de GitHub Copilot, controlado por un controlador de permisos. Superficie diferente de la de get_shell_toolOpenAI.

Nota:

Las columnas Responses y Chat Completion se aplican a openAI y Azure OpenAI: las variantes de Azure reflejan la misma compatibilidad con la herramienta que sus homólogos de OpenAI. Las herramientas de MCP locales funcionan con cualquier proveedor que admita herramientas de funciones.

Uso de un agente como una herramienta de función

Puede usar un agente como herramienta de función para otro agente, lo que permite la composición del agente y flujos de trabajo más avanzados. El agente interno se convierte en una herramienta de función y se proporciona al agente externo, que luego puede llamarlo según sea necesario.

Llame .AsAIFunction() a en para AIAgent convertirlo en una herramienta de función que se puede proporcionar a otro agente:

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

Advertencia

DefaultAzureCredential es conveniente para el desarrollo, pero requiere una consideración cuidadosa en producción. En producción, considere usar una credencial específica (por ejemplo, ManagedIdentityCredential) para evitar problemas de latencia, sondeos de credenciales no deseados y posibles riesgos de seguridad de los mecanismos de respaldo.

Llame .as_tool() a en un agente para convertirlo en una herramienta de función que se puede proporcionar a otro agente:

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

También puede personalizar el nombre, la descripción y el nombre del argumento de la herramienta:

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

Pasos siguientes