Módulo 8: Capstone The Andes Cargo Genai Extractor

6. La frontera con AI Engineering, cerrada

Descripción

El M1.4 fijó, en la lección 4 del primer módulo —deliberadamente temprano, no al cierre—, la frontera exacta entre lo que esta guía construye y lo que AI Engineering ya enseñó: esta guía opera, AI Engineering construye. Treinta y cinco lecciones después, es momento de confirmar que esa frontera se sostuvo, sin una sola excepción, hasta la última línea de código de esta guía. Esta lección no introduce ningún criterio nuevo — recorre, módulo por módulo, cada punto donde la tentación de cruzar la frontera pudo haber aparecido, y confirma, con evidencia de la lección exacta donde ocurrió, que ninguna lo hizo.

Conexión con el módulo

Donde la lección 5 de este módulo cerró el ledger de "qué quedó sin ejecutar", esta lección cierra el ledger complementario: "qué esta guía decidió, deliberadamente, no enseñar en absoluto". Son dos preguntas distintas —una de alcance de ejecución, otra de alcance de contenido— y ambas necesitan su propio cierre antes de que este capstone termine.


Analogía: el manual de operaciones, cerrado sin una sola receta filtrada

El M1.4 ya estableció la analogía central: esta guía es el manual de operaciones del restaurante, AI Engineering es el recetario. Un manual de operaciones bien escrito, al llegar a su última página, no tiene, en ningún capítulo anterior, una receta que se filtró por accidente — ni una técnica de reducción de salsa, ni una proporción de especias, nada que le correspondiera al recetario. Esta lección es la revisión final de esa promesa: recorre el manual completo, capítulo por capítulo, y confirma que ninguna receta se filtró en las treinta y seis lecciones de esta guía — el prompt de extract-shipment-manifest-fields, en el M8.4, apareció exactamente tan mínimo como el M1.4 prometió que sería, ni una línea más elaborada.


La tabla del M1.4, confirmada con la lección exacta donde se sostuvo

Esta guía SÍ construyóConfirmado enAI Engineering — nunca cruzadoConfirmado en
La infraestructura de extract-shipment-manifest-fieldsM3 completo, bedrock.tf + BedrockManifestExtractorRoleEl prompt que hace la extracción en síM8.4 — PROMPT_TEMPLATE de tres líneas, sin few-shot, sin cadena de razonamiento
El guardrail gestionado, como códigoM4.2-M4.3, seis mecanismos, cinco políticasPrompt engineering avanzado, resistencia a inyección a nivel de aplicaciónM1.4, Ejercicio 1 — nombrado explícitamente como frontera, nunca desarrollado
Un guardrail propio, defensa en profundidadM4.5-M4.6, pre_invoke_checks.py/post_invoke_checks.pyRAG, embeddings, recuperación semánticaNunca mencionado como construcción en ninguna lección de esta guía
Mínimo privilegio de IAM sobre un modelo específicoM3.4, M5.3Agentes, function calling, orquestación multi-pasoNunca mencionado como construcción en ninguna lección de esta guía
El modelo de costo por tokenM2 completo, GENAI-COST-PROFILE.mdEvaluación semántica de calidad de una respuestaM7.5-M7.6 — el arnés compara forma, nunca significado, con la línea trazada en código (run_smoke_test() nunca lee expectedFields)
El security gate y el cost gate, extendidosM5.8, M6.8 — mismos jobs, sin ninguno nuevoTécnicas de reducción de alucinaciones a nivel de aplicaciónNunca mencionado como construcción en ninguna lección de esta guía
SLI/SLO de una carga de IAM7.2-M7.4, tasa de escalamiento, latencia, bloqueo del guardrailFine-tuning, entrenamiento o ajuste de un modelo propioNunca mencionado como construcción en ninguna lección de esta guía
El arnés de smoke test, estructura de comparaciónM7.6, manifest_extraction_smoke_test.pyLa métrica de calidad semántica que ese arnés compararía en producción realM7.5 — nombrada, con la cita textual de STRATEGY.md, nunca construida

Ocho filas, las mismas ocho del M1.4 — ninguna se agregó ni se quitó en el camino. La columna de la derecha, ahora con su propia confirmación, es la que este capstone puede escribir y el M1.4 no pudo: en la lección 4 del primer módulo, esa columna era una promesa; aquí, es un hecho verificado, lección por lección.


El momento más cercano a la frontera: el PROMPT_TEMPLATE del M8.4

Vale la pena mirar de cerca el único punto de esta guía donde un prompt real, con texto real, apareció — el M8.4:

PROMPT_TEMPLATE = (
    "Extract shipment fields from the manifest text below. Return a JSON "
    "object with exactly these keys: shipmentId, originCountry, "
    "destinationCountry, carrier, weightKg. If a field is not present in "
    "the text, omit the key rather than guessing.\n\nManifest text:\n{text}"
)

