Ir para o conteúdo

Emerson Amorim

AI Agents

LangGraph vs CrewAI: como escolher a arquitetura de orquestração para agentes de IA

Compare LangGraph e CrewAI: grafos de estado versus equipes por papel. Critérios de escolha, exemplos e trade-offs para produção.

Por Emerson Amorim13 min de leitura

LangGraph modela o fluxo como grafo de estado com transições explícitas. CrewAI modela colaboração como papéis e tarefas. Escolha pelo controle de fluxo que você precisa, não pela popularidade da biblioteca.

Dois modelos mentais

AspectoLangGraphCrewAI
Abstração centralState graph / nodes / edgesAgents, roles, tasks, crew
Controle de fluxoExplícito e determinístico por arestaOrientado a delegação entre papéis
Melhor encaixeWorkflows com loops, gates e retriesTimes simulados com especialização
ObservabilidadeEstado versionável por nóTrajetória de tarefas/papéis
RiscoGrafo complexo demaisFluxo opaco se papéis improvisam

Quando LangGraph costuma ser melhor

  • Você precisa de checkpoints, replay e ramos condicionais
  • Há gates de política entre passos
  • O fluxo se parece com uma máquina de estados de negócio
  • Quer testar nós isoladamente
Esqueleto conceitual de grafo com gate
# Pseudocódigo ilustrativo
# graph.add_node("retrieve", retrieve_node)
# graph.add_node("draft", draft_node)
# graph.add_node("policy", policy_node)
# graph.add_edge("retrieve", "draft")
# graph.add_conditional_edges("draft", route_policy, {
#     "approve": "publish",
#     "revise": "draft",
#     "block": "end",
# })

Quando CrewAI costuma ser melhor

  • O problema se expressa naturalmente como papéis (pesquisador, revisor, executor)
  • Você quer prototipar colaboração multiagente rápido
  • A orquestração por tarefa é mais importante que o grafo fino
Papéis e tarefa (conceitual)
# researcher = Agent(role="Researcher", goal="Coletar evidências")
# reviewer = Agent(role="Reviewer", goal="Validar citações")
# task = Task(description="Resumir riscos do PRD", agent=researcher)
# crew = Crew(agents=[researcher, reviewer], tasks=[task])
# result = crew.kickoff()

Critério de escolha

  1. Desenhe o fluxo em papel sem framework
  2. Se o desenho é grafo com decisões: prefira LangGraph (ou equivalente)
  3. Se o desenho é equipe com handoffs: CrewAI pode acelerar
  4. Em ambos os casos, coloque Agent Harness fora do framework: permissões, tools e eval

Notas de produção

Framework não substitui política. Independentemente da escolha, isole ferramentas, imponha limites de steps, grave traces e mantenha um caminho de intervenção humana. Trocar de biblioteca depois é barato; redesenhar governança tarde é caro.