LangGraph reduce la variabilidad de salida en un 77% a costa de tokens y latencia
Un autor comparó Strands, LangGraph y CrewAI ejecutando 27 agentes idénticos y descubrió que el bucle explícito de LangGraph estabiliza el texto pero duplica el consumo.

El autor construyó el mismo agente de noticias tecnológicas tres veces –una en Strands, otra en LangGraph y la última en CrewAI– y lo ejecutó 27 veces bajo un proxy local que registraba cada llamada a LLM. El objetivo era medir de forma idéntica tokens, latencia y variabilidad de la salida, ya que las comparativas habituales carecen de datos concretos.
Diferencias de implementación
- Strands (modelo‑conducido) entrega al modelo dos herramientas y un prompt del sistema; el LLM decide qué herramienta invocar y cuándo. El código ocupa 78 líneas y su instalación pesa 262 MB (81 paquetes).
- LangGraph (grafo‑conducido) define un estado tipado, nodos, aristas y la condición de bucle. El modelo solo actúa dentro de los nodos. El script tiene 115 líneas y su dependencia ocupa 71 MB (45 paquetes).
- CrewAI (rol‑conducido) modela agentes como miembros de un equipo con rol, objetivo y backstory; la orquestación la gestiona Crew. Con 110 líneas ocupa 699 MB (142 paquetes).
Métricas obtenidas
| Escenario | Strands (spread) | LangGraph (spread) | CrewAI (spread) |
|---|---|---|---|
| base | 15 | 13 | 0 |
| tight (verifica/revisa) | 11 | 3 | 2 |
| drift (cambio de nombre de argumento) | 12 | 16 | 0 |
En el caso "tight", LangGraph redujo la dispersión de palabras de 13 a 3, lo que equivale a una caída del 77 %. Sin embargo, el número de llamadas a LLM pasó de 1 a 2 y el consumo de tokens se disparó de 2 007 a 5 262, con una latencia que aumentó de 4,7 s a 11,8 s (≈2,5×).
CrewAI mantuvo una salida idéntica en todas sus ejecuciones (96 palabras) gracias a temperature=0 y a la estructura de rol, pero su patrón de llamadas era fijo: 4 llamadas por ejecución, sin adaptarse a la necesidad de revisar.
Strands mostró un comportamiento adaptativo: en los escenarios "tight" realizó entre 3 y 5 llamadas a LLM, ajustando la longitud del borrador según el conteo de palabras.
Observaciones sobre la robustez
Los tres frameworks manejaron sin errores el cambio de nombre del argumento (text → content). Un cambio más drástico (tipo de dato, eliminación de argumentos) probablemente rompería el enfoque modelo‑conducido de Strands, mientras que LangGraph, al separar la lógica de llamadas del prompt, seguiría funcionando.
Conclusiones
LangGraph ofrece determinismo y menor variabilidad a costa de mayor consumo de tokens y latencia, ideal para flujos complejos donde la consistencia es crítica. CrewAI permite prototipos rápidos con bajo número de líneas pero con un coste de peso de dependencia. Strands brinda adaptabilidad y menor carga de tokens, aunque con mayor variabilidad de salida.
El código y los resultados están disponibles en el repositorio del autor, que incluye el proxy de registro y scripts de análisis.

