- ¿Qué es el SDK de IA de Vercel?
- AI SDK Core: generateText, streamText y generateObject
- Herramientas del SDK de IA: Llamadas a funciones y uso de herramientas
- Construcción de bucles de agente de IA con el SDK de IA de Vercel
- SDK de IA React: Hook useChat e integración con Next.js
- Cómo usar Novita AI con el SDK de IA de Vercel
- Elegir un proveedor de LLM para el SDK de IA de Vercel
- Conclusión
- Preguntas frecuentes
- Artículos recomendados
El SDK de IA de Vercel es un conjunto de herramientas TypeScript para construir aplicaciones de inteligencia artificial. Maneja generación de texto, streaming, salidas estructuradas, llamadas a herramientas y bucles de agente de varios pasos a través de una única API unificada, y funciona con cualquier proveedor importante de LLM. Si alguna vez intentaste conectar OpenAI o Anthropic directamente en una aplicación Next.js y terminaste manteniendo tres implementaciones de streaming diferentes, este SDK resuelve ese problema.
Esta guía cubre las capacidades principales del SDK, cómo conectarlo a la API de LLM compatible con OpenAI de Novita AI, y dónde encajan los flujos de trabajo de agente para desarrolladores que construyen algo más que un simple chatbot.
¿Qué es el SDK de IA de Vercel?
El SDK de IA de Vercel (paquete: ai en npm) es una biblioteca de código abierto que abstrae las diferencias entre los proveedores de LLM. En lugar de aprender protocolos de streaming separados para OpenAI, Anthropic y Google, llamas a las mismas funciones generateText, streamText o generateObject y cambias de proveedor modificando una sola importación.
El SDK se entrega en dos capas:
- AI SDK Core maneja las interacciones con el modelo: generación de texto, streaming, objetos estructurados, llamadas a herramientas, embeddings y bucles de agente.
- AI SDK UI proporciona hooks de React (
useChat,useCompletion,useObject,useAssistant) además de adaptadores para Next.js, SvelteKit y Nuxt que gestionan el estado de streaming en el navegador.
También hay un paquete @ai-sdk/openai-compatible para conectarse a cualquier proveedor que implemente el formato de Chat Completions de OpenAI, que es como se integra Novita AI.
El SDK funciona en Node.js, Deno, entornos de ejecución edge (Cloudflare Workers, Vercel Edge) y entornos de navegador.
AI SDK Core: generateText, streamText y generateObject
Instala el SDK y un paquete de proveedor:
npm install ai @ai-sdk/openai
generateText
Para completaciones sin streaming — procesamiento por lotes, clasificación, generación única:
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
const { text } = await generateText({
model: openai('gpt-4o-mini'),
prompt: 'Explica en dos oraciones cómo funcionan los embeddings de LLM.',
});
console.log(text);
streamText
Para interfaces de chat donde la latencia importa:
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
const result = streamText({
model: openai('gpt-4o-mini'),
messages: [
{ role: 'user', content: 'Guíame a través de la configuración de una aplicación Next.js.' },
],
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
generateObject
Cuando necesitas una salida JSON estructurada en lugar de texto sin formato — la validación del esquema se maneja automáticamente usando Zod:
import { generateObject } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';
const { object } = await generateObject({
model: openai('gpt-4o-mini'),
schema: z.object({
name: z.string(),
skills: z.array(z.string()),
experienceLevel: z.enum(['junior', 'mid', 'senior']),
}),
prompt: 'Genera un perfil ficticio de un ingeniero de software.',
});
console.log(object.name, object.skills);
El SDK maneja la inyección de la instrucción del sistema necesaria para forzar al modelo a generar JSON válido y reintenta en caso de salida malformada.
Herramientas del SDK de IA: Llamadas a funciones y uso de herramientas
Las herramientas permiten que los modelos llamen a funciones externas — APIs de búsqueda, consultas a bases de datos, calculadoras — durante una generación. El parámetro tools del SDK toma un objeto donde cada clave se convierte en una función invocable:
import { generateText, tool } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';
const { text, toolCalls } = await generateText({
model: openai('gpt-4o-mini'),
tools: {
getWeather: tool({
description: 'Obtener el clima actual de una ubicación',
parameters: z.object({
city: z.string().describe('Nombre de la ciudad'),
unit: z.enum(['celsius', 'fahrenheit']).default('celsius'),
}),
execute: async ({ city, unit }) => {
// Reemplazar con una llamada real a una API meteorológica
return { city, temperature: 22, unit, condition: 'soleado' };
},
}),
},
prompt: '¿Qué tiempo hace ahora mismo en Tokio?',
});
console.log(text);
El helper tool() proporciona inferencia de tipos desde el esquema Zod a los parámetros de la función execute. No es necesario analizar JSON manualmente.
Llamadas a herramientas de varios pasos
Por defecto, generateText se detiene después de una ronda de llamadas a herramientas. Establece maxSteps para permitir que el modelo use los resultados de las herramientas en razonamientos posteriores:
const { text } = await generateText({
model: openai('gpt-4o'),
maxSteps: 5,
tools: { getWeather, searchWeb, lookupCalendar },
prompt: 'Planifica mis actividades al aire libre para este fin de semana en Berlín.',
});
El SDK maneja automáticamente el bucle de llamada a herramienta → resultado → continuación. Cada paso se expone mediante onStepFinish si necesitas visibilidad del razonamiento intermedio.
Construcción de bucles de agente de IA con el SDK de IA de Vercel
Un agente en el SDK de IA es un modelo que se ejecuta en un bucle con herramientas hasta que decide que tiene suficiente información para responder. El patrón es el mismo que el de las llamadas a herramientas de varios pasos, pero con más herramientas y un maxSteps más largo:
import { generateText, tool } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';
const result = await generateText({
model: openai('gpt-4o'),
maxSteps: 10,
system: 'Eres un asistente de investigación. Usa las herramientas disponibles para responder de manera exhaustiva.',
prompt: '¿Cuáles son las principales diferencias entre Llama 3.1 y Qwen3?',
tools: {
search: tool({
description: 'Buscar en la web información actual',
parameters: z.object({ query: z.string() }),
execute: async ({ query }) => searchWeb(query),
}),
summarize: tool({
description: 'Resumir una URL',
parameters: z.object({ url: z.string() }),
execute: async ({ url }) => fetchAndSummarize(url),
}),
},
onStepFinish({ stepType, toolCalls, toolResults }) {
console.log('Paso:', stepType, toolCalls?.map(t => t.toolName));
},
});
Para canalizaciones de agente en producción, conecta Novita AI como backend del modelo para controlar el costo y el rendimiento a escala — cubierto en la siguiente sección.
SDK de IA React: Hook useChat e integración con Next.js
El hook useChat gestiona el estado del chat en streaming sin código repetitivo:
// app/chat/page.tsx
'use client';
import { useChat } from 'ai/react';
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
api: '/api/chat',
});
return (
<div>
{messages.map(m => (
<div key={m.id} className={m.role === 'user' ? 'user' : 'assistant'}>
{m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input
value={input}
onChange={handleInputChange}
placeholder="Pregunta algo..."
disabled={isLoading}
/>
<button type="submit" disabled={isLoading}>Enviar</button>
</form>
</div>
);
}
El manejador de ruta correspondiente:
// app/api/chat/route.ts
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai('gpt-4o-mini'),
messages,
});
return result.toDataStreamResponse();
}
toDataStreamResponse() maneja el protocolo de stream de IA de Vercel, que useChat en el cliente entiende de forma nativa. Para transmitir objetos estructurados desde una API, cambia useChat por useObject y streamText por streamObject.
Cómo usar Novita AI con el SDK de IA de Vercel
Novita AI proporciona una API compatible con OpenAI en https://api.novita.ai/v3/openai, lo que la convierte en un reemplazo directo para cualquier SDK que use el formato de Chat Completions de OpenAI, incluido el SDK de IA de Vercel.
Por qué usar Novita AI con el SDK de IA
Novita AI aloja más de 70 modelos de código abierto — Llama 3.3 70B, Qwen3, DeepSeek V3, Mistral y Gemma 3 — a través de un único endpoint de API. Sin necesidad de gestionar infraestructura GPU. Para flujos de trabajo de agente, la API serverless escala desde modelos pequeños de instrucción de 7B hasta grandes modelos de razonamiento sin cambios de configuración.
Configuración
Instala el paquete de proveedor compatible con OpenAI:
npm install ai @ai-sdk/openai-compatible
Configura el proveedor:
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
const novita = createOpenAICompatible({
name: 'novita',
baseURL: 'https://api.novita.ai/v3/openai',
apiKey: process.env.NOVITA_API_KEY,
});
Esa es toda la configuración. Ahora úsalo exactamente como cualquier otro proveedor del SDK de IA:
import { generateText } from 'ai';
const { text } = await generateText({
model: novita('meta-llama/llama-3.3-70b-instruct'),
prompt: '¿Cuáles son las ventajas y desventajas entre RAG y el fine-tuning para un bot de atención al cliente?',
});
El streaming funciona de la misma manera:
import { streamText } from 'ai';
const result = streamText({
model: novita('qwen/qwen3-235b-a22b-instruct-2507'),
messages: [
{ role: 'system', content: 'Eres un asistente de codificación útil.' },
{ role: 'user', content: 'Muéstrame cómo construir una API REST con FastAPI.' },
],
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
Llamadas a herramientas con Novita AI
Los modelos que admiten llamadas a funciones funcionan con la interfaz de tool() del SDK de IA sin configuración adicional. Llama 3.3 70B Instruct y Qwen3 admiten llamadas a herramientas a través de la API de Novita:
import { generateText, tool } from 'ai';
import { z } from 'zod';
const { text } = await generateText({
model: novita('meta-llama/llama-3.3-70b-instruct'),
maxSteps: 5,
tools: {
calculator: tool({
description: 'Evaluar una expresión matemática',
parameters: z.object({ expression: z.string() }),
execute: async ({ expression }) => {
return { result: eval(expression) }; // usa un analizador matemático seguro en producción
},
}),
},
prompt: '¿Cuánto es el 12% de 847, luego dividido por 3.14?',
});
Configuración del entorno
Agrega tu clave de API de Novita a .env.local:
NOVITA_API_KEY=tu_clave_api_novita_aqui
Obtén una clave en novita.ai — las cuentas nuevas incluyen créditos gratuitos para probar la API.
Agent Sandbox para cargas de trabajo de larga duración
Para tareas de agente que ejecutan código, acceden a sistemas de archivos o realizan flujos de trabajo de varios minutos, el Agent Sandbox de Novita AI proporciona entornos de ejecución aislados sobre la API de LLM. El SDK de IA maneja la capa de razonamiento del modelo. El sandbox maneja la ejecución con estado que no puede ejecutarse dentro de un tiempo de espera de función edge.
Elegir un proveedor de LLM para el SDK de IA de Vercel
El SDK de IA facilita el cambio de proveedores, lo cual es útil, pero vale la pena entender las ventajas y desventajas antes de elegir uno para producción.
Latencia: El tiempo hasta el primer token es más importante que la velocidad total de generación para el chat en streaming. Los modelos más pequeños (8B–14B) producen primeros tokens más rápido. Los endpoints serverless de Novita AI están optimizados para baja latencia de inicio en frío en modelos abiertos.
Costo a escala: GPT-4o es excelente, pero con volúmenes de consulta altos, la diferencia de precio entre un modelo frontera y un modelo abierto bien ajustado (por ejemplo, Llama 3.3 70B) se vuelve significativa. El SDK de IA te permite experimentar con ambos sin reescribir la lógica de la aplicación.
Soporte de llamadas a herramientas: No todos los modelos admiten llamadas a funciones de forma confiable. Prueba tu modelo específico con tus esquemas de herramientas: el comportamiento varía entre proveedores incluso para la misma familia de modelos.
Ventana de contexto: Para RAG con muchos documentos o historiales de conversación largos, verifica los límites de contexto. Muchos modelos abiertos admiten 128K tokens, lo que cubre la mayoría de los casos de uso prácticos.
Dependencia del proveedor: La abstracción de proveedor del SDK de IA con el endpoint compatible con OpenAI de Novita AI significa que puedes cambiar de modelos o agregar un proveedor de respaldo sin tocar el código de la aplicación.
Conclusión
El SDK de IA de Vercel elimina el código repetitivo de la construcción de aplicaciones de IA: una API para generación de texto, streaming, llamadas a herramientas y bucles de agente en cualquier proveedor de LLM. Ya sea que estés construyendo una interfaz de chat en streaming con useChat, extrayendo datos estructurados con generateObject, o ejecutando un agente de varios pasos que llama a herramientas externas, el SDK maneja la infraestructura para que puedas concentrarte en la lógica de la aplicación.
Para inferencia con modelos abiertos, la API compatible con OpenAI de Novita AI se integra directamente en el SDK a través de @ai-sdk/openai-compatible. Obtienes acceso a más de 70 modelos — Llama, Qwen3, DeepSeek, Mistral — sin gestionar infraestructura GPU, y puedes cambiar de modelos o agregar respaldos de proveedor sin tocar el código de tu aplicación.
Comienza en novita.ai — las cuentas nuevas incluyen créditos gratuitos.
Preguntas frecuentes
¿Qué es ai sdk react?
La integración de React del SDK de IA reside en el paquete ai/react. Proporciona hooks — useChat, useCompletion, useObject, useAssistant — que conectan un frontend React con una ruta de streaming del lado del servidor. Los hooks manejan el estado del streaming, el historial de mensajes, los indicadores de carga y el manejo de errores para que no tengas que gestionar ReadableStream en el estado del componente.
¿Qué añade ai sdk 5?
AI SDK 5 (lanzado como beta a mediados de 2025) rediseñó la especificación del proveedor para mejorar la seguridad de tipos, separó la gestión del estado de la interfaz de usuario de la lógica de interacción con el modelo e introdujo un formato de mensaje revisado que facilita la serialización del estado de la interfaz de usuario del agente. Si estás comenzando un nuevo proyecto en 2026, consulta ai-sdk.dev para la última versión estable: el SDK ha seguido evolucionando hasta las versiones 6 y 7.
¿Hay documentación de ai sdk que pueda consultar?
La documentación canónica está en ai-sdk.dev. Incluye guías de configuración de proveedores, referencias de API para todas las funciones principales, tutoriales de integración con frameworks (Next.js, Nuxt, SvelteKit) y ejemplos de recetas para patrones comunes como RAG, bucles de agente y extracción estructurada.
¿Puedo usar las herramientas de ai sdk con modelos que no sean de OpenAI?
Sí. Cualquier proveedor que admita llamadas a funciones funciona con la interfaz tool() del SDK de IA. Novita AI aloja varios modelos abiertos con soporte para llamadas a funciones. La calidad del comportamiento varía: Llama 3.3 70B y Qwen3 son los más confiables para el uso de herramientas de varios pasos entre los modelos abiertos disponibles a través de la API de Novita.
¿Cuál es la diferencia entre la documentación de vercel ai sdk y la documentación de ai-sdk.dev?
Son el mismo producto. La documentación anteriormente estaba en sdk.vercel.ai y redirige a ai-sdk.dev. El SDK es mantenido por el equipo de Vercel, pero es de código abierto y no está vinculado a la implementación en la infraestructura de Vercel.
¿Cómo se comparan los SDK de inteligencia artificial con llamar directamente a la API del LLM?
Las llamadas directas a la API están bien para solicitudes únicas simples. Un SDK vale la pena cuando necesitas varias cosas a la vez: streaming integrado en un framework de interfaz de usuario, bucles de llamadas a herramientas de varios pasos, validación de salida estructurada, cambio unificado de proveedor y manejo consistente de reintentos y errores entre proveedores. El SDK de IA maneja todo eso a nivel de biblioteca para que no tengas que reconstruirlo por proyecto.
