TOP LEARNING · E1577GUÍA ↓NUEVA CLASE: DE UNA IDEA A UNA WEB → 01 / 19 · INTRO

↓ espacio · avanzar   ↑ · regresar

1. Intro

TOP LEARNING · E1577 · NIVEL 2

LLMs
Y PROMPTING
EFECTIVO II

DE LENGUAJE HUMANO
A DECISIONES AUTOMATIZADAS

SCROLL TO FOLLOW THE DATA ↓

2. De la clase anterior a hoy

MODEL · SYSTEM PROMPT · TOOLS · MEMORY · CONTEXT · LOOP

EL LUNES VIMOS CÓMO ESTÁ CONSTRUIDO.

HOY VAMOS A VER QUÉ HACE CON LA INFORMACIÓN.

3. Claude Code como data flow

UNA TAREA ENTRA COMO DATO Y ATRAVIESA AL AGENTE.

LA VERIFICACIÓN FALLA. EL DATO REGRESA Y EL LOOP LO CORRIGE.

UN AGENTE NO SOLO GENERA. OBSERVA LO QUE OCURRE Y DECIDE QUÉ HACER DESPUÉS.

4. Plan mode

RUTA A: LA TAREA VA DIRECTO A EJECUCIÓN.

RUTA B: PLAN, REVISIÓN HUMANA, APROBACIÓN, EJECUCIÓN.

EN PLAN MODE, NADA SE MODIFICA SIN TU APROBACIÓN.

5. Contexto persistente

CLAUDE.md VIAJA COMO CONTEXTO EN CADA SESIÓN DEL PROYECTO.

EL MODELO NO RECIBE SOLO TU PROMPT. RECIBE UN CONTEXTO.

6. Entra Carlos

CARLOS ESCRIBE COMO ESCRIBE UNA PERSONA: TODO JUNTO.

EL TEXTO SE CONVIERTE EN UNA CORRIENTE DE TOKENS.

¿QUÉ INFORMACIÓN HAY AQUÍ?

7. Clasificación

DENTRO DEL NÚCLEO, EL MENSAJE SE DIVIDE POR SIGNIFICADO.

CLASIFICACIÓN: ¿QUÉ QUIERE EL USUARIO?

8. Extracción

MISMO MENSAJE. ESTA VEZ NO BUSCAMOS INTENCIÓN: BUSCAMOS DATOS.

EXTRACCIÓN: CADA DATO ENCUENTRA SU CAMPO.

SEIS ENTIDADES. UNA ESTRUCTURA.

9. El nacimiento del JSON

EL TEXTO LIBRE DESAPARECE. LOS DATOS FLOTAN SUELTOS.

LLAVES. CLAVES. VALORES.

10. Conversar vs automatizar

EL MISMO MENSAJE. DOS DESTINOS DISTINTOS.

UN HUMANO ENTIENDE FRASES. UNA AUTOMATIZACIÓN NECESITA ESTRUCTURA.

11. El prompt como transformador

LAS INSTRUCCIONES MOLDEAN LA SALIDA, CAPA POR CAPA.

EL PROMPT DEFINE LA TRANSFORMACIÓN.

12. Entramos a n8n

DEL DIAGRAMA AL CANVAS: EL MISMO DATO SIGUE VIAJANDO.

EL MODELO INTERPRETA. EL OUTPUT PARSER VALIDA LA FORMA.

CADA NODO RECIBE DATOS, HACE UNA COSA Y LOS ENTREGA.

13. Routing

UNA SOLA ENTRADA.

VARIAS VÍAS. EL SWITCH LEE CAMPOS, NO FRASES.

LA IA INTERPRETA. LA LÓGICA DECIDE LA RUTA.

14. El puente

CUATRO OBJETOS. UN SOLO CAMINO.

15. Cuando faltan datos

SI UN DATO NO ESTÁ EN EL MENSAJE, NO SE INVENTA.

null + PREGUNTAR: EL LOOP COMPLETA LO QUE FALTA Y CONTINÚA.

16. Pruebas

LABORATORIO · 4 CASOS

Pulsa un caso y sigue el dato.


        

RUTA EN N8N

QUÉ OBSERVAR

17. RAG

EL MODELO NO CONOCE LAS POLÍTICAS DE TU EMPRESA.

RETRIEVAL: BUSCAR, ENCONTRAR Y ENTREGAR SOLO LO RELEVANTE.

