GuíaIntermedio
Guía de SQL para LLMs y Agentes
Aprende la ingeniería de tener un LLM o agente que genera y ejecuta SQL de forma segura y confiable contra tu base de datos: text-to-SQL. Esta guía cubre cómo darle el esquema al modelo como contexto (serializar `CREATE TABLE`, muestras de filas, relaciones y el presupuesto de tokens), cómo promptear para SQL correcto (few-shot, fijar el dialecto, instrucciones-restricción), cómo validar y ejecutar el SQL generado antes de confiar en él (¿es un `SELECT`? ¿referencia tablas reales?), los guardrails de seguridad (solo-lectura, bloqueo de sentencias destructivas, límites de filas, anti-inyección, mínimo privilegio), el loop del agente SQL (pregunta → SQL → validar → correr → corregir → responder, con la herramienta `run_sql`), y cómo evaluar un asistente text-to-SQL con exactitud de ejecución. Todo se construye sobre la base de datos Reservo con sqlite3; la llamada al LLM se muestra como ejemplo realista con la API de Claude. Cierra con un proyecto capstone: un asistente SQL seguro y medible de punta a punta para Reservo.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Sí
- certificado
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Entender el problema text-to-SQL: la promesa de consultar la base de datos hablando y los peligros (SQL incorrecto, columnas alucinadas, consultas destructivas)
- Darle el esquema a un LLM como contexto: serializar `CREATE TABLE`, muestras de filas y relaciones, respetando un presupuesto de tokens
- Promptear para SQL correcto: few-shot, fijar el dialecto SQL, instrucciones-restricción y manejo de ambigüedad
- Validar el SQL generado antes de correrlo: ¿parsea?, ¿es un `SELECT`?, ¿referencia tablas y columnas reales?, `EXPLAIN QUERY PLAN`
- Implementar guardrails de seguridad: forzar solo-lectura, bloquear sentencias destructivas, límites de filas y timeout, y el principio de mínimo privilegio
- Construir el loop del agente SQL: pregunta → generar SQL → validar → correr → corregir → responder, con la herramienta `run_sql`
- Evaluar un asistente text-to-SQL con exactitud de ejecución, comparando contra un set de prueba pregunta→SQL-gold
- Construir un asistente SQL seguro y medible de punta a punta para Reservo como proyecto capstone
Antes de empezar
Qué necesitas traer
Es para ti si...
- Devs que quieren exponer una base de datos a un LLM o agente sin arriesgar borrados ni fugas de datos
- Devs backend que ya saben SQL y quieren que un modelo de lenguaje lo genere de forma confiable
- Equipos evaluando construir un asistente de consultas en lenguaje natural sobre su base de datos
Requisitos y materiales
- SQL intermedio/avanzado (JOINs, agregaciones) — o Guía de SQL Avanzado para Consulta completada
- Python 3.10+ (usa `sqlite3` de la librería estándar, sin instalación adicional)
- Familiaridad básica con el concepto de tool-calling/function-calling de LLMs (se explica en la guía)
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Introducción al Módulo 1: Por qué SQL y LLMs
- El problema text-to-SQL y su promesa
- SQL incorrecto y columna alucinada
- Consultas destructivas e inyección
- Qué es un SQL agent y la herramienta `run_sql`
- El flujo de punta a punta
- Por qué SQL sigue siendo la interfaz
- Mini-proyecto: tu primer round trip text-to-SQL
- Introducción al Módulo 2: Darle el esquema al LLM
- Por qué el LLM no conoce tu base de datos
- Serializar el esquema: DDL vs forma compacta
- Descripciones de columnas: centavos y dominios
- Filas de muestra en el contexto
- Extraer relaciones con PRAGMA
- El presupuesto de tokens: qué incluir y qué excluir
- Mini-proyecto: construir un contexto de esquema para Reservo
- Introducción al Módulo 3: Promptear para SQL correcto
- El system prompt de un asistente SQL
- Few-shot: ejemplos pregunta→SQL
- Fijar el dialecto SQLite
- Instrucciones-restricción y formato de salida
- Manejar la ambigüedad: pedir aclaración o declarar el supuesto
- Pedir SQL + explicación estructurada
- Mini-proyecto: el prompt del asistente de Reservo
- Introducción al Módulo 4: Validar y ejecutar el SQL generado
- Nunca confíes en el SQL generado a ciegas
- Validar la forma: ¿parsea? ¿una sola sentencia? ¿es SELECT?
- Validar contra el esquema real: cazar tablas y columnas alucinadas
- Ejecutar de forma segura: capturar errores y un LIMIT de sanidad
- El loop de auto-corrección: devolver el error al modelo y reintentar
- Los modos de fallo típicos del SQL generado
- Mini-proyecto: un pipeline de validar-luego-ejecutar
- Introducción al Módulo 5: Guardrails y seguridad
- El prompt no es una barrera de seguridad, y el mínimo privilegio
- Solo-lectura en la conexión: `PRAGMA query_only` y `mode=ro`
- La allowlist de sentencias: solo `SELECT`/`WITH`, una sola
- Límites de recursos: `LIMIT` forzado, timeout y tope de filas
- Inyección: por qué el SQL del LLM es superficie de ataque, y los parámetros `?`
- Defensa en capas: todas juntas, cubriéndose entre sí
- Mini-proyecto: un ejecutor de solo lectura, blindado
- Introducción al Módulo 6: El loop del agente SQL
- El ciclo del agente: pregunta → SQL → validar → correr → observar → responder
- El tool-calling: el contrato de `run_sql` y su JSON Schema
- La forma `tool_use` → `tool_result` de la Messages API
- Multi-paso: explorar el esquema con un tool y luego consultar
- Cuándo parar y el tope de iteraciones
- Manejo de errores dentro del loop: el error como `tool_result` que el modelo corrige
- Mini-proyecto: un loop de agente SQL para Reservo
- Introducción al Módulo 7: Evaluar text-to-SQL
- Por qué medir y no confiar en la impresión
- Exactitud de ejecución vs comparar el texto del SQL
- Construir el set de prueba: pregunta → gold_sql
- El harness que corre el set y reporta el %
- Los modos de fallo que la evaluación revela
- Regresión: re-evaluar al cambiar el prompt o el modelo
- Mini-proyecto: un set de evaluación para el asistente de Reservo
- Introducción al Módulo 8: un asistente SQL seguro para Reservo
- Capa 1: ensamblar el contexto de esquema
- Capa 2: el system prompt con reglas y few-shot
- Capa 3: la capa de validación
- Capa 4: los guardrails y el `run_sql` seguro
- Capa 5: el loop del agente con auto-corrección
- Capa 6: el set de evaluación y la exactitud de ejecución
- Proyecto: un asistente SQL seguro para Reservo
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
Sí. Al terminar todas las lecciones se emite automáticamente, con un código verificable que puedes compartir en LinkedIn.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!