Programa
Los agentes de IA son asistentes que pueden realizar tareas e interactuar con el mundo. A diferencia de los sistemas tradicionales, que siguen reglas fijas, pueden aprender y adaptarse a nuevas situaciones. Piensa en ellos como robots inteligentes que te ayudan en diversas tareas.
Pero, ¿qué diferencia a los agentes de IA de otras entidades de IA, como los populares modelos lingüísticos de los que todos hemos oído hablar?
En este artículo, abordaré esta cuestión y presentaré CrewAIun marco Python gratuito y de código abierto diseñado para simplificar el desarrollo de sistemas de IA multiagente. Exploraremos la distinción entre agentes y modelos lingüísticos, discutiremos por qué los marcos de agentes son importantes para construir aplicaciones de IAy demostraremos cómo CrewAI permite a los agentes colaborar y conseguir grandes resultados.
Agentes de IA vs. LLMs
Desenmascaremos un malentendido común sobre la diferencia entre los agentes y los grandes modelos lingüísticos (LLM). Ambos pertenecen a la familia de la inteligencia artificial, pero poseen capacidades distintas.
Modelos lingüísticos, como ChatGPT y Géminisson muy hábiles en el uso del lenguaje. Han recibido una formación exhaustiva sobre grandes cantidades de texto y código, lo que les ha dotado de la capacidad de comprender y producir un lenguaje que se asemeja mucho a la comunicación humana.
Los LLM son hábiles orfebres de la inteligencia artificial, que producen una amplia gama de contenidos, como traducciones, resúmenes, narraciones creativas o incluso poesía. Su ámbito suele limitarse a tareas relacionadas con el lenguaje.
Los agentes, sin embargo, se centran principalmente en actuar. Son capaces de navegar, interactuar con objetos y tomar decisiones basadas en sus percepciones.
En resumen, los modelos lingüísticos son cerebros y los agentes son manos. Juntos forman un poderoso dúo.
Así pues, con agentes que desempeñan un papel tan vital en las aplicaciones de IA, ¿cómo gestionamos su complejidad cuando varios agentes tienen que trabajar juntos? Aquí es donde entran en juego los marcos de agentes.
La necesidad de un marco de agentes
La necesidad de marcos de agentes surge de la creciente complejidad de las aplicaciones de IA, sobre todo las que implican a varios agentes que trabajan en colaboración para lograr un objetivo común. Veamos por qué son esenciales los marcos de agentes.
Orquestación y coordinación
A medida que los sistemas de IA crecen en escala, suelen incorporar numerosos agentes con capacidades diversas. Gestionar estas interacciones y garantizar que funcionen armoniosamente resulta cada vez más difícil.
Los marcos de agentes ofrecen un entorno estructurado que permite orquestar las actividades de los agentes, definir sus funciones y responsabilidades y mejorar la comunicación.
En los sistemas multiagente, un aspecto importante es la asignación eficiente de tareas a los agentes más adecuados y la gestión eficaz de los recursos compartidos. Los marcos de agentes proporcionan mecanismos dinámicos para la asignación de tareas, la negociación de recursos y la resolución de conflictos.
Modularidad y reutilización
Los marcos de agentes promueven un enfoque modular del desarrollo de la IA, en el que los agentes se diseñan e implementan como componentes independientes. Esta modularidad permite una mejor organización del código y posibilita la reutilización de módulos de agentes en varios proyectos, simplificando así el desarrollo y el mantenimiento de sistemas complejos. Con esta estructura basada en componentes, los desarrolladores de IA pueden centrarse en agentes individuales sin alterar el sistema general.
Además, los marcos de agentes suelen adoptar una arquitectura basada en roles, lo que permite a los desarrolladores asignar roles específicos a los agentes, que definen sus capacidades y permisos. Este diseño basado en roles conduce a un sistema más organizado y manejable, en el que se pueden añadir, eliminar o modificar agentes con un impacto mínimo en la arquitectura general. Esta flexibilidad garantiza que los sistemas puedan evolucionar y adaptarse a nuevos requisitos sin necesidad de una reingeniería significativa.
Adaptabilidad y aprendizaje
Los entornos del mundo real suelen ser dinámicos, impredecibles y en continua evolución. Los marcos de agentes equipan a los agentes para percibir cambios en su entorno y adaptar sus comportamientos en consecuencia. Esta adaptabilidad garantiza que los agentes puedan funcionar eficazmente incluso en escenarios complejos y en constante cambio, lo que les permite afrontar mejor los retos del mundo real.
Además, los marcos de agentes suelen incorporar mecanismos de aprendizaje que permiten a los agentes mejorar su rendimiento con el tiempo. Aprendiendo de los comentarios y las experiencias, los agentes pueden optimizar continuamente sus procesos de toma de decisiones y adaptarse a los nuevos retos que vayan surgiendo. Esta mejora continua permite a los agentes ser más eficaces y valiosos, contribuyendo a la eficacia y el éxito del sistema a largo plazo.
Y hablando de marcos de agentes, presentemos uno que está causando sensación en la comunidad de la IA: CrewAI.
¿Qué es CrewAI?
CrewAI es un marco Python de código abierto diseñado para apoyar el desarrollo y la gestión de sistemas de IA multiagente.
CrewAI mejora estos sistemas de IA asignando funciones específicas, permitiendo la toma de decisiones autónoma y facilitando la comunicación entre los agentes. Este enfoque les permite abordar problemas complejos con más eficacia que los agentes individuales que trabajan solos.
Este marco consta de una serie de herramientas, como buscadores web y modelos lingüísticos, que permiten a los agentes relacionarse con el mundo exterior, recopilar información y actuar para cumplir sus objetivos.
El diseño y la escalabilidad de CrewAI la hacen perfecta para desarrollar aplicaciones multiagente tanto básicas como complejas, fomentando un método colaborativo para afrontar los retos y tomar decisiones dentro de los sistemas de IA.
Veamos algunas de las características clave que hacen de CrewAI una potente herramienta para construir sistemas multiagente.
- Orquestación de agentes: CrewAI garantiza que cada agente conozca su papel en la actuación. Proporciona las herramientas para definir y coordinar los comportamientos de los agentes, asegurándose de que todos juegan en sincronía.
- Arquitectura basada en roles: Al igual que asignas diferentes instrumentos a los músicos, CrewAI te permite asignar funciones específicas a los agentes, definiendo sus capacidades y permisos. Esto crea un sistema modular y bien estructurado, incluso cuando las cosas se vuelven complejas.
- Comunicación flexible: CrewAI admite varios canales de comunicación, lo que permite a los agentes intercambiar información sin problemas. Piensa que es como tener un chat privado, una discusión en grupo y un megáfono, todo en uno.
- Integración de herramientas: CrewAI capacita a los agentes para interactuar con el mundo a través de diversas herramientas. Estas herramientas permiten a los agentes buscar en la web, comprender el lenguaje, analizar datos y realizar tareas personalizadas.
- Escalabilidad: CrewAI está diseñada para escalar sin esfuerzo, garantizando que tu sistema multiagente siga respondiendo y siendo eficiente a medida que crece.
Pero, ¿qué ventajas aporta la CrewAI? Exploremos sus ventajas.
Ventajas de utilizar CrewAI
Crew.ai permite que varios agentes de IA colaboren, compartan conocimientos y coordinen sus acciones hacia un objetivo común.
Al automatizar la distribución de tareas y la gestión de recursos, Crew.ai permite a los agentes concentrarse en sus funciones específicas con una sobrecarga mínima.
El marco también admite la adaptabilidad, permitiendo a los agentes ajustar su comportamiento en función de las condiciones u objetivos cambiantes.
Además, Crew.ai simplifica el proceso de desarrollo con una plataforma fácil de usar para crear y gestionar sistemas multiagente.
Otro punto fuerte de CrewAI es su integración con una amplia gama de herramientas. Esto amplía las capacidades de los agentes, permitiéndoles interactuar con el mundo exterior y recabar información.
CrewAI admite herramientas como buscadores web, modelos lingüísticos, herramientas de análisis de datos e incluso funcionalidades a medida. Esto permite a los agentes realizar tareas que van más allá de sus capacidades básicas, como recuperar información de la web o realizar análisis de datos complejos.
Manos a la obra: Crear una herramienta de búsqueda web con CrewAI
Vamos a ponernos manos a la obra y crear un flujo de trabajo utilizando las herramientas de CrewAI para raspar el contenido del sitio web y, a continuación, realizar el RAG sobre él.
Tenemos que escribir el código que hará funcionar la herramienta. Antes de empezar, vamos a instalar los paquetes crewai-tools
y crewai
utilizando pip
:
pip install crewai-tools crewai
Una vez que hayas instalado los paquetes, sigue los pasos que se indican a continuación. En este ejemplo, utilizaremos tres herramientas diferentes: ScrapeWebsiteTool
para raspar el sitio web, FileWriterTool
para escribir el archivo y TXTSearchTool
para buscar RAG en el contexto. Empecemos.
Paso 1: Raspado de un sitio web
Primero importamos las bibliotecas necesarias e inicializamos la página ScrapeWebsiteTool
. Esta herramienta se utiliza para extraer contenido de un sitio web. En este caso, está configurado para extraer contenido de la página "Inteligencia Artificial" de Wikipedia:
from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests
# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')
# Extract the text
text = tool.run()
print(text)
Step2: Escribe el texto extraído en un archivo
Ahora utilizamos FileWriterTool
para guardar el texto extraído en un archivo llamado ai.txt
.
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)
Paso 3: Configura la herramienta de búsqueda de texto
Configuramos otra herramienta para buscar el contenido del archivo ai.txt que acabamos de guardar. También establecemos la variable de entorno para la clave de la API de OpenAI.
import os
from crewai_tools import TXTSearchTool
os.environ['OPENAI_API_KEY'] = 'API-KEY'
# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')
Paso 4: Crea un agente para la tarea y ejecútalo
Creamos un agente analista de datos con el papel de educador. La tarea de este agente es responder a la pregunta "¿Qué es el Procesamiento del Lenguaje Natural?" basándose en el texto que hemos buscado en el archivo.
from crewai import Agent, Task, Crew
context = tool.run('What is natural language processing?')
data_analyst = Agent(
role='Educator',
goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
backstory='You are a data expert',
verbose=True,
allow_delegation=False,
tools=[tool]
)
test_task = Task(
description="Understand the topic and give the correct response",
tools=[tool],
agent=data_analyst,
expected_output='Give a correct response'
)
crew = Crew(
agents=[data_analyst],
tasks=[test_task]
)
output = crew.kickoff()
Salida:
Conclusión
CrewAI ofrece una plataforma práctica para gestionar sistemas multiagente. Ya sea raspando contenidos o delegando tareas, este marco apoya la colaboración entre agentes y les ayuda a adaptarse y mejorar.
Al integrar herramientas y proporcionar una estructura organizada, CrewAI facilita a los desarrolladores la gestión de las interacciones de los agentes, la distribución de tareas y la garantía de un rendimiento óptimo.
Desarrollar aplicaciones de IA
Ingeniero Senior de GenAI y creador de contenidos que ha conseguido 20 millones de visitas compartiendo conocimientos sobre GenAI y ciencia de datos.