RAG NO CAMBIA EL MODELO. LE ENTREGA INFORMACIÓN RELEVANTE.

18. El sistema completo

ALEJAMOS LA CÁMARA.

CADA PUNTO ES UN MENSAJE VIAJANDO POR EL SISTEMA COMPLETO.

19. Final

Guía de clase · Grupo E1577

LLMs y Prompting Efectivo II

De lenguaje humano a decisiones automatizadas. Todo lo que vemos hoy, explicado paso a paso.

  • Nivel 2 · Semana 7
  • Módulo 4 · IA Aplicada
  • Miércoles 30 de septiembre de 2026
  • 20:30 – 22:00
01 · OBJETIVO Y AGENDA

¿Qué vas a poder hacer al terminar?

Leer el mensaje de un cliente, entender qué quiere, sacar los datos importantes en una estructura ordenada y usar esa estructura en n8n para decidir qué hacer después.

Lo lograste si…

procesas correctamente 3 mensajes distintos e identificas en cada uno:

  • la intención principal;
  • la intención secundaria, si existe;
  • los datos del cliente;
  • los datos que faltan;
  • si necesita o no a una persona.

Y puedes explicar este camino

  1. Lenguaje humanoEl cliente escribe como habla: todo junto.
  2. LLMEl modelo interpreta el mensaje siguiendo un prompt.
  3. Datos estructuradosSale un JSON con campos fijos.
  4. LógicaReglas (por ejemplo, un Switch) leen esos campos.
  5. AcciónSe crea un ticket, una cotización o se escala a una persona.

Agenda de hoy

  1. Apertura y conexión con el lunes10 min
  2. Claude Code aplicado30 min
  3. Clasificar vs. extraer8 min
  4. Lab n8n: mensaje → LLM → JSON → decisión22 min
  5. Pruebas y errores5 min
  6. Introducción a RAG5 min
  7. Evaluación8 min
  8. Cierre2 min
02 · DEL LUNES A HOY

El lunes lo desarmamos. Hoy lo ponemos a trabajar.

El lunes vimos cómo está construido un agente: modelo, System Prompt, memoria, contexto, tools, skills, guardrails y loop. Hoy no repetimos esa anatomía: la usamos en casos reales.

Lunes

¿Cómo está construido un agente?

Sus piezas y cómo se conectan.

Hoy

¿Cómo usa la información para actuar?

Del mensaje de un cliente a una decisión dentro de un workflow.

Cinco conceptos que usamos hoy

ModeloInterpreta el mensaje.
PromptEspecifica qué debe buscar.
ClasificaciónDecide qué tipo de solicitud es.
ExtracciónObtiene datos concretos del texto.
Structured OutputConvierte lenguaje natural en información que un software puede usar.

Un prompt para conversar y un prompt para automatizar no buscan la misma salida.

Para conversar

“Carlos tiene un problema con su pedido 18492: le llegaron dos laptops dañadas. Además quiere cotizar 20 más para su oficina.”

Perfecto para una persona. Difícil de usar para un programa.

Para automatizar
{
  "intencion_principal": "soporte",
  "intencion_secundaria": "ventas",
  "numero_pedido": "18492"
}

Cada dato en su campo. n8n puede leerlo y decidir.

Para arrancar: si Carlos escribe que su pedido llegó dañado, pero además quiere comprar 20 productos más, ¿cuántas necesidades tiene?

Por lo menos dos: soporte (el pedido llegó dañado) y ventas (quiere comprar más). Hoy vamos a lograr que un modelo detecte eso automáticamente.

03 · CLAUDE CODE APLICADO · 30 MIN

Claude Code: un agente trabajando en un proyecto real

No es “un ChatGPT que escribe código”. Es un agente especializado: recibe un objetivo, revisa el contexto, decide qué herramienta necesita, actúa, comprueba el resultado y continúa. Fíjate menos en lo que genera y más en cómo trabaja.

3.1Primero, conocer el proyecto

Antes de ejecutar, Claude necesita conocer el proyecto. Por eso lo primero que hace es inspeccionar los archivos. Usamos un proyecto pequeño: una página sencilla de atención al cliente.

  • novashop-demo/
  • index.htmlla página
  • styles.csslos estilos
  • app.jsla lógica del formulario

3.2Plan Mode y permisos

Un agente que puede editar archivos y ejecutar comandos necesita límites. Claude Code te deja elegir cuánto control quieres tener:

