LangChain vs LlamaIndex
Los dos frameworks pioneros en el desarrollo de aplicaciones LLM: LangChain, de propósito general, y LlamaIndex, centrado en la conexión de datos. ¿Cuál deberías elegir para desarrollar RAG y agentes de IA?
Runtime de orquestación de agentes de bajo nivel, basado en grafos
Orquestación en producción con equipos de agentes basados en roles + Flows orientados a eventos
No hay un ganador absoluto: la forma de tu flujo de trabajo decide. Si tu arquitectura es cíclica/condicional, LangGraph es superior, sobre todo en flujos regulados. Si quieres un 'equipo de roles' con poco código, CrewAI llega al resultado por el camino más corto; si vas a conectarte a MCP con frecuencia, el DSL dedicado de CrewAI es una ventaja. En 2026 hay una tercera opción: para una automatización simple, puede que no necesites ningún framework.
| Categoría | LangGraph | CrewAI |
|---|---|---|
| Rendimiento | 8/10 | 8/10 |
| Facilidad de aprendizaje | 5/10 | 8/10 |
| Ecosistema | 8/10 | 7/10 |
| Comunidad | 8/10 | 8/10 |
| Mercado laboral | 7/10 | 6/10 |
| A prueba de futuro | 9/10 | 8/10 |
# LangGraph — flujo de agente simple con checkpoint y aprobación humana
from langgraph.graph import StateGraph, START, END
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.types import interrupt, Command
from typing import TypedDict
class State(TypedDict):
input: str
approved: bool
result: str
def draft_step(state: State) -> dict:
return {"result": f"draft for: {state['input']}"}
def approval_step(state: State) -> dict:
decision = interrupt({"question": "Approve this draft?", "draft": state["result"]})
return {"approved": decision == "yes"}
graph = StateGraph(State)
graph.add_node("draft", draft_step)
graph.add_node("approval", approval_step)
graph.add_edge(START, "draft")
graph.add_edge("draft", "approval")
graph.add_edge("approval", END)
app = graph.compile(checkpointer=InMemorySaver())
config = {"configurable": {"thread_id": "run-1"}}
app.invoke({"input": "weekly report"}, config=config)
# continúa donde quedó después de la aprobación humana:
app.invoke(Command(resume="yes"), config=config)# CrewAI — Flow + Crew, flujo con aprobación humana mediante @human_feedback (crewai >= 1.8.0)
from crewai import Agent, Crew, Task
from crewai.flow.flow import Flow, listen, start
from crewai.flow.human_feedback import HumanFeedbackResult, human_feedback
writer = Agent(
role="Content Writer",
goal="Draft a short weekly report",
backstory="You are a concise technical writer.",
)
draft_task = Task(
description="Write a one-paragraph weekly report about {topic}",
expected_output="A one-paragraph report",
agent=writer,
)
class ReportFlow(Flow):
@start()
def create_draft(self):
crew = Crew(agents=[writer], tasks=[draft_task])
return str(crew.kickoff(inputs={"topic": "deployment metrics"}))
# emit + llm: el feedback en texto libre se reduce a un único resultado
@listen(create_draft)
@human_feedback(
message="Approve this draft, or say what needs changing:",
emit=["approved", "rejected"],
llm="gpt-4o-mini",
default_outcome="rejected",
)
def review_draft(self, draft):
return draft
# HumanFeedbackResult se pasa al listener, no al método decorado
@listen("approved")
def publish(self, result: HumanFeedbackResult):
print(f"Published: {result.output}")
@listen("rejected")
def discard(self, result: HumanFeedbackResult):
print(f"Rejected: {result.feedback}")
flow = ReportFlow()
flow.kickoff()No hay un ganador absoluto: la forma de tu flujo de trabajo decide. Si tu arquitectura es cíclica/condicional, LangGraph es superior, sobre todo en flujos regulados. Si quieres un 'equipo de roles' con poco código, CrewAI llega al resultado por el camino más corto; si vas a conectarte a MCP con frecuencia, el DSL dedicado de CrewAI es una ventaja. En 2026 hay una tercera opción: para una automatización simple, puede que no necesites ningún framework.
Solicita una consultoría gratuitaAmbos se desarrollan activamente con foco en producción. LangGraph tiene 42.222 estrellas en GitHub, ejecución duradera (durable execution) y un muro de logos 'trusted by' en su página de producto con Cisco, Nvidia, ServiceNow y Klarna; CrewAI tiene 58.978 estrellas y, con la recomendación oficial 'production-ready application, start with a Flow', comparte casos de estudio de PwC, IBM y AWS. Ninguno de los dos sitios oficiales afirma con rotundidad ser 'más adecuado' — debes decidir según la densidad de ramificación/ciclos de tu flujo.