CrewAI : marco de vanguardia para orquestar agentes de IA autónomos y de juegos de rol. Al fomentar la inteligencia colaborativa, CrewAI permite a los agentes trabajar juntos sin problemas, abordando tareas complejas.
Página de inicio | Documentación | Chatea con documentos | Ejemplos | Discurso
¿Por qué CrewAI?
Empezando
Características clave
Ejemplos
Tutorial rápido
Escribir descripciones de trabajo
Planificador de viaje
Análisis de acciones
Conectando su tripulación a un modelo
Cómo se compara CrewAI
Contribución
Telemetria
Licencia
El poder de la colaboración con IA tiene mucho que ofrecer. CrewAI está diseñado para permitir que los agentes de IA asuman roles, compartan objetivos y operen en una unidad cohesiva, muy parecida a una tripulación bien engrasada. Ya sea que esté creando una plataforma de asistente inteligente, un conjunto de servicio al cliente automatizado o un equipo de investigación de múltiples agentes, CrewAI proporciona la columna vertebral para interacciones sofisticadas entre múltiples agentes.
Para comenzar con CrewAI, siga estos sencillos pasos:
Asegúrese de tener Python >=3.10 <=3.13 instalado en su sistema. CrewAI utiliza UV para la gestión de dependencias y el manejo de paquetes, lo que ofrece una experiencia de configuración y ejecución perfecta.
Primero, instala CrewAI:
equipo de instalación de pipas
Si desea instalar el paquete 'crewai' junto con sus funciones opcionales que incluyen herramientas adicionales para agentes, puede hacerlo usando el siguiente comando:
instalación de pip 'crewai[herramientas]'
El comando anterior instala el paquete básico y también agrega componentes adicionales que requieren más dependencias para funcionar.
Para crear un nuevo proyecto CrewAI, ejecute el siguiente comando CLI (Interfaz de línea de comando):
crewai crear equipo <nombre_proyecto>
Este comando crea una nueva carpeta de proyecto con la siguiente estructura:
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
Ahora puedes comenzar a desarrollar tu equipo editando los archivos en la carpeta src/my_project
. El archivo main.py
es el punto de entrada del proyecto, el archivo crew.py
es donde define su equipo, el archivo agents.yaml
es donde define sus agentes y el archivo tasks.yaml
es donde define sus tareas.
Modifique src/my_project/config/agents.yaml
para definir sus agentes.
Modifique src/my_project/config/tasks.yaml
para definir sus tareas.
Modifique src/my_project/crew.py
para agregar su propia lógica, herramientas y argumentos específicos.
Modifique src/my_project/main.py
para agregar entradas personalizadas para sus agentes y tareas.
Agregue sus variables de entorno al archivo .env
.
Instala tu equipo:
Crewai crear equipo último desarrollo de IA
Modifique los archivos según sea necesario para adaptarlos a su caso de uso:
agentes.yaml
# src/my_project/config/agents.yamlresearcher: rol: > {topic} Objetivo del investigador senior de datos: > Descubrir desarrollos de vanguardia en la historia de fondo de {topic}: > Eres un investigador experimentado con una habilidad especial para descubrir los últimos desarrollos en {tema}. Conocido por su capacidad para encontrar la información más relevante y presentarla de manera clara y concisa. reporting_analyst: rol: > {topic} Objetivo del analista de informes: > Crear informes detallados basados en el análisis de datos de {topic} y la historia de fondo de los hallazgos de la investigación: > Eres un analista meticuloso con buen ojo para los detalles. Es conocido por su capacidad para convertir datos complejos en informes claros y concisos, lo que facilita que otros comprendan y actúen en función de la información que usted proporciona.
tareas.yaml
# src/my_project/config/tasks.yamlresearch_task: descripción: > Realiza una investigación exhaustiva sobre {topic} Asegúrate de encontrar información interesante y relevante dado que el año actual es 2024. expected_output: > Una lista con 10 viñetas de los puntos más información relevante sobre {tema} agente: researcherreporting_task: descripción: > Revise el contexto que obtuvo y expanda cada tema en una sección completa para obtener un informe. Asegúrese de que el informe sea detallado y contenga toda la información relevante. expected_output: > Informes completos con los temas principales, cada uno con una sección completa de información. Formateado como descuento sin agente '```': reporting_analyst archivo_salida: informe.md
tripulación.py
# src/my_project/crew.pyfrom crewai import Agente, Equipo, Proceso, Tareafrom crewai.project import CrewBase, agente, equipo, tareafrom crewai_tools import SerperDevTool@CrewBaseclass LatestAiDevelopmentCrew(): """LatestAiDevelopment team"""@agentdef investigador(self ) -> Agente: devolver Agente ( config=self.agents_config['investigador'], detallado=Verdadero, herramientas=[SerperDevTool()] ) @agentdef reporting_analyst(self) -> Agente: devolver Agente( config=self.agents_config['reporting_analyst'], detallado=True ) @taskdef research_task(self) -> Tarea: devolver Tarea( config=self.tasks_config['research_task'], ) @taskdef reporting_task(self) -> Tarea: devolver Tarea( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crewdef equipo(self) -> Equipo: """Crea el equipo de LatestAiDevelopment"""return Equipo( agentes=self.agents, # Creado automáticamente por @agent decoratortasks=self.tasks, # Creado automáticamente por @task decoradorprocess=Proceso.secuencial, detallado=Verdadero, )
principal.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom Latest_ai_development.crew import LatestAiDevelopmentCrewdef run():""" Ejecute el equipo. """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(entradas=entradas)
Antes de dirigir su equipo, asegúrese de tener las siguientes claves configuradas como variables de entorno en su archivo .env
:
Una clave API de OpenAI (u otra clave API de LLM): OPENAI_API_KEY=sk-...
Una clave API de Serper.dev: SERPER_API_KEY=YOUR_KEY_HERE
Bloquee las dependencias e instálelas usando el comando CLI, pero primero, navegue hasta el directorio de su proyecto:
cd mi_proyecto instalación Crewai (opcional)
Para ejecutar su equipo, ejecute el siguiente comando en la raíz de su proyecto:
carrera en tripulación
o
python src/mi_proyecto/main.py
Si ocurre un error debido al uso de poesía, ejecute el siguiente comando para actualizar su paquete crewai:
actualización de la tripulación
Debería ver el resultado en la consola y el archivo report.md
debería crearse en la raíz de su proyecto con el informe final completo.
Además del proceso secuencial, se puede utilizar el proceso jerárquico, que asigna automáticamente un gerente al equipo definido para coordinar adecuadamente la planificación y ejecución de tareas mediante la delegación y validación de resultados. Vea más sobre los procesos aquí.
Diseño de agentes basado en roles : personalice agentes con roles, objetivos y herramientas específicos.
Delegación autónoma entre agentes : los agentes pueden delegar tareas de forma autónoma e investigar entre ellos, mejorando la eficiencia en la resolución de problemas.
Gestión de tareas flexible : defina tareas con herramientas personalizables y asígnelas a los agentes de forma dinámica.
Impulsado por procesos : actualmente solo admite la ejecución de tareas sequential
y procesos hierarchical
, pero se está trabajando en procesos más complejos como los consensuales y autónomos.
Guardar el resultado como archivo : guarde el resultado de tareas individuales como un archivo para poder usarlo más tarde.
Analizar la salida como Pydantic o Json : analice la salida de tareas individuales como un modelo de Pydantic o como Json si lo desea.
Funciona con modelos de código abierto : ejecute su equipo utilizando Open AI o modelos de código abierto; consulte la página Connect CrewAI to LLM para obtener detalles sobre cómo configurar las conexiones de sus agentes a los modelos, ¡incluso los que se ejecutan localmente!
Puedes probar diferentes ejemplos de la vida real de equipos de IA en el repositorio de ejemplos de CrewAI:
Generador de páginas de destino
Tener participación humana en la ejecución.
Planificador de viaje
Análisis de acciones
Consulte el código de este ejemplo o mire el vídeo a continuación:
Consulte el código de este ejemplo o mire el vídeo a continuación:
Consulte el código de este ejemplo o mire el vídeo a continuación:
CrewAI admite el uso de varios LLM a través de una variedad de opciones de conexión. De forma predeterminada, sus agentes utilizarán la API de OpenAI al consultar el modelo. Sin embargo, existen otras formas de permitir que sus agentes se conecten a los modelos. Por ejemplo, puede configurar sus agentes para que utilicen un modelo local a través de la herramienta Ollama.
Consulte la página Conectar CrewAI a LLM para obtener detalles sobre cómo configurar las conexiones de sus agentes con los modelos.
La ventaja de CrewAI : CrewAI se construye pensando en la producción. Ofrece la flexibilidad de los agentes conversacionales de Autogen y el enfoque de proceso estructurado de ChatDev, pero sin la rigidez. Los procesos de CrewAI están diseñados para ser dinámicos y adaptables, encajando perfectamente en los flujos de trabajo de desarrollo y producción.
Autogen : si bien Autogen funciona bien al crear agentes conversacionales capaces de trabajar juntos, carece de un concepto inherente de proceso. En Autogen, orquestar las interacciones de los agentes requiere programación adicional, que puede volverse compleja y engorrosa a medida que crece la escala de las tareas.
ChatDev : ChatDev introdujo la idea de procesos en el ámbito de los agentes de IA, pero su implementación es bastante rígida. Las personalizaciones en ChatDev son limitadas y no están orientadas a entornos de producción, lo que puede obstaculizar la escalabilidad y la flexibilidad en aplicaciones del mundo real.
CrewAI es de código abierto y agradecemos las contribuciones. Si desea contribuir, por favor:
Bifurca el repositorio.
Crea una nueva rama para tu función.
Agregue su característica o mejora.
Envía una solicitud de extracción.
¡Apreciamos su aporte!
bloqueo ultravioleta sincronización ultravioleta
venv ultravioleta
instalación previa a la confirmación
uv ejecute pytest.
uvx mypy
construcción ultravioleta
instalación de pip dist/*.tar.gz
CrewAI utiliza telemetría anónima para recopilar datos de uso con el objetivo principal de ayudarnos a mejorar la biblioteca centrando nuestros esfuerzos en las funciones, integraciones y herramientas más utilizadas.
Es fundamental comprender que NO se recopilan datos relacionados con indicaciones, descripciones de tareas, historias de fondo u objetivos de los agentes, uso de herramientas, llamadas API, respuestas, cualquier dato procesado por los agentes o secretos y variables de entorno, con la excepción de las condiciones mencionadas. . Cuando la función share_crew
está habilitada, se recopilan datos detallados que incluyen descripciones de tareas, historias de fondo u objetivos de los agentes y otros atributos específicos para proporcionar información más profunda respetando la privacidad del usuario. No ofrecemos una forma de desactivarlo ahora, pero lo haremos en el futuro.
Los datos recopilados incluyen:
Versión de CrewAI
Para que podamos entender cuántos usuarios están usando la última versión.
Versión de Python
Para que podamos decidir qué versiones soportar mejor.
Sistema operativo general (por ejemplo, número de CPU, macOS/Windows/Linux)
Entonces sabemos en qué sistema operativo deberíamos centrarnos y si podríamos crear funciones específicas relacionadas con el sistema operativo.
Número de agentes y tareas en una tripulación
Por eso nos aseguramos de realizar pruebas internas con casos de uso similares y educar a las personas sobre las mejores prácticas.
Proceso de tripulación en uso
Entender dónde debemos centrar nuestros esfuerzos
Si los agentes utilizan memoria o permiten la delegación
Comprenda si mejoramos las funciones o tal vez incluso las eliminamos
Si las tareas se ejecutan en paralelo o secuencialmente
Comprender si deberíamos centrarnos más en la ejecución paralela
Modelo de lenguaje utilizado.
Soporte mejorado en los idiomas más utilizados.
Roles de los agentes en una tripulación.
Comprender los casos de uso de alto nivel para que podamos crear mejores herramientas, integraciones y ejemplos al respecto.
Nombres de herramientas disponibles
Comprender de las herramientas disponibles públicamente cuáles se utilizan más para que podamos mejorarlas.
Los usuarios pueden optar por Más telemetría y compartir los datos de telemetría completos configurando el atributo share_crew
en True
en sus Crews. Habilitar share_crew
da como resultado la recopilación de datos detallados del equipo y de la ejecución de tareas, incluidos goal
, backstory
, context
y output
de las tareas. Esto permite una visión más profunda de los patrones de uso respetando al mismo tiempo la elección del usuario de compartir.
CrewAI se publica bajo la licencia MIT.
R: CrewAI es un marco de trabajo de vanguardia para orquestar agentes de IA autónomos que realizan juegos de rol. Permite a los agentes trabajar juntos sin problemas, abordando tareas complejas a través de inteligencia colaborativa.
R: Puedes instalar CrewAI usando pip:
equipo de instalación de pipas
Para herramientas adicionales, utilice:
instalación de pip 'crewai[herramientas]'
R: Sí, CrewAI admite varios LLM, incluidos los modelos locales. Puede configurar sus agentes para que utilicen modelos locales a través de herramientas como Ollama y LM Studio. Consulte la documentación de LLM Connections para obtener más detalles.
R: Las características clave incluyen diseño de agentes basado en roles, delegación autónoma entre agentes, administración de tareas flexible, ejecución impulsada por procesos, almacenamiento de resultados como archivos y compatibilidad con modelos propietarios y de código abierto.
R: CrewAI está diseñado pensando en la producción y ofrece una flexibilidad similar a los agentes conversacionales de Autogen y procesos estructurados como ChatDev, pero con más adaptabilidad para aplicaciones del mundo real.
R: Sí, CrewAI es de código abierto y agradece las contribuciones de la comunidad.
R: CrewAI utiliza telemetría anónima para recopilar datos de uso con fines de mejora. No se recopilan datos confidenciales (como indicaciones, descripciones de tareas o llamadas API). Los usuarios pueden optar por compartir datos más detallados configurando share_crew=True
en sus Crews.
R: Puede encontrar varios ejemplos de la vida real en el repositorio de ejemplos de CrewAI, incluidos planificadores de viajes, herramientas de análisis de acciones y más.
R: ¡Las contribuciones son bienvenidas! Puede bifurcar el repositorio, crear una nueva rama para su función, agregar su mejora y enviar una solicitud de extracción. Consulte la sección Contribución en el archivo README para obtener más detalles.