Pedir permiso
Para aprender

Claude te pide autorización antes de editar archivos o ejecutar comandos. Ves y apruebas cada paso.

Plan Mode
Tareas complejas

Primero investiga y te propone un plan. No cambia nada hasta que tú lo apruebas.

Omitir permisos
Solo entornos aislados

Ejecuta todo sin preguntar. Solo tiene sentido en un contenedor o una máquina virtual, nunca en tu computadora con archivos importantes.

Para aprender y en proyectos importantes, no empieces saltándote los permisos. Primero mira qué planea hacer.

3.3CLAUDE.md vs. Skill

CLAUDE.md

Las reglas permanentes del proyecto. Es un archivo en la carpeta del proyecto y Claude lo tiene en cuenta cada vez que trabaja ahí.

Siempre activo
Skill

Un procedimiento reutilizable: instrucciones, conocimiento o un flujo de trabajo que Claude carga solo cuando la tarea lo necesita.

Se carga cuando hace falta
Ejemplo · CLAUDE.md
Proyecto NovaShop.

Reglas:
- Todo texto visible debe estar en español.
- Mantén HTML/CSS/JS separados.
- Antes de terminar, prueba la interfaz.
- No elimines archivos sin aprobación.

3.4El loop en acción

Esta es la instrucción que le damos. Fíjate en que le pedimos un plan antes de tocar nada y que no termine hasta comprobar que funciona:

Prompt de la demo
Inspecciona este proyecto. El formulario debería impedir que se
envíe si el correo no es válido. Primero revisa los archivos y
explícame tu plan. Después corrige el problema, verifica el
comportamiento y no des por terminada la tarea hasta comprobar
que funciona.
  1. 1Inspeccionar
  2. 2Planear
  3. 3Modificar
  4. 4Probar
  5. 5Observar
  6. 6Corregir

Si algo falla, vuelve al inicio del ciclo hasta que funciona.

Mientras trabaja, identifica las piezas del agente. Toca cada tarjeta para ver la respuesta:

¿Por qué esto sí se parece al agente que vimos el lunes?

Porque no produjo una sola respuesta: inspeccionó un entorno, actuó sobre él y verificó el resultado. Lo importante de la demo no es la página final, es ver ese proceso.

04 · CLASIFICAR Y EXTRAER

Clasificar no es lo mismo que extraer

Son dos tareas distintas que el modelo hace sobre el mismo mensaje. Una responde qué quiere la persona; la otra, qué datos dio.

Clasificar

¿Qué quiere?

Decide a qué categoría pertenece el mensaje.

soporteventasfacturacionseguimientootro
Extraer

¿Qué datos dijo?

Saca datos concretos del texto, cada uno en su campo.

nombre_clientenumero_pedidoproductocantidadesproblema

Caso NovaShop

“Hola, soy Carlos Mendoza. Mi pedido 18492 llegó con dos laptops dañadas y además necesito cotizar otras 20 para nuestra oficina.”

  • dato extraído
  • intención: soporte
  • intención: ventas
Resultado de clasificar
soportellegó con dos laptops dañadas
ventasnecesito cotizar otras 20

Un mismo mensaje puede tener una intención principal y una secundaria.

Resultado de extraer
nombre_cliente
"Carlos Mendoza"
numero_pedido
"18492"
producto
"laptop"
cantidad_afectada
2
cantidad_solicitada
20
problema
"producto_danado"

“dos” se convierte en el número 2. El pedido va entre comillas porque es un identificador, no una cantidad.

De lenguaje a estructura

  1. Lenguaje naturalCarlos escribe como escribe una persona: todo junto, sin orden.
  2. LLM + promptEl modelo interpreta el texto siguiendo tus instrucciones.
  3. Datos estructuradosSale un objeto con campos fijos que otro sistema puede leer.
05 · LABORATORIO N8N

Construye el workflow: mensaje → LLM → JSON → decisión

Vamos a construir un workflow que recibe un mensaje y devuelve datos estructurados. Después, un Switch usa esos datos para decidir a dónde va cada caso.