Cuatro líneas. Sin ejemplos de few-shot, sin una cadena de razonamiento paso a paso, sin un mensaje de sistema elaborado con reglas de tono o formato adicional, sin ninguna instrucción de manejo de ambigüedad más allá de "omite el campo en vez de adivinar" —una sola frase, no una estrategia—. El M1.4 ya lo anticipó con precisión: "el prompt de extract-shipment-manifest-fields va a ser corto, directo, y —a propósito— no una pieza de ingeniería de prompt pulida". Esta es, exactamente, esa promesa cumplida — no una casualidad de que el M8.4 haya necesitado poco texto, sino la disciplina activa de no agregar más de lo que el punto de la lección requería.

Compáralo con lo que un prompt de producción, diseñado por alguien que sí está resolviendo el problema de AI Engineering, probablemente incluiría: ejemplos de manifiestos ambiguos con su extracción correcta (few-shot), instrucciones explícitas sobre cómo manejar unidades de peso mixtas (kg frente a lb), una instrucción de razonamiento paso a paso antes de producir el JSON final, reglas de desambiguación para nombres de transportista con variaciones ortográficas. Ninguna de esas piezas aparece en PROMPT_TEMPLATE — no porque esta guía no supiera que existen, sino porque construirlas sería, exactamente, la receta que el manual de operaciones nunca debía escribir.


Lo que esta guía SÍ tuvo que nombrar, sin construir

Cerrar la frontera no significa que esta guía haya evitado, por completo, cualquier mención de territorio de AI Engineering — significa que, cada vez que lo mencionó, lo nombró y siguió, sin desarrollarlo. Vale la pena listar los puntos exactos donde eso ocurrió, porque son la prueba más concreta de la disciplina:

Concepto de AI EngineeringDónde se nombróQué dijo esta guía, exactamente
Prompt injection a nivel de aplicaciónM1.4, Ejercicio 1"Estructurar el prompt mismo para resistirlos es la mitad que corresponde a AI Engineering"
Evaluación semántica de calidadM7.5"No es lo mismo que evaluar la calidad de un LLM" — nombrada como la línea exacta que el M7.6 no cruza
Familias de modelos y capacidadesM1.6Se listan (Nova, Claude, Llama, Mistral) como catálogo, nunca se compara su calidad de razonamiento
Fine-tuningTabla del M1.4Nombrado en la columna derecha, sin ninguna lección dedicada en el resto de la guía

Cuatro menciones, cuatro veces donde la guía se detuvo exactamente en el nombre, sin dar un paso más — la misma disciplina que el M1.4, en su propia sección final, describió como "nombrarlo, y seguir".


Errores comunes

Buscar, en retrospectiva, "la lección donde esta guía sí cruzó la frontera un poco", asumiendo que en 36 lecciones tuvo que pasar al menos una vez (de desconfianza estadística). Qué pasa: alguien, familiarizado con lo difícil que es mantener una disciplina así durante una guía completa, busca activamente una excepción. Cómo detectarlo: si tu lectura de esta lección es "seguro se les escapó algo en alguna parte". Cómo corregirlo: la tabla de esta lección, con su columna de confirmación lección por lección, es exactamente la evidencia verificable para esa duda — cada fila apunta a un lugar específico donde se puede confirmar, no una afirmación de confianza sin evidencia. Si encuentras una lección de esta guía que sí desarrolla una técnica de prompt engineering, RAG o evaluación semántica más allá de nombrarla, eso sería una inconsistencia real que valdría la pena señalar — pero la tabla de esta lección, y el M1.4 que la originó, sostienen que no la hay.

Confundir "el prompt es corto" con "el prompt fue fácil de escribir bien" (de subestimar el trabajo de mantener la disciplina, no el trabajo de escribir el prompt en sí). Qué pasa: alguien lee PROMPT_TEMPLATE de cuatro líneas y concluye que esta parte de la guía "no tuvo trabajo real". Cómo detectarlo: si tu evaluación de esta lección es "escribir cuatro líneas de prompt no es gran cosa". Cómo corregirlo: el trabajo real de esta guía, en cada punto donde el prompt pudo haberse extendido, no fue escribir esas cuatro líneas — fue resistir la tentación de agregar una quinta, una sexta, una séptima, cada vez que el ejemplo de un manifiesto ambiguo (como 4479 en el M8.4, sin peso) invitaba a "mejorar" la instrucción con una regla más. El M1.4 ya lo dijo con precisión: "la respuesta correcta no es explicarlo mejor — es nombrarlo, y seguir", y esa disciplina, sostenida sesenta y cuatro lecciones, es el trabajo real, no la longitud del texto final.

Tratar esta lección como una simple repetición del M1.4, sin ningún valor agregado (de no notar la diferencia entre promesa y confirmación). Qué pasa: alguien, reconociendo la tabla del M1.4 casi intacta, concluye que esta lección no aporta nada nuevo. Cómo detectarlo: si tu resumen de esta lección es "es lo mismo que el M1.4, otra vez". Cómo corregirlo: la diferencia exacta está en la columna "Confirmado en" — el M1.4 prometió una frontera antes de que existiera una sola línea de código de esta guía; esta lección la confirma con la lección específica donde cada promesa se cumplió, algo que el M1.4, escrito primero, no podía hacer todavía. Prometer una disciplina y confirmar que se sostuvo son dos actos distintos, y el segundo es, precisamente, el trabajo de un capstone.


