CrewAI: orquestar equipos de agentes de IA
Actualizado: 2026-05-03
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 ha ganado tracción tan rápido a lo largo de 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 — útil cuando el flujo no es lineal, pero 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. Muchos problemas etiquetados como “multi-agente” se resuelven igual o mejor con 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. Es fácil que los roles “se fundan” durante la ejecución — el writer empieza a investigar, el researcher edita 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 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.