Paso a paso

  1. Manual Trigger

    Te permite ejecutar el workflow a mano mientras pruebas.

  2. Edit Fields

    Crea un campo llamado mensaje (tipo texto) y pega ahí el mensaje del cliente.

  3. Basic LLM Chain

    Pega el prompt de abajo. Al final lleva el mensaje con la expresión {{ $json.mensaje }}. Activa Require Specific Output Format para conectar el parser.

  4. Chat Model

    Conéctalo a la entrada Model del Basic LLM Chain. Usa la credencial que ya está configurada para la clase.

  5. Structured Output Parser

    Conéctalo a la entrada Output Parser. Genera el esquema a partir de un ejemplo JSON y pega la salida esperada.

  6. Switch

    Crea una salida por intención comparando {{ $json.output.intencion_principal }} con soporte, ventas, facturacion y seguimiento. Agrega otra para cuando requiere_humano sea true.

Nunca muestres, copies ni compartas una API key en pantalla, en el chat de la clase o en capturas.

Material para copiar

Mensaje del cliente
Hola, soy Carlos Mendoza.

Mi pedido 18492 llegó con dos laptops dañadas
y además necesito cotizar otras 20 para nuestra oficina.
Salida esperada
{
  "intencion_principal": "soporte",
  "intencion_secundaria": "ventas",
  "nombre_cliente": "Carlos Mendoza",
  "numero_pedido": "18492",
  "producto": "laptop",
  "cantidad_afectada": 2,
  "cantidad_solicitada": 20,
  "problema": "producto_danado",
  "requiere_humano": false
}
Prompt · Basic LLM Chain
Eres un sistema de clasificación y extracción
de información para atención a clientes de NovaShop.

Analiza el mensaje recibido.

TAREAS

1. Identifica la intención principal entre:
- soporte
- ventas
- facturacion
- seguimiento
- otro

2. Si existe otra intención, identifícala
como intención secundaria.

3. Extrae cuando exista:
- nombre_cliente
- numero_pedido
- producto
- cantidad_afectada
- cantidad_solicitada
- problema

4. Determina si requiere intervención humana.

REGLAS

- No inventes información.
- Si un dato no está disponible, utiliza null.
- No deduzcas números de pedido.
- La intención secundaria puede ser null.
- Devuelve exclusivamente la estructura solicitada.

MENSAJE DEL CLIENTE:
{{ $json.mensaje }}

Tu workflow está bien si…

  • la intención es correcta;
  • los datos extraídos son correctos;
  • los datos que no existen quedan en null;
  • la estructura es siempre la misma;
  • no inventa datos.

¿Y la intención secundaria?

Carlos también quiere comprar. Para atender las dos cosas, agrega reglas sobre intencion_secundaria y activa la opción del Switch para enviar a todas las salidas que coincidan.

Plan B

Si n8n o el modelo fallan, pega el mismo prompt en un chatbot (con el mensaje en lugar de {{ $json.mensaje }}) y obtén el JSON. La lógica es la misma: JSON → Switch → acción.

06 · CUANDO LA IA NO SABE

Si un dato no está, no se inventa

Un modelo siempre intenta dar una respuesta. En una automatización eso es peligroso: un número de pedido inventado puede mandar un reembolso o un ticket al cliente equivocado.

  1. No inventarEl prompt lo dice explícitamente.
  2. nullEl campo existe, pero va vacío: dato faltante.
  3. Preguntar o escalarEl workflow pide el dato o pasa el caso a una persona.

Ejemplo

“Hola, me llegaron dos laptops con la pantalla rota. ¿Qué hago?”

Incorrecto

{
  "intencion_principal": "soporte",
  "producto": "laptop",
  "cantidad_afectada": 2,
  "numero_pedido": "18492"
}

El número de pedido es inventado: el cliente nunca lo escribió.

Correcto

{
  "intencion_principal": "soporte",
  "producto": "laptop",
  "cantidad_afectada": 2,
  "numero_pedido": null
}

Siguiente acción: responderle pidiendo su número de pedido.

Reto avanzado

Agrega estos campos al prompt y al parser. Así el propio JSON dice qué falta, qué tan seguro está el modelo y si hay que escalar:

"datos_faltantes": [],
"confianza": 0.0,
"requiere_humano": false
¿Cuándo debería escalar a una persona?

Algunas ideas para discutir: cuando el cliente está muy molesto o amenaza con una queja, cuando la confianza es baja, cuando faltan datos que no se pueden pedir automáticamente o cuando hay dinero de por medio y el caso no está claro.

07 · TU TURNO

Procesa estos 3 mensajes

En cada uno identifica: intención principal, intención secundaria, datos del cliente, datos faltantes y si necesita a una persona. Después compara con la solución.

