Guía de CrewAI: cómo definir Tasks, Tools y Agents, y cuándo usar procesos secuenciales o jerárquicos
CrewAI se ha consolidado como uno de los marcos más citados para construir automatizaciones con múltiples agentes. Su propuesta es concreta: dividir el trabajo en piezas claras, asignar responsabilidades y decidir cómo se coordina la ejecución. Para entenderlo bien, no basta con instalar la librería y copiar un ejemplo. Antes hay que separar conceptos.
En CrewAI, un agent no es lo mismo que una task. Del mismo modo, una tool no reemplaza al agente, sino que amplía su capacidad para actuar sobre sistemas externos. Además, el proceso que gobierna la ejecución define si el trabajo se resuelve en cadena o bajo supervisión de un manager.
En consecuencia, esa arquitectura marca la diferencia entre una demo simple y una automatización útil.
Qué es CrewAI y por qué importa su estructura
La utilidad real de CrewAI está en su modelo de orquestación. No plantea una única llamada a un modelo para producir una respuesta larga. En cambio, organiza el trabajo en roles y pasos.
Gracias a eso, es posible repartir funciones con bastante claridad: un agente investiga, otro redacta, otro revisa, otro valida y un manager decide el orden o redistribuye carga cuando el sistema lo necesita.
Por eso, el resultado se parece más a un flujo editorial, un equipo operativo o una cadena de análisis que a un único prompt gigante. Esa diferencia importa porque reduce ambigüedad, facilita el control de calidad y deja más claro dónde falla el sistema cuando una salida no sirve.
En términos prácticos, CrewAI gira alrededor de cuatro piezas:
- Agents: quién hace el trabajo.
- Tasks: qué trabajo debe hacerse.
- Tools: con qué recursos puede actuar cada agente.
- Process: cómo se coordina la ejecución entre tareas y agentes.
Si estas cuatro capas están mal definidas, la automatización se vuelve ruidosa. En cambio, cuando están bien delimitadas, el sistema gana trazabilidad y consistencia.
Qué es un Agent en CrewAI
Un Agent en CrewAI es una unidad autónoma con una misión delimitada. Tiene un rol, un objetivo, un contexto de comportamiento y, si hace falta, acceso a herramientas. No es solo una etiqueta. Más bien, es la pieza que interpreta instrucciones, decide cómo avanzar dentro de sus límites y produce una salida.
La forma más simple de entenderlo es pensar en un perfil profesional. Por ejemplo, si en una redacción hay un reportero, un editor y un verificador, en CrewAI esos papeles pueden trasladarse a agentes distintos. Cada uno trabaja con una lógica diferente, aunque compartan el mismo modelo de lenguaje por debajo.
Los campos más importantes de un Agent
Al definir un agente, lo habitual es trabajar con varios atributos. Los más relevantes son estos:
- role: el cargo o función que cumple.
- goal: qué resultado intenta conseguir.
- backstory: el contexto que moldea su criterio.
- tools: las herramientas que tiene autorizadas.
- allow_delegation: si puede o no delegar trabajo.
- verbose: si la ejecución mostrará más detalle en consola.
Ejemplo básico de Agent
from crewai import Agent
investigador = Agent(
role="Investigador de mercado",
goal="Reunir información fiable y sintetizar hallazgos clave",
backstory="Analista con experiencia en investigación competitiva y verificación de fuentes",
verbose=True
)
Este ejemplo define un agente con una identidad clara. No basta con decirle “investiga”. Conviene fijar qué tipo de investigación hace, con qué criterio y para qué fin. Cuanto más precisa es esa definición, menos probabilidades hay de que la salida termine siendo genérica.
Cómo escribir buenos Agents
Un error común es crear agentes demasiado amplios: “experto total”, “consultor premium” o “especialista en todo”. Ese tipo de definición suele degradar la precisión. Por el contrario, CrewAI funciona mejor cuando cada agente tiene un ámbito de decisión acotado.
La pregunta útil no es “qué tan potente quiero que sea”, sino “qué responsabilidad exacta debe asumir”.
Una buena definición de agente suele responder cuatro preguntas:
- ¿Cuál es su trabajo principal?
- ¿Qué criterio usa para decidir?
- ¿Qué no debería hacer?
- ¿Qué nivel de autonomía necesita?
Si esa frontera no está clara, el agente invade tareas ajenas, duplica trabajo o produce respuestas que mezclan análisis, ejecución y revisión en el mismo paso.
Qué es una Task en CrewAI
La Task es la unidad concreta de trabajo. Mientras el agente representa a quien ejecuta, la tarea representa el encargo. En CrewAI, una tarea describe lo que hay que hacer, qué salida se espera y quién debería resolverlo.
En otras palabras, es la pieza que traduce una intención de negocio o de operación en una instrucción accionable.
La calidad de una automatización depende mucho de cómo estén redactadas las tareas. Una mala task suele estar escrita como un pedido vago: “haz un informe”. En cambio, una buena task define alcance, formato, criterio y objetivo.
Elementos habituales de una Task
- description: la instrucción principal.
- expected_output: cómo debe lucir el resultado.
- agent: el agente que la ejecuta.
- tools: herramientas específicas permitidas para esa tarea.
- context: información adicional o resultados previos que alimentan la ejecución.
Ejemplo básico de Task
from crewai import Task
tarea_investigacion = Task(
description="Analiza a tres competidores directos y resume sus precios, posicionamiento y propuesta de valor.",
expected_output="Un informe comparativo en viñetas con tres secciones: precios, mensaje comercial y debilidades observables.",
agent=investigador
)
La diferencia entre la descripción y la salida esperada no es decorativa. La descripción dice qué hacer. Por su parte, la salida esperada reduce margen de interpretación. Así, resulta más fácil que el sistema entregue algo utilizable desde la primera ejecución.
Cómo redactar Tasks que funcionen
Una tarea eficaz suele incluir cinco capas:
- Acción: qué debe hacer el agente.
- Objeto: sobre qué debe actuar.
- Criterio: con qué foco debe analizar o decidir.
- Formato: cómo debe devolver el resultado.
- Límite: qué no debe incluir o hasta dónde debe llegar.
Por ejemplo, no es lo mismo pedir “resume este mercado” que pedir “resume el mercado en 600 palabras, dividido en tamaño, actores dominantes, barreras de entrada y oportunidades, evitando lenguaje promocional”. En el segundo caso, la tarea ya viene con una estructura que reduce desvíos.
Malas prácticas frecuentes al definir tareas
- Redactar tareas demasiado abiertas.
- Mezclar en una sola task investigación, redacción, revisión y publicación.
- No especificar el formato de salida.
- Asignar la tarea al agente equivocado.
- Dar a la tarea más herramientas de las que necesita.
Cuando una task fracasa, muchas veces no es porque el modelo no sirva. Más bien, el problema es que el encargo estaba mal planteado.
Qué es una Tool en CrewAI

