Sesión 4 · Tool Use
Comprueba la respuesta sin herramientas
Construye withoutTools, conecta la entrada y registra una respuesta que todavía no tiene acceso al catálogo.
Qué aprenderás
- Enviar una petición del negocio con generateText sin aportar el catálogo.
- Conectar toolUseMain con main.ts y observar la ejecución.
- Interpretar el tracer sin confundir trazas con razonamiento interno.
Referencias de código
Índice de esta lección
Paso 1
Prepara el primer patrón
Crea src/patterns/01-tool-use/tool-use.ts dentro de la práctica de la sesión 3. Usa el proveedor que ya configuraste; abrir otra terminal es opcional.
La introducción usó TypeScript y Node como ejemplo. Estas clases siguen el enunciado de las transcripciones y del código de referencia: TypeScript y Docker. Conservaremos esa misma petición en la comparación.
const QUESTION = "¿Cuánto costarían juntos el curso de TypeScript y el de Docker " + "con un 20% de descuento? Dame también las horas totales.";Qué deberías observar
Tienes una petición fija sobre dos cursos y el descuento del 20 %.
Paso 2
Genera texto sin acceso al catálogo
Importa generateText desde ai y model y createTracer desde ../../helpers/index.js. Las extensiones .js corresponden a los imports ESM del proyecto TypeScript.
La petición no incluye los cursos ni herramientas. El modelo puede pedir información o dar cifras sin respaldo. Tener el catálogo en otro archivo no lo transmite automáticamente al modelo.
import { generateText } from "ai";import { createTracer, model } from "../../helpers/index.js"; async function withoutTools() { const tracer = createTracer("sin-herramientas"); const { text } = await generateText({ model, prompt: QUESTION, onStepEnd: tracer.onStepFinish, }); console.log("Sin herramientas:", text); return tracer.summary();}Qué deberías observar
La llamada devuelve texto y el resumen de pasos de la ejecución.
Paso 3
Llama al patrón desde main.ts
Durante esta primera clase exporta una entrada que llame solo a withoutTools. Sustituye la llamada de prueba anterior en main.ts por esta entrada.
No borres las acciones anteriores: basta con cambiar qué función invocas. El laboratorio completo de la última clase también permite ejecutar una comparación.
export async function toolUseMain() { const resultA = await withoutTools(); console.table({ "Sin herramientas": resultA });} // En src/main.ts:// import { toolUseMain } from "./patterns/01-tool-use/tool-use.js";// await toolUseMain();Qué deberías observar
La entrada ejecuta la petición del patrón, sin una segunda llamada.
Paso 4
Registra pasos, resultados y consumo
npm run dev realiza una llamada real al proveedor seleccionado; ejecútalo en tu entorno cuando quieras probar la clase.
El callback del SDK 7 se llama onStepEnd. El helper del proyecto conserva el nombre onStepFinish: onStepEnd: tracer.onStepFinish conecta ambos sin cambiar el helper.
El tracer imprime llamadas a herramientas, resultados y texto. Su slice(0, 150) limita la vista de consola. No demuestra acceso al pensamiento interno completo del modelo. La cantidad de tokens de una grabación no es un valor fijo para tu ejecución.
npm run buildnpm run devQué deberías observar
Puedes distinguir una respuesta que pide datos de una afirmación sin fuente.
Paso 5
Guarda la evidencia de la prueba inicial
Anota proveedor, modelo, respuesta, pasos y tokens informados. Mantén la pregunta y el catálogo de referencia para la siguiente prueba.
Una respuesta que reconoce los datos ausentes es adecuada en este punto. Si aparecen precios, verifica su origen antes de considerarlos correctos. El gist contiene datos didácticos, no precios comerciales vigentes.
Modelo: ______Pregunta: TypeScript + Docker, 20 %, horasRespuesta: ______Pasos / tokens: ______Datos consultados: ningunoQué deberías observar
Tienes una línea base para comparar con la ejecución con herramientas.
Ahora te toca
Prueba la idea por tu cuenta
Ejecuta o inspecciona withoutTools. Si la respuesta incluye precios, explica de dónde deberían proceder. Anota cómo reconocerías una respuesta responsable cuando falta el catálogo.
Necesito una pista
Distingue lo que aparece en el prompt de lo que solo existe en un archivo local.
Comparar con una solución
Sin tools ni catálogo en el prompt no hay una consulta verificable. Pedir los precios y horas es adecuado; unas cifras plausibles no prueban acceso al catálogo.
Antes de seguir
Comprueba lo que aprendiste
No es una nota. Es una pausa para comprobar que la idea quedó clara.
¿Terminaste la práctica?
Haz el ejercicio y comprueba tus respuestas antes de marcar la lección como completada.