Mensaje 1
“Buenas tardes, soy Ana Torres. Me cobraron dos veces el pedido 30118.”
Ver solución
{
  "intencion_principal": "facturacion",
  "intencion_secundaria": null,
  "nombre_cliente": "Ana Torres",
  "numero_pedido": "30118",
  "producto": null,
  "cantidad_afectada": null,
  "cantidad_solicitada": null,
  "problema": "cobro_duplicado",
  "requiere_humano": false
}
Faltan
producto (no hace falta para este caso)
Ruta
Switch → Facturación
Mensaje 2
“¿Dónde va mi pedido 22750? Lo necesito antes del viernes. Si llega a tiempo, quiero pedir 3 más.”
Ver solución
{
  "intencion_principal": "seguimiento",
  "intencion_secundaria": "ventas",
  "nombre_cliente": null,
  "numero_pedido": "22750",
  "producto": null,
  "cantidad_afectada": null,
  "cantidad_solicitada": 3,
  "problema": null,
  "requiere_humano": false
}
Faltan
nombre_cliente y producto: “3 más” no dice de qué, y no se deduce
Ruta
Seguimiento + Ventas
Mensaje 3
“Llevo tres semanas esperando mi reembolso y nadie me responde. Si hoy no me contestan, pongo una queja.”
Ver solución
{
  "intencion_principal": "facturacion",
  "intencion_secundaria": null,
  "nombre_cliente": null,
  "numero_pedido": null,
  "producto": null,
  "cantidad_afectada": null,
  "cantidad_solicitada": null,
  "problema": "reembolso_pendiente",
  "requiere_humano": true
}
Faltan
nombre_cliente y numero_pedido
Ruta
Humano: cliente molesto y sin datos para resolverlo solo

También se acepta soporte como intención. Lo importante es requiere_humano: true.

08 · PRÓXIMA PARADA

RAG: cuando el modelo necesita información de tu empresa

El modelo sabe mucho en general, pero no conoce las reglas de NovaShop: su política de devoluciones, sus precios o sus horarios. RAG resuelve eso: primero busca la información y después responde con ella.

  1. PreguntaEl cliente pregunta algo propio de la empresa.
  2. BuscarSe busca en los documentos de la empresa.
  3. Recuperar contextoSe toma solo el fragmento que sirve.
  4. LLMEl modelo recibe la pregunta junto con ese fragmento.
  5. RespuestaResponde basándose en esa información, no en suposiciones.
Pregunta

“¿Puedo devolver este producto después de 45 días?”

Fragmento recuperado

Política de devoluciones: se aceptan devoluciones dentro de los 30 días posteriores a la entrega.

Respuesta

“No. Según la política de NovaShop, las devoluciones se aceptan hasta 30 días después de la entrega.”

Ejemplo ficticio. Por ahora quédate con la idea; cómo se busca la información por dentro lo veremos más adelante.

09 · AUTOEVALUACIÓN

Comprueba lo que aprendiste

Piensa tu respuesta y después revísala. Es una práctica: si hay una evaluación publicada en la plataforma, esa es la que cuenta.

1. ¿Cuál es la diferencia entre clasificación y extracción?

La clasificación determina a qué categoría pertenece el mensaje. La extracción recupera datos específicos que vienen dentro del mensaje.

2. ¿Por qué estructurar la salida?

Porque un workflow necesita campos predecibles para tomar decisiones y enviar información a otros nodos o sistemas.

Pregunta 3

El usuario no proporciona número de pedido. ¿Qué debería hacer el modelo?

4. ¿Qué problema resuelve RAG?

Permite recuperar información relevante de una fuente externa (por ejemplo, los documentos de la empresa) y dársela al modelo para que responda con base en esa información específica.

Meta3 de 4 respuestas correctas y tu workflow funcionando.
10 · CIERRE

Lunes: diseccionamos al agente.
Miércoles: lo ponemos a trabajar.

Esta semana empezamos entendiendo cómo está construido un agente. Hoy vimos cómo esa inteligencia entra a una automatización: recibe lenguaje humano, clasifica lo que la persona quiere, extrae los datos y entrega una estructura que otros sistemas pueden usar.

Lo que sigue: ¿qué pasa cuando el modelo necesita conocer información específica de nuestra empresa? Ahí entra RAG.

Antes de irte

  • Responde la evaluación en la plataforma.
  • Confirma tu asistencia.
  • Revisa la grabación si te perdiste algo.