Las Tools son los instrumentos que un agente puede usar para interactuar con el exterior o ejecutar acciones concretas. Un agente puede pensar, razonar y producir texto, pero si no tiene herramientas, su capacidad operativa queda limitada al contexto que ya recibió.
Por eso, las tools amplían ese margen.
En la práctica, una tool puede servir para buscar en la web, consultar una base de datos, leer un archivo, invocar una API, ejecutar código o conectarse con servicios externos. No son un adorno. Al contrario, funcionan como el puente entre el razonamiento y la acción.
Por qué conviene limitar las tools
Dar acceso a todas las herramientas a todos los agentes suele ser una mala decisión. Un investigador puede necesitar búsqueda y lectura de documentos. En cambio, un redactor quizá solo necesite recibir contexto ya procesado. Además, un manager no necesariamente debe usar la misma caja de herramientas que un ejecutor técnico.
Limitar tools por agente y, si hace falta, por tarea, aporta tres ventajas claras:
- Reduce errores: menos opciones, menos desvíos.
- Mejora seguridad: cada agente accede solo a lo necesario.
- Facilita auditoría: es más fácil rastrear por qué se hizo algo.
Ejemplo conceptual de Tool
from crewai import Agent
from crewai_tools import SerperDevTool
busqueda_web = SerperDevTool()
investigador = Agent(
role="Investigador de tendencias",
goal="Identificar datos recientes y contrastar fuentes",
backstory="Analista centrado en evidencia y contexto",
tools=[busqueda_web],
verbose=True
)
En este ejemplo, el agente gana una capacidad nueva: buscar información. Sin esa tool, dependería solo del contexto inicial del prompt. Con ella, puede ampliar evidencia antes de responder.
Cuándo una tool debe vivir en el Agent y cuándo en la Task
Hay dos enfoques útiles:
- Definir tools en el agente cuando forman parte estable de su trabajo.
- Definir tools en la tarea cuando quieres restringir una ejecución específica.
La primera opción sirve cuando el agente siempre opera con ese conjunto de recursos. La segunda, en cambio, resulta útil cuando un mismo agente participa en escenarios distintos y no quieres que use todas sus capacidades en todas las tareas.
Cómo se relacionan Agents, Tasks y Tools
La relación entre estas tres capas puede resumirse así:
- El Agent aporta identidad, criterio y comportamiento.
- La Task define el encargo concreto.
- La Tool habilita la acción sobre fuentes o sistemas.
Si quieres una analogía operativa, el agente es la persona, la tarea es la orden de trabajo y la herramienta es el software o el instrumento con el que actúa. CrewAI permite modelar esa combinación con bastante precisión.
Lo importante es no confundir responsabilidades. Una tarea no debe describir la personalidad del agente. Del mismo modo, una herramienta no debe reemplazar el criterio de la tarea. Y el agente no debería cargar con instrucciones dispersas que en realidad pertenecen al encargo puntual.
Qué es un Crew y cómo entra en juego el proceso

