Runnable As Tool
Runnable As Tool es un componente que convierte cualquier runnable (una función, script o cualquier objeto que implemente la interfaz de ejecución) en una herramienta que puede ser utilizada por el modelo de lenguaje dentro del dashboard. El componente intenta adivinar los nombres de las claves de entrada y salida, lo que facilita la integración sin necesidad de especificar manualmente cada parámetro.
¿Cómo funciona?
Cuando seleccionas este componente, debes proporcionar el Runnable que quieres convertir en herramienta. El componente analiza el objeto para identificar qué argumentos espera y qué valores devuelve. Con esta información, construye automáticamente una herramienta que el modelo puede llamar.
Si lo deseas, puedes pasarle un Input en formato JSON que será enviado al ejecutable. Además, puedes decidir si quieres que el componente devuelva directamente la herramienta creada (Return Direct) o que la ejecute y devuelva el resultado. Si activas Verbose, la salida del ejecutable se mostrará en el panel de logs para que puedas depurar fácilmente.
Entradas
- Runnable: El ejecutable que quieres convertir en herramienta. Puede ser una función, script o cualquier objeto que implemente la interfaz de runnable.
- Input: El valor que se enviará al ejecutable. Debe estar en formato JSON.
- Return Direct: Si se marca, el componente devuelve directamente la herramienta creada en lugar de ejecutarla.
- Tool Description: Descripción textual de la herramienta, útil para que el LLM entienda su propósito.
- Tool Arguments Schema: Esquema JSON que describe los argumentos que la herramienta espera recibir.
- Tool Name: Nombre que se le asignará a la herramienta.
- Verbose: Si se activa, se mostrará la salida del ejecutable en el panel de logs.
Salidas
- Result: Mensaje que contiene el resultado de la ejecución del runnable (si no se seleccionó Return Direct).
- Tool: Objeto BaseTool que representa la herramienta construida a partir del runnable. Este objeto puede ser conectado a otros componentes o utilizado directamente por el modelo.
Ejemplo de Uso
Supongamos que quieres crear una herramienta que envíe un correo electrónico usando la API de Gmail.
- Selecciona el componente Runnable As Tool.
- En Runnable, elige el objeto que encapsula la llamada a la API de Gmail.
- En Tool Name, escribe
SendEmail
. - En Tool Description, escribe
Envía un correo electrónico a la dirección especificada.
- En Tool Arguments Schema, pega el esquema JSON que espera la función (por ejemplo,
{ "to": "string", "subject": "string", "body": "string" }
). - En Input, coloca un JSON de prueba:
{ "to": "ejemplo@dominio.com", "subject": "Hola", "body": "Este es un correo de prueba." }
. - Activa Verbose si quieres ver la respuesta de la API en el log.
- Ejecuta el componente.
- Si Return Direct está desactivado, verás el resultado del envío en la salida Result.
- Si Return Direct está activado, obtendrás la herramienta
SendEmail
que puedes usar en flujos posteriores.
Componentes Relacionados
- BaseRunnableToolComponent: Base sobre la que se construye este componente; contiene la lógica común para convertir runnables en herramientas.
- BaseTool: Clase base que representa cualquier herramienta que el modelo puede invocar.
- Message: Tipo de dato que se utiliza para enviar y recibir mensajes dentro del dashboard.
Consejos y Mejores Prácticas
- Valida siempre el JSON que envías en Input para evitar errores de ejecución.
- Usa Return Direct cuando necesites reutilizar la herramienta en otros flujos sin ejecutar inmediatamente.
- Mantén la Tool Description breve pero clara; ayuda al modelo a comprender rápidamente la función.
- Activa Verbose solo durante la fase de prueba; en producción puede generar logs extensos.
- Si el runnable depende de credenciales externas, asegúrate de que estén configuradas correctamente en el entorno del dashboard.
Consideraciones de Seguridad
El componente ejecuta el runnable que le proporcionas, por lo que cualquier código que se ejecute puede tener acceso a los recursos del sistema.
- No introduzcas runnables que provengan de fuentes no confiables.
- Si el runnable interactúa con APIs externas, revisa los permisos y límites de uso.
- Considera usar entornos aislados o contenedores para runnables que realicen operaciones críticas.