Saltar al contenido principal
InicioTutorialesInteligencia Artificial (IA)

CrewAI: Una guía con ejemplos de sistemas de agentes de IA múltiple

CrewAI es una plataforma que permite a los desarrolladores construir y desplegar flujos de trabajo automatizados utilizando múltiples agentes de IA que colaboran para realizar tareas complejas.
Actualizado 13 sept 2024  · 9 min leer

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.

Agentes AI vs LLMs

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.

CrewAI logo

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.

ventajas de CrewAI

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:

salida del agente de tripulación

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

Aprende a crear aplicaciones de IA utilizando la API OpenAI.

Empieza a Hacer Upskilling Gratis

Photo of Bhavishya Pandit
Author
Bhavishya Pandit
LinkedIn
Twitter

Ingeniero Senior de GenAI y creador de contenidos que ha conseguido 20 millones de visitas compartiendo conocimientos sobre GenAI y ciencia de datos.

Temas

Aprende IA con estos cursos

Course

Developing AI Systems with the OpenAI API

3 hr
3K
Leverage the OpenAI API to get your AI applications ready for production.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

7 proyectos de IA para todos los niveles

Desarrolla tu portafolio y mejora tus habilidades para crear soluciones innovadoras a problemas complejos trabajando en proyectos de IA.
Abid Ali Awan's photo

Abid Ali Awan

8 min

blog

Los 7 mejores generadores de vídeo de IA para 2024 con vídeos de ejemplo

Descubre los mejores generadores de vídeo de IA disponibles en la actualidad, como RunwayML, Synthesia, Colossyan, Pictory, DeepBrain AI, Invideo y el esperadísimo Sora y Veo de DeepMind.
Dr Ana Rojo-Echeburúa's photo

Dr Ana Rojo-Echeburúa

9 min

tutorial

Tutorial de la API de OpenAI Assistants

Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

IA explicable - Comprender y confiar en los modelos de aprendizaje automático

Sumérjase en la IA explicable (XAI) y aprenda a generar confianza en los sistemas de IA con LIME y SHAP para la interpretabilidad de modelos. Comprender la importancia de la transparencia y la equidad en las decisiones basadas en la IA.
Zoumana Keita 's photo

Zoumana Keita

12 min

tutorial

Construir agentes LangChain para automatizar tareas en Python

Un tutorial completo sobre la construcción de agentes LangChain multiherramienta para automatizar tareas en Python utilizando LLMs y modelos de chat utilizando OpenAI.
Bex Tuychiev's photo

Bex Tuychiev

14 min

See MoreSee More