
Qué vas a construir
Requisitos previos
- Node.js 18 o posterior instalado
- Una clave de la API de OpenAI de platform.openai.com
- Una clave de la API de Firecrawl de firecrawl.dev
- Conocimientos básicos de React y Next.js
1
Crear un nuevo proyecto de Next.js
Empieza creando una nueva aplicación de Next.js y navega al directorio del proyecto:Cuando se te solicite, selecciona las siguientes opciones:
- TypeScript: Sí
- ESLint: Sí
- Tailwind CSS: Sí
- App Router: Sí
- Usar directorio
src/: No - Alias de importación: Sí (@/*)
2
Instalar las dependencias
Instalar paquetes del AI SDK
El AI SDK es un conjunto de herramientas de TypeScript que proporciona una API unificada para trabajar con distintos proveedores de LLM:ai: SDK principal con streaming, invocación de herramientas y manejo de respuestas@ai-sdk/react: Hooks de React comouseChatpara crear interfaces de chatzod: Validación de esquemas para entradas de herramientas
Instalar AI Elements
AI Elements proporciona componentes de UI prediseñados para aplicaciones de IA. Ejecuta el siguiente comando para generar todos los componentes necesarios:Instalar el proveedor de OpenAI
Instala el proveedor de OpenAI para conectarte con los modelos de OpenAI:3
Construye la interfaz de chat del frontend
Crea la página principal en 
app/page.tsx y copia el código de la pestaña Code que aparece a continuación. Esta será la interfaz de chat donde los usuarios interactúan con el asistente de IA.- Previsualización
- Código

Entendiendo el Frontend
El frontend usa componentes de AI Elements para proporcionar una interfaz de chat completa:Características principales:- Visualización de la conversación: El componente
Conversationgestiona automáticamente el desplazamiento y la presentación de los mensajes - Representación de mensajes: Cada parte del mensaje se representa según su tipo (texto, razonamiento, llamadas a herramientas)
- Visualización de herramientas: Las llamadas a herramientas se muestran con secciones plegables que muestran entradas y salidas
- Controles interactivos: Los usuarios pueden activar o desactivar la búsqueda web, elegir modelos y adjuntar archivos
- Acciones de mensajes: Copiar y reintentar en mensajes del asistente
4
Agregar compatibilidad con el renderizado de Markdown
Para asegurarte de que el markdown del LLM se renderice correctamente, añade la siguiente importación a tu archivo Esto importa los estilos necesarios para mostrar contenido Markdown en las respuestas de los mensajes.
app/globals.css:5
Crear la ruta básica de API
Crea el endpoint de la API de chat en Esta ruta básica:
app/api/chat/route.ts. Esta ruta gestionará los mensajes entrantes y transmitirá respuestas de la IA.- Recibe mensajes del frontend
- Usa el modelo de OpenAI seleccionado por el usuario
- Transmite respuestas al cliente
- Aún no incluye herramientas; las añadiremos a continuación
6
Configurar las variables de entorno
Crea un archivo Añade tu clave de la API de OpenAI:Se requiere la variable
.env.local en la raíz de tu proyecto:OPENAI_API_KEY para que el modelo de IA funcione.7
Prueba el chat básico
Ahora puedes probar el chatbot del SDK de IA sin la integración con Firecrawl. Inicia el servidor de desarrollo:Abre localhost:3000 en tu navegador y prueba la funcionalidad básica del chat. El asistente debería responder a los mensajes, pero aún no tendrá capacidades de scraping web ni de búsqueda.

8
Agregar herramientas de Firecrawl
Ahora vamos a mejorar el asistente con capacidades de scraping web y búsqueda usando Firecrawl.Agrega el siguiente código para definir las herramientas de web scraping y búsqueda:
Instalar el SDK de Firecrawl
Firecrawl convierte sitios web en formatos listos para LLM con funciones de scraping y búsqueda:Crea el archivo de herramientas
Crea una carpetalib y agrega un archivo tools.ts dentro:lib/tools.ts
Entender las herramientas
Herramienta de extracción de sitios web:- Acepta una URL como entrada (validada por un esquema de Zod)
- Usa el método
scrapede Firecrawl para obtener la página en Markdown - Extrae solo el contenido principal para reducir el uso de tokens
- Devuelve el contenido extraído para que la IA lo analice
- Acepta una consulta de búsqueda con filtros opcionales
- Usa el método
searchde Firecrawl para encontrar páginas web relevantes - Admite filtros avanzados como ubicación, rango de tiempo y categorías de contenido
- Devuelve resultados estructurados con títulos, URL y descripciones
9
Actualiza la ruta de la API con las herramientas de Firecrawl
Ahora actualiza tu
Cambios clave respecto a la ruta básica:
app/api/chat/route.ts para incluir las herramientas de Firecrawl que acabamos de crear.Ver el código completo de app/api/chat/route.ts
Ver el código completo de app/api/chat/route.ts
- Importa
stepCountIsdel AI SDK - Importa las herramientas de Firecrawl desde
@/lib/tools - Agrega el objeto
toolscon las herramientasscrapeWebsiteysearchWeb - Agrega
stopWhen: stepCountIs(5)para limitar los pasos de ejecución - Establece
toolChoiceen “auto” cuando la búsqueda web esté habilitada; en “none” en caso contrario
streamText: ai-sdk.dev/docs/reference/ai-sdk-core/stream-text.10
Añade tu clave de API de Firecrawl
Actualiza tu archivo Obtén tu clave de la API de Firecrawl en firecrawl.dev.
.env.local para incluir tu clave de la API de Firecrawl:11
Probar la aplicación completa
Reinicia el servidor de desarrollo:
Abre localhost:3000 y prueba el asistente mejorado:

- Activa el botón “Search” para habilitar la búsqueda en la web
- Pregunta: “¿Cuáles son las funciones más recientes de firecrawl.dev?”
- Observa cómo la IA invoca la herramienta
searchWeboscrapeWebsite - Mira la ejecución de la herramienta en la interfaz con sus entradas y salidas
- Lee el análisis de la IA basado en los datos extraídos
Cómo funciona
Flujo de mensajes
- El usuario envía un mensaje: El usuario escribe una pregunta y hace clic en Enviar
- El frontend envía la solicitud:
useChatenvía el mensaje a/api/chatcon el modelo seleccionado y el ajuste de búsqueda web - El backend procesa el mensaje: La ruta de la API recibe el mensaje y llama a
streamText - La IA decide qué herramientas usar: El modelo analiza la pregunta y decide si usar
scrapeWebsiteosearchWeb(solo si la búsqueda web está habilitada) - Ejecución de herramientas: Si se invocan herramientas, Firecrawl hace scraping o busca en la web
- La IA genera la respuesta: El modelo analiza los resultados de las herramientas y genera una respuesta en lenguaje natural
- El frontend muestra los resultados: La interfaz muestra las llamadas a herramientas y la respuesta final en tiempo real
Proceso de llamada a herramientas
- El modelo recibe el mensaje del usuario y las descripciones de las herramientas disponibles
- Si el modelo determina que se necesita una herramienta, genera una llamada a la herramienta con parámetros
- El SDK ejecuta la función de la herramienta con esos parámetros
- El resultado de la herramienta se envía de vuelta al modelo
- El modelo usa el resultado para generar su respuesta final
streamText, con los resultados transmitiéndose al frontend en tiempo real.
Características clave
Selección de modelo
- GPT-5 Mini (Thinking): Modelo reciente de OpenAI con capacidades avanzadas de razonamiento
- GPT-4o Mini: Modelo rápido y rentable
Interruptor de búsqueda web
- Enabled: la IA puede invocar las herramientas
scrapeWebsiteysearchWebsegún sea necesario - Disabled: la IA responde solo con el conocimiento de su entrenamiento
Ideas de personalización
Agregar más herramientas
- Consultas a la base de datos para datos internos de la empresa
- Integración con el CRM para obtener información de clientes
- Envío de correos electrónicos
- Generación de documentos
execute y regístrala en el objeto tools.
Cambiar el modelo de IA
Personaliza la UI
- Modificar los estilos de los componentes en sus archivos
- Añadir nuevas variantes a los componentes existentes
- Crear componentes personalizados que se ajusten al sistema de diseño
Mejores prácticas
-
Usa las herramientas adecuadas: Elige
searchWebpara encontrar primero páginas relevantes,scrapeWebsitepara páginas individuales o deja que la IA decida - Supervisa el uso de la API: Controla tu uso de las API de Firecrawl y OpenAI para evitar costos inesperados
- Gestiona los errores con elegancia: Las herramientas incluyen manejo de errores, pero considera añadir mensajes de error visibles para el usuario
- Optimiza el rendimiento: Usa streaming para ofrecer retroalimentación inmediata y considera cachear el contenido de acceso frecuente
-
Establece límites razonables:
stopWhen: stepCountIs(5)evita llamadas excesivas a herramientas y costos descontrolados

