Parte 6: Agentes Avanzados y Utilities
En esta sexta parte comenzaremos a construir nuestros primeros proyectos de gran tamaño y utilidad, como una recreación de Perplexity, que es un buscador web que usa IA para leer páginas y dar respuestas informadas. Veremos los principios de construcción de flows avanzados junto con herramientas y agentes avanzados.
Contenidos
Flujo de la Información
A partir de este punto nuestros workflows solo se harán más complejos, por lo que no nos vendrá mal un entendimiento básico de cómo se transmite la información entre nodos dentro de flowise.
Lo primero es entender que en proyectos grandes la información generalmente fluye desde los nodos que tienen más nodos seguidos conectados desde su output hasta los nodos que menos nodos seguidos tienen conectados desde su output.
¿En el siguiente proyecto cuál es el nodo que recibe la información que el usuario introduce como input, y cuál es el último nodo en recibir información?

La respuesta es que es el nodo que está a la derecha del todo el primero en recibir el input del usuario, y es el que está a la izquierda del todo el último en recibir información. Este diagrama funciona perfectamente, solo que estamos acostumbrados a construir de una manera similar a la que escribimos, para alguien que habla árabe puede que no fuese tan extraño construir así, lo que hay que tener claro, es que la información fluye del nodo que más nodos tenga después de su output al que menos tenga.
Utilities
Custom JS Function
Puedes usar las librerías que han sido importadas en Flowise Puedes usar properties añadidas en el Input Schema como variables con el prefijo $: Property = userid Variable = $userid
Puedes usar algunas variables default llamándolas así:
También puedes usar herramientas, conectándolas al nodo y luego llamándolas con:
Variables
Las variables pueden usarse en Herramienta Personalizada, Funciones de Javascript, If Else y en el Custom Loader con el prefijo $.
Las variables también se pueden usar en el parámetro Campo de Texto de cualquier nodo. Por ejemplo, en el Mensaje del Sistema de un Agente:
Si el tipo de variable es Estática, el valor se recuperará tal cual. Si el tipo de variable es Runtime (tiempo de ejecución), el valor se recuperará del archivo .env. También puedes sobrescribir los valores de las variables en la API overrideConfig usando
Puedes empezar a configurar tus variables a través del menú principal:

AutoGPT
AutoGPT es un agente autónomo que utiliza un proceso de pensamiento en cadena para completar tareas por sí mismo (tiene la capacidad de usar herramientas). Es como tener un asistente que:
Piensa paso a paso sobre cómo resolver un problema
Decide qué acciones tomar
Ejecuta las acciones necesarias
Evalúa los resultados
Ajusta su estrategia según sea necesario
Herramientas Avanzadas
Chain Tool
La Chain Tool nos permite introducir algunas de las funcionalidades únicas de las chains como el encadenamiento de chains en nuestros proyectos con agentes.
Una Chain Tool le permite a nuestro agente acceder al output de cualquier chain que construyamos directamente dentro del canvas.

Chatflow Tool
Una ChatFlow Tool le permite a nuestro agente poder usar cualquiera de los proyectos que hayamos construido en la misma instancia de flowise en la que se encuentre el agente.
A continuación un ejemplo en el que se muestra una ChatFlow tool, donde se puede ver que nos da una lista con los proyectos de nuestra instancia para seleccionar.

Custom Tool
Una Custom Tool nos permite usar cualquier función que podamos programar en JavaScript como herramienta.

Para las custom tools aplican todos los consejos que vimos del manejo de variables dentro de la sección de Funciones de JavaScript y Variables.
Pero tenemos una sección extra dentro de las herramientas llamada 'Input Schema', en la cual podemos configurar qué variables queremos que la IA aporte como input a la herramienta, el tipo de dato de la variable, la descripción del dato, y si está requerido que no esté vacío.

Finalmente, nos dan un espacio para programar la herramienta, se deben de tener las mismas consideraciones aquí que para la JavaScript Custom Function.
Dejo a continuación un ejemplo de código que se puede usar para mandar datos a un webhook:
Donde declaramos 'url' deberíamos de poner el enlace al webhook, y las variables que aparecen en body son las que mandaríamos. Se pueden modificar estos campos como se desee.
Replicando Perplexity
En esta parte crearemos una mini réplica de Perplexity Pro + R1.
Perplexity es un motor de búsqueda impulsado por IA, el cual lee la información relevante sobre cualquier tópico y responde a las preguntas que tengamos.

Pero hoy vamos a construir nuestra propia versión, y gratuitamente.
Y lo vamos a hacer siguiendo muchos de los principios que hemos aprendido en esta parte.
Dejo a continuación un esquema con el funcionamiento del proyecto que construiremos.

Aquí está el archivo del proyecto en caso de que prefiráis importarlo directamente, aunque recomiendo seguir los pasos del vídeo y montarlo desde 0. [https://github.com/codermtk/ProyectosCurso.git]
Código para la Réplica
A continuación, el código necesario para realizar esta réplica.
Código para llamar a BraveSearch
Código para scrapear las webs obtenidas:
Last updated