Salida Estructurada en LLM: JSON Schema Explicado

Pídele a un modelo que responda en JSON y la mayoría de las veces json.loads() funciona sin problemas. Los fallos son los que te cuestan una sesión de debugging: un comentario de una línea dentro del objeto, un code fence de markdown envolviéndolo, una clave escrita userEmail cuando tu código espera user_email. Un prompt más estricto (“responde SOLO con el objeto JSON, sin ningún otro texto”) hace que estos casos sean más raros. No los hace imposibles, porque el modelo puede ignorar la petición igual. La salida estructurada elimina la petición de la ecuación: le entregas a la API un JSON Schema, y este restringe el muestreo de tokens del propio modelo para que la respuesta tenga que ajustarse a él. ...

6 de noviembre de 2026 · 9 min · 1911 palabras · SpaghettiCoder

Cómo Crear un LLM Eval: Probar Prompts Como Código

Por qué “parece correcto” no es una prueba para un prompt Ajustas el texto de un prompt que clasifica tickets, lo pruebas con los tres ejemplos que tienes abiertos en tu notebook de pruebas y lo despliegas. Una semana después, las quejas de facturación que antes caían en la cola correcta empiezan a caer en “pregunta”. No los tres casos que revisaste: los otros cuatrocientos que no revisaste. Nada falla. No hay ningún stack trace. El prompt, leído en voz alta, sigue sonando bien. ...

30 de octubre de 2026 · 9 min · 1784 palabras · SpaghettiCoder

Function Calling y Tool Use en LLM, Explicados

Qué hace realmente el function calling en un LLM Pregúntale a un modelo “qué tiempo hace ahora en Austin” sin ninguna conexión con el mundo exterior, y tiene dos opciones: decir que no lo sabe, o inventarse algo. El function calling le da una tercera opción: el modelo describe lo que necesita, se lo pasa a tu código y espera una respuesta real antes de contestar. El nombre es un poco engañoso. El modelo no llama a nada. Emite un bloque de datos estructurados que dice qué tool quiere y con qué argumentos, y tu aplicación decide si lo ejecuta y qué hace con el resultado. “Tool use” es el término más preciso, y es el que usa la documentación de Anthropic; OpenAI y Google suelen decir function calling. El mecanismo es el mismo bajo los dos nombres. El modelo solo produce una petición, nunca el efecto. ...

22 de octubre de 2026 · 8 min · 1599 palabras · SpaghettiCoder

Qué Son los Embeddings y la Búsqueda Vectorial

Busca “cachorro” en un sistema que solo compara palabras clave y un documento sobre el entrenamiento de perros no aparecerá, aunque cualquiera que leyera ambos los consideraría estrechamente relacionados. La búsqueda por palabras clave compara cadenas de texto. No sabe que “cachorro” y “perro” significan casi lo mismo. Los embeddings resuelven justo eso. Convierten un texto en una lista de números, un vector, ubicado de forma que los textos con significado parecido queden cerca de otros textos con significado parecido, sin importar qué palabras usen. ...

15 de octubre de 2026 · 8 min · 1558 palabras · SpaghettiCoder

Cómo Funcionan los Agentes CLI de Código y Cómo Elegir Uno

Qué hace diferente a un agente CLI de código de otro Pídele a un agente CLI de código que arregle un test que falla y no te va a responder con una sugerencia. Lee la salida del test, abre el archivo, edita una línea, vuelve a correr el test y avisa cuando pasa. Ese bucle es el producto, no la ventana de chat. El modelo que hay dentro del bucle se lleva la mayor parte de la atención, y también es la parte que cambia más rápido: los proveedores meten modelos nuevos cada pocos meses, y varios agentes te dejan elegir. Lo que se queda fijo es el harness que envuelve al modelo: qué herramientas puede usar, cómo gestiona el contexto, qué puede ejecutar sin preguntar, y dónde se ejecutan esos comandos. Dos agentes con el mismo modelo por dentro pueden comportarse de forma muy distinta por eso. El harness es lo que en realidad estás eligiendo. ...

23 de septiembre de 2026 · 9 min · 1708 palabras · SpaghettiCoder

Qué Es un Modelo System One y Cuándo Usarlo

Por qué tantas llamadas a un LLM son en realidad una clasificación Buena parte del tráfico de LLM en producción devuelve una sola palabra. Escalar este ticket o no. Spam o no spam. Cuál de seis handlers recibe este evento. Para conseguir esa palabra, mandas el prompt entero a un modelo de propósito general, esperas mientras decodifica una respuesta token a token, y sacas un objeto JSON del resultado. Pagas el precio y la latencia de generar texto, y lo que vuelve es una decisión que cabe en un enum. ...

23 de septiembre de 2026 · 7 min · 1389 palabras · SpaghettiCoder

Cómo Ejecutar un LLM en Local con Ollama

Cada llamada a una API de LLM alojada envía tu prompt al servidor de otra persona y te cobra por token. Se cae la red y deja de responder. Ollama elimina los dos problemas: descarga un modelo de pesos abiertos en tu máquina y lo sirve mediante una API REST en localhost:11434. Un solo binario hace de gestor de modelos, cliente de chat y servidor. Qué hace Ollama en realidad Ollama envuelve llama.cpp y motores de inferencia similares, así que nunca tocas un flag del compilador ni una ruta de biblioteca CUDA. ollama pull llama3.2 descarga un archivo de modelo cuantizado (formato GGUF) desde el propio registro de Ollama en lugar de Hugging Face, aunque también puede importar archivos GGUF desde allí. Ejecutar el modelo pasa esos pesos a un servidor en segundo plano, que los carga en RAM (o VRAM, si encuentra una GPU compatible), los mantiene en memoria unos minutos después de tu última petición para que la siguiente sea rápida, y los libera en cuanto dejas de preguntar. ...

19 de septiembre de 2026 · 7 min · 1490 palabras · SpaghettiCoder

Qué es RAG: Retrieval-Augmented Generation Explicado

Pregúntale a un LLM genérico por la política de devoluciones de tu empresa o por los tickets de soporte de la semana pasada, y dirá que no lo sabe o inventará algo plausible. Su conocimiento termina en lo que había en sus datos de entrenamiento. Nunca ha visto tus documentos y no puede ir a consultarlos a mitad de la conversación. La retrieval-augmented generation (RAG) soluciona justo esto: antes de que el modelo responda, un paso separado busca el texto relevante en tus propios datos y se lo entrega como parte del prompt. ...

12 de septiembre de 2026 · 8 min · 1595 palabras · SpaghettiCoder