Seleccionando el mejor framework para agentes

Cuando construyes un agente, el motor (el modelo) es lo de menos. El trabajo real está en el arnés: el loop que arma el prompt, llama herramientas, recibe el resultado, vuelve a llamar al modelo, y maneja memoria y streaming. Es el código que vive alrededor del modelo. Y en Node/TypeScript hubo durante un par de años una pequeña guerra por ver quién sería el arnés estándar.
La buena noticia: en 2026 esa guerra ya está, en lo esencial, resuelta.
Hay un ganador de sustrato
El Vercel AI SDK (ai) se volvió la base de facto del ecosistema JS/TS — del orden de 20 millones de descargas al mes, y lo más revelador: los demás frameworks se construyen encima de él. No es que un único arnés haya sido coronado; es que casi todos comparten la misma fundación. Por eso la decisión no es "¿cuál framework?", sino "¿en qué capa quiero vivir?".
Modelos abiertos: nada de esto exige un framework
Si corres un modelo abierto vía un endpoint OpenAI-compatible (como el que expone Ollama), tienes dos caminos honestos:
-
Raw loop. Si el arnés es tu diferenciador, escríbelo. Son ~250 líneas: hablas el endpoint, defines tus herramientas, iteras el tool-calling y persistes la memoria. Lo más minimalista posible, y dueño de todo. El costo es que tú implementas el streaming real y la compactación de contexto.
-
Vercel AI SDK. Si prefieres dejar de mantener ese plumbing, es el punto exacto donde "moderno" y "minimalista" coinciden:
Eso reemplaza casi todo un loop manual —incluido el contador de iteraciones— y te regala el streaming token a token. Sigue siendo agnóstico al proveedor.
Un matiz importante: el arnés no arregla qué tan bien un modelo llama herramientas. Eso es del modelo, no del framework. Cambiar de arnés te quita boilerplate; no convierte a un modelo débil en uno bueno para tool-calling.
¿Y para ser compatible con MCP?
Aquí es donde la balanza se inclina con fuerza. Primero, lo más importante: MCP es del lado del arnés, no del modelo. El modelo solo ve más funciones disponibles; el cliente que habla el protocolo vive en tu proceso. No existe un "MCP del modelo".
- Con un raw loop, agregas el SDK de MCP, listas las herramientas del servidor, conviertes su schema al formato de function-calling y ruteas las llamadas. Es glue que tú mantienes.
- Con el Vercel AI SDK,
createMCPClient(ya estable) hace esa conversión y ese ruteo por ti. Soporta transporte stdio (local), HTTP (recomendado para producción) y SSE.
Eso es precisamente lo que con el loop crudo tendrías que escribir a mano. MCP es el argumento más fuerte a favor del AI SDK.
Un detalle que sí depende del modelo, no del arnés: el número de herramientas. Los modelos abiertos se degradan cuando la lista crece demasiado. Un servidor MCP puede exponer 30 o 40 tools; no los vuelques todos. Cura el subconjunto que el modelo realmente necesita para la tarea.
El veredicto
Si tu filosofía es minimalista al máximo —la nuestra lo es— la jugada es clara:
- Quédate con el raw loop solo si el arnés en sí es el producto que quieres pulir.
- Para todo lo demás, el Vercel AI SDK. Te da streaming real, compatibilidad MCP de fábrica, y borra cientos de líneas de plumbing, sin arrastrarte a territorio de framework pesado.
Lo que evitaríamos: los frameworks de grafos y máquinas de estado. Son potentes, pero su complejidad es justo lo que un buen arnés debería ahorrarte. La lección que más nos ha costado aprender es que un arnés que empieza simple y "madura" hacia decenas de miles de líneas no es madurez: es deuda. La meta no es el framework más capaz. Es el arnés más pequeño que hace el trabajo.