CrewAI: orquestar equipos de agentes de IA
Índice de contenidos
- Puntos clave
- El modelo mental
- Procesos, herramientas y memoria
- CrewAI frente a LangGraph y AutoGen
- Cuándo paga el patrón multi-agente
- Lo que no resuelve: la inconsistencia inherente
- Costes reales
- Conclusión
- Preguntas frecuentes
- ¿Cuánto cuesta ejecutar un crew de CrewAI en producción?
- ¿Cuándo debo pasar de CrewAI a LangGraph?
- ¿Es seguro usar el proceso jerárquico de CrewAI en producción?
- Fuentes
CrewAI es un framework Python que modela agentes de IA como un equipo con roles, objetivos y tareas concretas. Cada agente tiene un LLM base y herramientas propias. Los agentes se coordinan en una tripulación con procesos secuenciales o jerárquicos. Comparo el framework con LangGraph y AutoGen, y cuándo adoptar el patrón multi-agente.
CrewAI[1] propone una metáfora organizativa que resulta extrañamente cómoda: los agentes son empleados con un rol (analista, investigadora, redactor), trabajan sobre tareas concretas y se agrupan en una tripulación o crew. El vocabulario ya lo usamos en cualquier oficina, así que el salto mental desde "reunión de equipo" a "orquestación de LLMs" es corto. Esa es, en buena medida, la razón por la que el framework ganó tracción durante 2024. Permite describir flujos multi-agente sin formación en grafos de estados o en teoría de sistemas distribuidos.
Puntos clave
-
Los primitivos son cuatro: Agent (LLM + rol + herramientas), Task (unidad de trabajo), Crew (grupo + proceso) y Process (secuencial, jerárquico o custom).
-
El proceso secuencial es el pan de cada día; el jerárquico introduce no-determinismo que conviene entender antes de llevarlo a producción.
-
El coste de un crew sencillo de dos agentes y tres tareas con GPT-4o ronda los 0,5-2 USD por ejecución; escalado a producción, es un factor de diseño relevante.
-
CrewAI gana a LangGraph en legibilidad y velocidad de prototipado; pierde en control, serialización de estado e introspección de errores.
-
El consejo razonable de septiembre de 2024: prototipar en CrewAI, trasladar a LangGraph cuando el sistema se vuelve crítico, dejar AutoGen para exploración.
El modelo mental
Los primitivos de CrewAI son cuatro:
-
Agent: instancia de LLM con un rol (la etiqueta que lo identifica), una meta (qué intenta conseguir), un backstory (contexto narrativo que condiciona el estilo) y una lista de herramientas.
-
Task: unidad de trabajo con descripción en lenguaje natural, output esperado y agente asignado.
-
Crew: agrupa agentes y tareas, y declara un proceso de ejecución.
-
Process: puede ser secuencial (cadena directa), jerárquico (un manager delega) o custom.
La gracia está en que todo el flujo se lee como una descripción de puestos de trabajo. Un product manager puede revisar un crew y entender qué hace sin pedir traducción. Ese es el diferencial frente a LangGraph, donde el mismo flujo requiere pensar en términos de estado, transiciones y condiciones.
from crewai import Agent, Task, Crew, Process
researcher = Agent(
role="Senior Researcher",
goal="Find cutting-edge information on the given topic",
backstory="Expert researcher with years of analysis experience",
tools=[search_tool],
)
writer = Agent(
role="Tech Writer",
goal="Write clear articles for a technical audience",
backstory="Experienced writer who turns research into readable prose",
)
research_task = Task(
description="Research latest advances in LLM reasoning",
expected_output="Detailed report with key findings and citations",
agent=researcher,
)
writing_task = Task(
description="Write an article based on the research",
expected_output="1500-word polished article",
agent=writer,
context=[research_task],
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process=Process.sequential,
)
result = crew.kickoff()
Procesos, herramientas y memoria
El proceso secuencial es el más común: la salida de una tarea alimenta el contexto de la siguiente. El proceso jerárquico introduce un manager automático que decide qué tarea asignar a qué agente. Es útil cuando el flujo no es lineal, aunque añade una capa de no-determinismo que conviene validar antes de producción.
Para lógica más fina, el modo Flows (añadido en 2024) permite combinar crews con control explícito, routing condicional y listeners reactivos, cerrando parte del hueco respecto a LangGraph.
Las herramientas son funciones invocables. CrewAI incluye integraciones listas para búsqueda web (Serper, Tavily), ejecución de código y scraping, y mantiene compatibilidad con las herramientas de LangChain. Una función Python decorada basta para exponer cualquier acción del dominio propio.
La memoria es opcional: short-term (dentro de una ejecución), long-term (persiste entre runs en base vectorial) y entity memory (sigue nombres propios y referencias). Activar memoria tiene coste: más tokens, más latencia, más superficie de error. Se introduce cuando hay necesidad real, no como default.
CrewAI frente a LangGraph y AutoGen
La comparación más útil no es "cuál es mejor" sino "qué dolor resuelve cada uno":
LangGraph obliga a pensar el flujo como un grafo de estados. Tedioso al principio, indispensable en producción seria: cada transición es explícita, el estado compartido se serializa y puede inspeccionarse, los errores son localizables y se puede retomar desde un checkpoint. Para sistemas que corren miles de veces al día, LangGraph casi siempre gana.
AutoGen renuncia a la estructura rígida y deja que los agentes conversen. Funciona bien en exploración y brainstorming de tareas abiertas. El precio es que los diálogos pueden alargarse, repetirse o derivar. Depurar un chat de seis agentes es una experiencia humilde.
CrewAI ocupa el punto dulce para PoCs, workflows de negocio bien delimitados y equipos mixtos donde no todo el mundo es ingeniero. Más estructurado que AutoGen, más legible que LangGraph, a cambio de menos flexibilidad y menos tooling de depuración.
Cuándo paga el patrón multi-agente
Conviene escepticismo. Antes de montar una crew, comprueba si el problema etiquetado como "multi-agente" se resuelve igual o mejor sin ella. La alternativa es una sola llamada a un modelo capaz, una buena plantilla de prompt y una función que orquesta un par de pasos. El patrón multi-agente tiene sentido cuando:
-
Hay separación genuina de responsabilidades (un agente que busca, otro que critica, otro que sintetiza).
-
Las herramientas requeridas no caben cómodamente en un solo system prompt.
-
La trazabilidad por rol es un requisito de negocio.
Los casos donde CrewAI brilla de verdad: pipelines de contenido (research, draft, edit), triage de soporte, análisis de datos con generación de informe, due diligence básica o revisiones legales de primer pase. Para casos donde el retrieval de documentos es central, ver RAG en producción: patrones que funcionan; CrewAI puede orquestar el acceso al RAG, pero no lo reemplaza.
Lo que no resuelve: la inconsistencia inherente
Si el modelo base se desvía, tres agentes se desvían juntos. Los roles tienden a "fundirse" durante la ejecución, con el writer investigando y el researcher editando estilo, a menos que los backstories y las expected outputs sean quirúrgicamente claros.
La observabilidad sigue siendo el punto débil: ver exactamente qué prompt recibió cada agente, con qué herramientas y qué devolvió, requiere enganchar callbacks o integraciones externas como Langfuse[2]. La conexión con OpenAI Assistants API puede complementar en algunos flujos; ver también OpenAI Assistants API: agentes con estado.
Costes reales
-
Crew sencillo (2 agentes, 3 tareas, GPT-4o): 0,5-2 USD/ejecución.
-
Crew complejo (5 agentes, 10 tareas): 15-20 USD/ejecución.
Multiplicado por volumen de producción, es un factor de diseño relevante. Mezclar modelos (GPT-4o para razonamiento crítico, uno más barato para pasos rutinarios) es la optimización más eficaz. CrewAI permite que cada agente acepte su propio LLM: OpenAI, Anthropic, Groq u Ollama local.
Conclusión
Los frameworks multi-agente están en plena adolescencia: el vocabulario se asienta, los patrones que funcionan empiezan a destilarse y el coste en tokens aún duele. CrewAI acertó al escoger la metáfora más humana, y eso le ha dado adopción rápida.
Para producción seria con miles de ejecuciones diarias, el paso siguiente es LangGraph. Para exploración y descubrimiento, AutoGen. Para PoCs y workflows de negocio bien definidos con equipos mixtos, CrewAI es la opción más sensata en septiembre de 2024.
Fuentes:
- CrewAI: Sitio oficial del framework de orquestación de agentes[1]
- Langfuse: Plataforma de observabilidad para aplicaciones LLM[2]
- crewAI en GitHub: Repositorio oficial del proyecto[3]
Preguntas frecuentes
¿Cuánto cuesta ejecutar un crew de CrewAI en producción?
Un crew sencillo de dos agentes y tres tareas con GPT-4o ronda los 0,5-2 USD por ejecución; uno complejo de cinco agentes y diez tareas, entre 15 y 20 USD. Multiplicado por el volumen de producción es un factor de diseño relevante. La optimización más eficaz es mezclar modelos: GPT-4o para el razonamiento crítico y uno más barato para pasos rutinarios, ya que cada agente acepta su propio LLM (OpenAI, Anthropic, Groq u Ollama local).
¿Cuándo debo pasar de CrewAI a LangGraph?
Cuando el sistema se vuelve crítico y corre miles de veces al día. CrewAI gana en legibilidad y velocidad de prototipado, pero pierde en control, serialización de estado e introspección de errores. En LangGraph cada transición es explícita, el estado compartido se inspecciona y se puede retomar desde un checkpoint. El consejo razonable es prototipar en CrewAI, trasladar a LangGraph cuando importe, y dejar AutoGen para exploración.
¿Es seguro usar el proceso jerárquico de CrewAI en producción?
Con cautela: el proceso jerárquico introduce un manager automático que decide qué tarea asigna a qué agente. Es útil cuando el flujo no es lineal, pero añade una capa de no-determinismo que conviene validar antes de producción. El proceso secuencial, donde la salida de una tarea alimenta la siguiente, es el más común. Para lógica más fina, el modo Flows permite combinar crews con control explícito, routing condicional y listeners reactivos.