Features
Tool use (registry)
Una sola fuente de verdad para tools — disponible vía OpenAI function calling y MCP.
Esta feature se activa en la Semana 4 del curso.
Pattern
VibeFast usa un registry pattern: en vez de repartir las herramientas por todo el código, hay una sola lista central donde se anotan todas — y desde ahí se reparten a quien las necesite.
Cada tool es un objeto con nombre, descripción, parámetros y una función execute(). Los ejemplos incluidos viven en web/lib/tools/examples/:
crearItem.js— crea un item encore_itemsdel usuario autenticado.buscarItems.js— busca items del usuario por título.enviarEmail.js— manda un email vía Resend (si Resend no está configurado, no rompe nada).
Así se ve una tool (versión resumida de web/lib/tools/examples/enviarEmail.js):
// web/lib/tools/examples/enviarEmail.js
export const enviarEmail = {
name: "enviar_email",
description: "Envía un email transaccional al destinatario indicado.",
parameters: {
type: "object",
properties: {
to: { type: "string", description: "Correo del destinatario." },
subject: { type: "string", description: "Asunto del email." },
body: { type: "string", description: "Cuerpo del mensaje." },
},
required: ["to", "subject", "body"],
additionalProperties: false,
},
async execute({ to, subject, body }) {
// ...
},
}El registro pasa en web/lib/tools/index.js: cada tool se importa y se anota en el registry con una sola línea al final del archivo:
// web/lib/tools/index.js
;[crearItem, buscarItems, enviarEmail].forEach(registerTool)Para agregar la tuya: creas el archivo en web/lib/tools/examples/, escribes solo el execute() (la IA puede ayudarte con el resto del objeto), y la agregas a esa lista.
Una sola registración → disponible para tool use de OpenAI (via getOpenAITools()) y para los agentes de LangGraph — la librería con la que armamos agentes que deciden qué herramienta usar en cada paso.