Creación de herramientas de agentes de IA
Importante
Esta característica está en versión preliminar pública.
En este artículo se muestra cómo crear herramientas para agentes de inteligencia artificial mediante el marco del agente de IA de Mosaico. Para más información, consulte ¿Qué son los agentes de inteligencia artificial y el sistema de inteligencia artificial compuestos?.
Los agentes de inteligencia artificial usan herramientas para realizar acciones además de la generación de lenguajes, como recuperar datos estructurados o no estructurados, ejecutar código o comunicarse con servicios remotos (por ejemplo, enviar un correo electrónico o un mensaje de Slack).
Para proporcionar herramientas a un agente con Mosaic AI Agent Framework, puede usar cualquier combinación de los métodos siguientes:
- Crear herramientas con funciones de catálogo de Unity: las funciones del catálogo de Unity proporcionan fácil detección, gobernanza y uso compartido. Las funciones del catálogo de Unity funcionan especialmente bien para aplicar transformaciones y agregaciones en grandes conjuntos de datos.
- Creación de herramientas con código de agente: este enfoque es útil al realizar llamadas a las API REST, usar código arbitrario o bibliotecas, o ejecutar herramientas con una latencia muy baja. Sin embargo, este enfoque carece de la detectabilidad y la gobernanza integradas proporcionadas por las funciones de Catálogo de Unity. Pesa este inconveniente al crear el agente para determinar qué enfoque es mejor.
Ambos enfoques funcionan para los agentes escritos en código de Python personalizado o mediante una biblioteca de creación de agentes como LangGraph.
Mejora de la llamada a herramientas con documentación
Los agentes de IA usan la documentación para comprender cuándo y cómo usar las herramientas que proporcione. Por lo tanto, al definir herramientas, asegúrese de agregar documentación clara y detallada para la herramienta, sus parámetros y sus valores devueltos.
Para las funciones del catálogo de Unity, use COMMENT
para describir la herramienta.
Requisitos
- Databricks recomienda instalar la versión más reciente del cliente de Python de MLflow al desarrollar agentes. Consulte Autenticación para recursos dependientes a fin de obtener información sobre los requisitos de versión
mlflow
.
Creación de herramientas con funciones de catálogo de Unity
En los ejemplos siguientes se muestra cómo crear herramientas de agente con funciones de catálogo de Unity.
Herramienta ejecutor de Python
En este ejemplo se crea una herramienta para ejecutar código de Python.
Un LLM puede usar esta herramienta para ejecutar código de Python proporcionado por un usuario o escrito por LLM.
Ejecute el siguiente código en una celda de cuaderno. Usa la magia del cuaderno %sql
para crear una función de catálogo de Unity denominada python_exec
.
%sql
CREATE OR REPLACE FUNCTION
main.default.python_exec (
code STRING COMMENT 'Python code to execute. Remember to print the final result to stdout.'
)
RETURNS STRING
LANGUAGE PYTHON
DETERMINISTIC
COMMENT 'Executes Python code in the sandboxed environment and returns its stdout. The runtime is stateless, and you can not read the output of the previous tool executions. No such variables, "rows", or "observations" were defined. Calling another tool inside a Python code is NOT allowed. Use standard Python libraries only.'
AS $$
import sys
from io import StringIO
sys_stdout = sys.stdout
redirected_output = StringIO()
sys.stdout = redirected_output
exec(code)
sys.stdout = sys_stdout
return redirected_output.getvalue()
$$
Herramienta de consulta de tabla
En este ejemplo se crea una herramienta para consultar los datos de los clientes desde una tabla de catálogo de Unity.
Crea una función de catálogo de Unity denominada lookup_customer_info
que un LLM puede usar para recuperar datos estructurados de una tabla hipotética customer_data
.
Ejecute el siguiente código en un editor de SQL.
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up'
)
RETURNS STRING
COMMENT 'Returns metadata about a particular customer given the customer name, including the customer email and ID. The
customer ID can be used for other queries.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;
Asignación de herramientas de catálogo de Unity a agentes
Después de crear las herramientas del catálogo de Unity, asigne las herramientas al agente para que pueda usarlas.
En esta sección se describe cómo crear un agente de llamada a herramientas mediante el área de juegos de IA.
Exportación de agentes de llamada a herramientas desde ai Playground
Use ai Playground para asignar herramientas de catálogo de Unity a un LLM, probar el agente y, a continuación, exportar el código que define el agente de llamada a herramientas.
Para usar AI Playground para exportar agentes, el área de trabajo debe cumplir los siguientes requisitos:
- Catálogo de Unity habilitado
- Proceso sin servidor habilitado
- Modelos de base de pago por token o modelos externos habilitados
En Parque infantil, seleccione un modelo con la etiqueta Herramientas habilitada .
Seleccione Herramientas y haga clic en Agregar una herramienta.
En el menú desplegable, seleccione una función de catálogo de Unity:
Use el área de juegos para chatear y probar la combinación actual de LLM, herramientas y aviso del sistema. Pruebe las variaciones para sentir cómo funciona la configuración actual.
Después de agregar herramientas, exporte el agente a cuadernos de Python:
Haga clic en Exportar para generar cuadernos de Python que definan e implementen el agente.
Después de exportar el código del agente, verá tres archivos guardados en el área de trabajo:
agent
cuaderno: contiene código de Python que define el agente mediante LangChain.driver
cuaderno: contiene código de Python para registrar, realizar un seguimiento, hacer un registro e implementar el agente de IA mediante Mosaic AI Agent Framework.config.yml
: contiene información de configuración sobre el agente, incluidas las definiciones de herramientas.
Abra el
agent
cuaderno para ver el código LangChain que define el agente. Use este cuaderno para probar e iterar en el agente mediante programación, como definir más herramientas.Cuando esté satisfecho con las salidas del agente, puede ejecutar el cuaderno para registrar e implementar el
driver
agente en un punto de conexión de Servicio de modelos.
Creación de herramientas con código de agente
También puede crear herramientas en el código del agente en lugar de en funciones del catálogo de Unity.
Este enfoque es útil al llamar a las API REST, usar código arbitrario o bibliotecas, o ejecutar herramientas de baja latencia. Sin embargo, la definición de herramientas en el código del agente carece de la detectabilidad y la gobernanza proporcionadas por las funciones de Catálogo de Unity.
Para obtener un ejemplo de una herramienta de recuperación de búsqueda vectorial definida en el código del agente, consulte Creación de una herramienta de recuperación de búsqueda vectorial.