Ejercicios

Ejercicio 1 — Sin mirar la tabla de esta lección, recita de memoria las ocho filas del M1.4 (columna izquierda) con el módulo exacto donde cada una se construyó. Verifica tu respuesta contra la tabla de esta lección.

Ver solución

Infraestructura (M3), guardrail gestionado (M4.2-M4.3), guardrail propio (M4.5-M4.6), mínimo privilegio de IAM (M3.4/M5.3), modelo de costo (M2), gates extendidos (M5.8/M6.8), SLI/SLO (M7.2-M7.4), arnés de smoke test (M7.6). Si nombraste las ocho con su módulo correcto, tienes clara la arquitectura completa de esta guía, no solo la frontera.

Ejercicio 2 — Un compañero argumenta: "el M8.4 sí cruzó un poco la frontera, porque PROMPT_TEMPLATE le dice explícitamente al modelo que omita campos en vez de adivinar — eso ya es una técnica de prompt engineering". Evalúa este argumento con precisión.

Ver solución

El argumento tiene un grano de verdad que vale la pena reconocer con precisión, no descartar de plano: cualquier instrucción dentro de un prompt, técnicamente, es una decisión de prompt engineering en algún sentido amplio. Pero la distinción que el M1.4 traza no es "cero instrucciones", es "sin la profundidad adicional que AI Engineering desarrolla a fondo" — una sola frase de manejo de ambigüedad ("omite en vez de adivinar") está muy lejos de few-shot, cadenas de razonamiento, o estrategias de manejo de casos límite múltiples y encadenados, que es el tipo de profundidad que el M1.4 explícitamente delega. La línea correcta no es "cero prompt engineering en absoluto" —imposible, cualquier prompt implica alguna decisión—, es "ninguna lección de esta guía desarrolla prompt engineering como su propio objeto de estudio", y esa afirmación sí se sostiene, incluso con esa frase específica presente.

Ejercicio 3 — Predice qué le pasaría a esta guía si, en una versión futura, alguien agregara una novena lección al M4 explicando cómo mejorar PROMPT_TEMPLATE con few-shot. ¿Qué principio de esta lección se rompería, exactamente?

Ver solución

Se rompería, con precisión, la fila "El prompt que hace la extracción en sí" de la tabla de esta lección — esa lección nueva movería contenido de la columna derecha (territorio de AI Engineering) hacia la columna izquierda (lo que esta guía construye), exactamente el riesgo que el M1.4 nombró en su propia sección "Lo que pasa si esta frontera se cruza sin darse cuenta": "esta guía terminaría enseñando una versión más débil de lo que AI Engineering ya enseña a fondo". La guía seguiría funcionando técnicamente, pero dejaría de ser la fuente definitiva de su propia mitad del problema —la operación—, para convertirse en una fuente diluida de dos mitades distintas, ninguna completa.


Resumen y siguiente paso

Esta lección recorrió las ocho filas de la frontera que el M1.4 fijó primero, confirmando, con la lección exacta de cada módulo, que ninguna se cruzó en las treinta y seis lecciones de esta guía. Miraste de cerca el único prompt real que esta guía escribió —PROMPT_TEMPLATE, cuatro líneas, sin ninguna técnica avanzada— y las cuatro veces exactas donde un concepto de AI Engineering se nombró sin desarrollarse. El ledger de la lección 5 cerró qué quedó sin ejecutar; esta lección cierra qué quedó, deliberadamente, sin enseñar.

Antes de avanzar deberías poder: recitar las ocho filas de la frontera con su módulo exacto de construcción; explicar por qué PROMPT_TEMPLATE de cuatro líneas es una disciplina sostenida, no una tarea simple; y defender, con un ejemplo propio, por qué agregar una lección de prompt engineering al M4 rompería la identidad completa de esta guía.

La lección 7 mira hacia adelante, no hacia atrás: qué necesitaría Andes Cargo si su volumen de manifiestos escalados creciera al punto de justificar infraestructura que ni esta guía ni kubernetes-and-eks-in-production-guide construyen — nombrada, con precisión, sin fingir que existe un camino $0 para ella.

Recursos

  1. Este mismo curso, Módulo 1, lección 4 (04-the-boundary-with-ai-engineering-said-out-loud.md) — la fuente completa de la tabla de ocho filas y las tres citas textuales de STRATEGY.md que esta lección confirma.
  2. src/paths/aws-cloud-ecosystem/STRATEGY.md — la fuente original de la posición de esta guía en el grafo del ecosistema NIEVA.
  3. Este mismo curso, Módulo 8, lección 4 (04-end-to-end-walkthrough-the-ai-escalation-path-mixed-and-declared.md) — el origen de PROMPT_TEMPLATE, analizado en detalle en esta lección.
  4. Este mismo curso, Módulo 7, lecciones 5 y 6 — la frontera aplicada específicamente a evaluación de calidad, la segunda vez que esta guía la traza en detalle.