Incorporación de herramientas al agente de Azure AI
Tip
Consulte la pestaña Texto e imágenes para obtener más detalles.
Las herramientas son lo que permite al agente realizar acciones: llame a las API, ejecute código, archivos de búsqueda o interactúe con servicios externos. Sin herramientas, un agente solo puede generar texto en función de lo que ya conoce. Con herramientas, es capaz de actuar sobre el mundo.
El marco del agente de Microsoft admite dos amplias categorías de herramientas: herramientas proporcionadas por el servicio hospedadas y administradas por el proveedor y herramientas de funciones personalizadas que se escriben y se registran con el agente.
Herramientas proporcionadas por el servicio
Cuando se usa el proveedor Foundry, hay una gama de herramientas hospedadas disponibles sin ninguna implementación adicional. Las habilitas incluyéndolas en la configuración del agente; el proveedor se encarga de la ejecución real.
Entre las herramientas proporcionadas por el servicio más usadas se incluyen:
| Herramienta | Qué hace |
|---|---|
| Intérprete de código | Ejecuta código Python en un entorno aislado para cálculos y análisis de datos |
| Búsqueda de archivos | Busca y recupera información de los documentos cargados |
| Búsqueda web | Obtiene información actualizada de internet |
| Herramientas de MCP hospedadas | Servidores MCP (Protocolo de contexto de modelo) invocados directamente por el entorno de ejecución del proveedor |
| Búsqueda de Azure AI | Consulta un índice de Búsqueda de Azure AI a través de una conexión Foundry |
| Cajas de herramientas de Foundry | Paquetes con nombre y versión de configuraciones alojadas de herramientas, gestionados en un proyecto de Foundry |
Note
Algunas herramientas, como Búsqueda de Azure AI, Bing Grounding, SharePoint y otras, están en versión preliminar o experimental. Están disponibles para agentes de Foundry, pero pueden tener compatibilidad limitada entre otros proveedores.
Herramientas de función personalizadas
Las herramientas de funciones personalizadas le permiten ampliar el agente con cualquier lógica que necesite: llamar a las API internas, consultar bases de datos, realizar cálculos o cualquier otra cosa que pueda hacer una función de Python.
Para registrar una función como herramienta, la pasas directamente al agente al crearlo. El marco inspecciona la firma de la función y genera un esquema que indica al modelo qué hace la función, qué parámetros espera y qué devuelve.
Para que el modelo llame a una herramienta de forma confiable, la función debe describirse claramente. Agent Framework admite dos enfoques:
-
Anotaciones de tipo con descripciones—utiliza el tipo
Annotatedde Python con una descripción de campo para cada parámetro. La docstring de la función actúa como descripción de la herramienta. -
El
@tooldecorador: especifique explícitamente el nombre y la descripción de la herramienta como argumentos de decorador, lo que le proporciona control total sobre lo que ve el modelo. También puede proporcionar un esquema explícito mediante un modelo Pydantic si necesita un control preciso sobre la estructura de entrada.
En cualquier caso, el marco controla automáticamente la generación de esquemas y la invocación de herramientas. Cuando el modelo determina que se debe llamar a una herramienta, el marco ejecuta la función y devuelve el resultado al modelo antes de generar la respuesta final.
Adición de varias herramientas
Puede registrar varias herramientas con un solo agente. Pase una lista de funciones al crear el agente y el modelo selecciona automáticamente la herramienta más adecuada para cada parte de la conversación. No es necesario escribir ninguna lógica de enrutamiento: el marco controla la orquestación de herramientas en función del contexto de conversación y las descripciones de la herramienta que proporcione.
Aprobación de herramientas
En escenarios en los que las invocaciones de herramientas deben requerir revisión humana antes de la ejecución, Agent Framework admite un patrón de aprobación de herramientas . Cuando el modo de aprobación está activado en una herramienta, el agente se detiene antes de invocar esa función y solicita confirmación. Esto es útil para las acciones que son irreversibles, costosas o implican datos confidenciales. El comportamiento de aprobación se puede configurar para cada herramienta mediante el parámetro approval_mode del decorador @tool.
Uso de un agente como herramienta
Los agentes se pueden componer usando un agente como herramienta para otro. Puede convertir un agente interno en una herramienta de función y pasarlo a un agente externo, que después puede delegar tareas específicas. Esto permite diseños modulares en los que los agentes especializados controlan dominios concretos y un agente de coordinación enruta las solicitudes entre ellos, un patrón explorado con más profundidad en el módulo multiagente.
Procedimientos recomendados para herramientas personalizadas
- Escribir descripciones claras: la capacidad del modelo para elegir la herramienta adecuada depende completamente de las descripciones que proporcione. Sea específico sobre lo que hace la función y cuándo se debe usar.
- Anotar cada parámetro: describa cada entrada para que el modelo pueda construir llamadas válidas, especialmente cuando los nombres de parámetros por sí solos no se explican por sí mismos.
- Devolver datos significativos: las herramientas deben devolver resultados estructurados e interpretables. El modelo usa el valor devuelto directamente al formar su respuesta.
- Mantener las herramientas centradas: cada herramienta debe hacer una cosa bien. La combinación de varias responsabilidades en una sola función dificulta que el modelo lo invoque correctamente.
- Controlar los errores correctamente: si una herramienta encuentra una entrada inesperada o se produce un error en un servicio externo, devuelva un mensaje de error informativo en lugar de generar una excepción, por lo que el modelo puede responder de forma útil.