Una vez definidos agentes y tareas, CrewAI necesita una estructura que los agrupe. Ahí aparece el Crew, que es la unidad de coordinación. En un crew se declara qué agentes participan, qué tareas deben ejecutarse y cuál será el proceso que organiza el trabajo.
En términos simples, el crew es el contenedor operativo. Sin él, solo hay piezas sueltas. Con él, aparece una lógica de ejecución.
Ejemplo mínimo de Crew
from crewai import Crew, Process
crew = Crew(
agents=[investigador],
tasks=[tarea_investigacion],
process=Process.sequential,
verbose=True
)
Ese bloque ya define una automatización básica: un agente, una tarea y un proceso secuencial. A partir de ahí, se puede escalar a equipos con varios agentes y cadenas de ejecución más complejas.
Proceso secuencial en CrewAI: qué es y cuándo conviene
El proceso secuencial es la forma más directa de orquestación. Las tareas se ejecutan una detrás de otra, siguiendo el orden definido en la lista. La salida de una puede alimentar a la siguiente. No hay un manager que redistribuya trabajo sobre la marcha. En este caso, la lógica ya está establecida de antemano.
Se trata de un esquema lineal. Primero ocurre A, luego B y después C. Por eso, resulta especialmente útil cuando el flujo está claro y cada etapa depende de la anterior.
Cuándo usar un proceso secuencial
- Cuando el flujo de trabajo tiene pasos fijos.
- Cuando cada tarea necesita el resultado previo.
- Cuando la operación es repetible y predecible.
- Cuando quieres más control que autonomía.
- Cuando estás construyendo una primera versión y quieres depurar rápido.
Ejemplo típico de flujo secuencial
Un caso clásico podría ser este:
- Un agente investiga información.
- Otro agente redacta un informe con ese material.
- Un tercero revisa estilo y consistencia.
En ese escenario, el orden importa. No tiene sentido redactar antes de investigar ni revisar antes de que exista un borrador. Por eso, el proceso secuencial encaja sin fricción.
Ejemplo de implementación
from crewai import Agent, Task, Crew, Process
investigador = Agent(
role="Investigador",
goal="Reunir datos y contexto",
backstory="Especialista en búsqueda y síntesis",
verbose=True
)
redactor = Agent(
role="Redactor",
goal="Convertir información en un texto claro y ordenado",
backstory="Editor con foco en claridad y estructura",
verbose=True
)
editor = Agent(
role="Editor",
goal="Corregir errores, eliminar ruido y mejorar precisión",
backstory="Revisor con criterio periodístico",
verbose=True
)
t1 = Task(
description="Investiga el mercado de software de atención al cliente para pymes.",
expected_output="Resumen con actores principales, tendencias y oportunidades.",
agent=investigador
)
t2 = Task(
description="Redacta un artículo de 900 palabras con base en la investigación previa.",
expected_output="Artículo estructurado con introducción, desarrollo y cierre.",
agent=redactor
)
t3 = Task(
description="Edita el artículo, corrige inconsistencias y mejora el ritmo de lectura.",
expected_output="Versión final limpia, lista para publicación.",
agent=editor
)
crew = Crew(
agents=[investigador, redactor, editor],
tasks=[t1, t2, t3],
process=Process.sequential,
verbose=True
)
resultado = crew.kickoff()
Ventajas del proceso secuencial
- Es fácil de entender y depurar.
- Reduce incertidumbre en la ejecución.
- Hace más simple la trazabilidad del flujo.
- Permite controlar con precisión qué pasa en cada etapa.
Limitaciones del proceso secuencial
- Es menos flexible si el contexto cambia durante la ejecución.
- No redistribuye tareas dinámicamente.
- Puede resultar rígido en proyectos complejos o abiertos.
Proceso jerárquico en CrewAI: cómo funciona y qué cambia
El proceso jerárquico introduce una figura de coordinación. En vez de ejecutar una lista fija de tareas en cadena, CrewAI incorpora un manager que organiza el trabajo, delega tareas, valida resultados y decide cómo avanzar.
En consecuencia, se trata de una lógica más cercana a una estructura de supervisión.
Este modelo es útil cuando no basta con una secuencia rígida y hace falta alguien, o algo, que tome decisiones intermedias. El manager actúa como capa de control y reparto.
Qué hace un manager en un proceso jerárquico
- Analiza el objetivo general.
- Decide cómo repartir el trabajo entre agentes.
- Revisa si las salidas cumplen el estándar esperado.
- Coordina la progresión del flujo.
- Puede reasignar o reencuadrar tareas según el resultado.
Eso no significa que el manager lo haga todo. Su función es orquestar, no sustituir a los especialistas.
Cuándo conviene usar un proceso jerárquico
- Cuando el proyecto tiene varias ramas de trabajo.
- Cuando no quieres preasignar todo de forma rígida.
- Cuando necesitas supervisión y validación central.
- Cuando el problema admite distintos caminos de resolución.
- Cuando el sistema debe adaptarse a resultados parciales.
Ejemplo de escenario jerárquico
Imagina una automatización para producir un informe de mercado complejo. Puede requerir investigación, contraste de fuentes, síntesis ejecutiva, revisión de sesgos y armado de conclusiones. En ese caso, un manager puede decidir qué agente interviene primero, quién debe ampliar una parte y qué salida no cumple todavía con el estándar mínimo.
Ejemplo de implementación con manager
from crewai import Agent, Task, Crew, Process
analista = Agent(
role="Analista de datos",
goal="Interpretar información cuantitativa y detectar patrones",
backstory="Especialista en análisis comparativo y lectura de indicadores",
verbose=True
)
investigador = Agent(
role="Investigador sectorial",
goal="Encontrar contexto, actores y señales del mercado",
backstory="Perfil orientado a fuentes, contexto y verificación",
verbose=True
)
redactor = Agent(
role="Redactor ejecutivo",
goal="Convertir hallazgos en un informe claro para dirección",
backstory="Editor acostumbrado a documentos de negocio",
verbose=True
)
objetivo_general = Task(
description="Desarrolla un informe de mercado para evaluar oportunidades de expansión en el sector SaaS para pymes.",
expected_output="Documento ejecutivo con hallazgos, riesgos, oportunidades y recomendación final."
)
crew = Crew(
agents=[analista, investigador, redactor],
tasks=[objetivo_general],
process=Process.hierarchical,
manager_llm="gpt-4o",
verbose=True
)
resultado = crew.kickoff()
En este enfoque, el manager toma un papel activo en la coordinación. Por tanto, no hace falta que cada paso quede cerrado desde el inicio con la misma rigidez que en el flujo secuencial.
Diferencias reales entre secuencial y jerárquico
| Aspecto | Secuencial | Jerárquico |
|---|---|---|
| Orden de ejecución | Fijo | Coordinado por manager |
| Flexibilidad | Media o baja | Más alta |
| Delegación dinámica | No es el foco principal | Sí |
| Supervisión central | No | Sí |
| Curva de diseño | Más simple | Más exigente |
| Casos ideales | Flujos lineales y repetibles | Proyectos complejos o variables |
Cómo elegir entre proceso secuencial y jerárquico
No hay una respuesta única. La elección depende del tipo de trabajo. Aun así, una regla práctica puede ayudarte: si ya sabes con claridad qué paso va antes y cuál va después, empieza por secuencial; si necesitas coordinación adaptativa, pasa a jerárquico.
Además, conviene pensar en los costes de diseño. Un proceso jerárquico no solo da más flexibilidad. También exige más criterio al definir agentes, más control sobre tools y más atención al rol del manager. Por eso, si el problema puede resolverse con una cadena simple, forzar una jerarquía no siempre compensa.
Una guía práctica para decidir
- Usa secuencial cuando el flujo es estable, el orden está claro y cada etapa depende de la anterior.
- Usa jerárquico cuando el trabajo requiere repartir tareas según contexto, revisar calidad de forma central y adaptar el camino de ejecución.
Ejemplo completo: automatización editorial con CrewAI
Una forma sencilla de aterrizar estos conceptos es pensar en un flujo editorial. Supongamos que un medio o una empresa quiere automatizar la producción de una nota de análisis semanal sobre un sector concreto.
Versión secuencial
La versión secuencial podría organizarse así:
- El investigador reúne datos y contexto.
- Después, el redactor arma el borrador.
- Por último, el editor pule el texto final.
Es un flujo lógico y lineal. Funciona bien si el formato de salida está estandarizado y la cadena no cambia demasiado entre una semana y otra.
Versión jerárquica
En cambio, la versión jerárquica tendría un manager que evalúa si la semana amerita más foco en regulación, en competencia o en precios. A partir de eso, asigna prioridad a distintos agentes. Además, podría pedir una vuelta extra de verificación si detecta puntos débiles antes de aprobar la salida final.
La diferencia de fondo es clara: el flujo jerárquico no solo ejecuta; también decide cómo ejecutar.
Errores comunes al empezar con CrewAI
Muchas implementaciones fallan no por un problema técnico, sino por errores de diseño. Estos son algunos de los más habituales:
1. Crear agentes sin especialización
Si todos los agentes se parecen, la división del trabajo es artificial. Como resultado, el sistema pierde sentido operativo y duplica capacidades sin necesidad.
2. Escribir tareas como prompts vagos
Una task no debería ser una consigna difusa. Necesita objetivos, formato y criterio de salida.
3. Entregar demasiadas tools
Cuando un agente puede hacerlo todo, suele hacer demasiado. Por eso, la restricción bien aplicada mejora control.
4. Elegir un proceso complejo demasiado pronto
Arrancar con un esquema jerárquico en problemas simples complica la depuración. En muchos casos, conviene validar primero la lógica secuencial.
5. No separar producción y revisión
Un agente que investiga, redacta, revisa y aprueba en el mismo paso concentra demasiado poder y deja menos margen para detectar fallos.
Buenas prácticas para diseñar automatizaciones con CrewAI
Más allá de la sintaxis, hay decisiones de arquitectura que pesan en el resultado final. Estas prácticas suelen dar mejores resultados:
- Define agentes con funciones reales, no etiquetas rimbombantes.
- Escribe tareas con criterios verificables.
- Limita herramientas por necesidad, no por entusiasmo.
- Empieza por flujos pequeños y luego escala.
- Separa generación, análisis y revisión cuando el caso lo requiera.
- Usa el proceso jerárquico cuando de verdad haya una necesidad de coordinación dinámica.
En definitiva, la automatización mejora cuando el diseño se parece más a una operación real y menos a una acumulación de instrucciones ambiguas.
Conclusión

Entender CrewAI pasa por distinguir sus piezas básicas. Un agent es el ejecutor con criterio. Una task es el encargo que fija objetivo y formato. Una tool es la capacidad adicional para actuar sobre información o sistemas externos. Y el process define cómo se organiza el conjunto.
El proceso secuencial sirve para cadenas previsibles, donde cada paso sigue al anterior con lógica estable. En cambio, el proceso jerárquico encaja mejor cuando hace falta supervisión, delegación y validación central. Por eso, elegir bien entre uno y otro no es un detalle técnico menor: condiciona la calidad, el control y la escalabilidad de la automatización.
Quien diseñe bien estas capas tendrá algo más que una demo funcional. Tendrá una estructura de trabajo que puede crecer, corregirse y sostener resultados con menos improvisación.
