fedorthinks

Curso exprés · No. 26

Un LLM es brillante y está en blanco: entre una llamada y otra no recuerda nada, y en cada llamada solo conoce el texto que pones delante de él. Context engineering es la disciplina de ensamblar exactamente el texto correcto dentro de esa ventana — las instrucciones, los hechos, el historial, las herramientas, ni más ni menos. Es donde realmente vive la calidad de un LLM, y casi nunca tiene que ver con una redacción ingeniosa.

18 conceptos · un diagrama para cada uno · hoja de referencia al final

§ 01

Todo en este curso se deriva de un solo hecho sobre cómo funciona un modelo de lenguaje: no tiene memoria, y toda su conciencia en cualquier llamada es el texto que le envías. Entiende esto y el resto es evidente.

El mapa: 18 conceptos en siete grupos

Un mapa de metro: primero ves las líneas en conjunto, luego recorres estación por estación.

El curso recorre siete grupos. Primero — la ventana: qué sabe el modelo, en definitiva. Luego — el cambio de redactar un prompt a ensamblar contexto. Después — de qué está hecha la ventana, y las tres fuerzas que la degradan: la irrelevancia, el presupuesto y la podredumbre con el tiempo. Por último — la práctica: construir la ventana a propósito y medir el resultado.

1 · The windowStateless modelContext window2 · The shiftPrompt vs context engineeringMissing context3 · AssemblySystem promptFew-shotContext assembly4 · RelevanceRelevance > completenessContext dilutionCuration5 · BudgetContext budgetTrim & summarizeLong context windows6 · Rot & driftContext rotCompactionRe-anchoring7 · PracticeDeliberate assemblyContext evals
Siete grupos de conceptos — los capítulos 1–7 los siguen.

Cómo leer cada concepto

Un pasaporte: los mismos campos para todos, así es fácil compararlos.

Cada concepto de abajo recibe el mismo trato: su nombre en inglés (recuérdalo — así lo llaman los docs y los artículos), una imagen de la vida cotidiana, un diagrama y una ficha con campos como problema, idea, ejemplo, coste y relaciones. La idea principal del curso: la calidad de un LLM la decide lo que pones en la ventana, no una redacción ingeniosa.

Stateless Model — no recuerda nada entre llamadas

Un consultor brillante con amnesia total — en cada reunión tienes que volver a entregarle cada documento, porque no recuerda nada de la vez anterior.

Un modelo de lenguaje es stateless — ese es el concepto de Stateless Model: no conserva nada entre solicitudes. La ilusión de que un chatbot recuerda tu conversación no es más que el historial completo siendo reenviado cada vez. El modelo en sí empieza de cero en cada llamada, sabiendo únicamente lo que tiene delante en este momento.

Así que «¿qué sabe el modelo?» nunca tiene que ver con el modelo — depende por completo de lo que elegiste incluir esta vez.

call 1msg 1call 2msg 1reply 1msg 2call 3msg 1reply 1msg 2reply 2msg 3LLM — statelessstarts from a blank page on every callthe app re-sends the whole history every time — that is the "memory"
Stateless: en cada llamada la app reenvía todo el historial. La «memoria» de un chatbot vive en tu código, no en el modelo.
ConceptStateless Model· sin memoria entre llamadas
Qué es

El modelo no conserva nada entre solicitudes: cada llamada empieza en blanco.

Cómo funciona

Un chat «recuerda» la conversación solo porque la app reenvía todo el historial en cada llamada.

Ejemplo

La tercera pregunta de un chat llega al modelo junto con las dos primeras preguntas y ambas respuestas.

Trampa

Esperar que el modelo «recuerde» una regla de una sesión anterior — si no está en esta llamada, no existe.

Relaciones

Por eso la Context Window lo decide todo; un historial que crece lleva al Context Budget y al Context Rot.

Context Window — su única memoria de trabajo

Un trabajador que solo puede actuar según las notas clavadas en el tablero que tiene delante — borra el tablero y es como si nunca hubiera pasado nada.

La context window es el bloque de texto que el modelo ve en una llamada — tus instrucciones, la conversación, cualquier dato, las herramientas. Es toda la memoria de trabajo del modelo, y tiene un tamaño finito. Si un hecho, una regla o un mensaje anterior no está en la ventana, el modelo simplemente no lo sabe.

Todo aquello sobre lo que el modelo puede razonar, lo razona a partir de la ventana — lo que convierte a la ventana en aquello que de verdad diseñas.

CONTEXT WINDOW · finite sizeSystem promptConversation historyData / retrieved factsToolsUser messageModelreasons only from thisold chatcompany wikiforgotten rule✗ not in the window → the model simply doesn't know it
La ventana es todo lo que el modelo ve. Lo que queda fuera (un chat antiguo, la wiki de la empresa, una regla olvidada) no existe para él.
TermContext Window· la memoria de trabajo del modelo
Qué es

Todo el texto que el modelo ve en una llamada: instrucciones, historial, datos, herramientas.

Cómo funciona

El modelo razona solo a partir de la ventana. La ventana tiene un tamaño máximo en tokens.

Ejemplo

Un bot de soporte no conoce la política de reembolsos a menos que su texto se haya puesto en la ventana de esta llamada.

Trampa

«El modelo debería saberlo» — no: si no está en la ventana, no existe para el modelo.

Relaciones

La ventana se construye mediante Context Assembly; su tamaño es el Context Budget.

Por eso la calidad la decide lo que pones dentro

Un genio que responde solo a partir de la única carpeta que le entregas — dale la carpeta correcta y la respuesta es brillante; dale la equivocada y es inútil con total seguridad.

Como el modelo trabaja únicamente a partir de la ventana, la calidad de su salida se decide en su mayoría antes de que el modelo se ejecute — por lo que ensamblaste. El mismo modelo da una gran respuesta o una desesperante dependiendo por completo de si el contexto correcto estaba delante de él. Esto reformula todo el trabajo: no estás sacando inteligencia del modelo a fuerza de insistir, estás curando lo que llega a ver. Esa curación es context engineering.

quality is decided before the model runsRight contextthe right folderSame modelGreat answerMissing contextthe wrong folderSame modelUseless answerbut confidentyou engineer the input, not the model
El mismo modelo: con el contexto correcto — una gran respuesta; sin él — una respuesta inútil dicha con total seguridad. La palanca es la entrada, no el modelo.

El modelo es stateless y solo conoce su context window. La calidad de la salida la decide lo que ensamblas en esa ventana — así que lo que diseñas es la ventana, no el modelo.

§ 02

Se habla de «prompt engineering», pero a medida que las apps se vuelven serias el verdadero oficio se desplaza — de redactar una petición a ensamblar la información correcta a su alrededor. Ese cambio es el corazón de este curso.

Prompt Engineering vs Context Engineering — redacción frente a ensamblaje

Un abogado no gana por una frase ingeniosa, sino por entregar al juez exactamente los documentos correctos, en el orden correcto, sin nada irrelevante — el caso está en los papeles, no en el discurso.

El prompt engineering trata de cómo redactas la instrucción. El context engineering es el trabajo mayor: ensamblar toda la información que el modelo necesita — los hechos relevantes, el historial, los ejemplos, las herramientas — dentro de la ventana en cada llamada.

A medida que las aplicaciones crecen, la redacción importa menos y el ensamblaje importa más. La mayoría de los momentos de «la IA dio una mala respuesta» no son mala redacción; son el modelo sin un contexto que nunca se le dio.

Prompt engineeringInstruction wordinghow you phrase itone part of the windowContext engineeringSystem promptRetrieved factsHistoryExamplesToolsInstructionall the inputs, assembled every call
El prompt engineering es una parte de la ventana (la redacción). El context engineering son todas las entradas, ensambladas en cada llamada.
ConceptContext Engineering· frente a prompt engineering
Problema

La calidad se «afina» con la redacción del prompt mientras al modelo le faltan los hechos reales.

Idea

Diseñar toda la ventana: reglas del sistema, hechos, historial, ejemplos, herramientas — en cada llamada.

Ejemplo

En lugar de «¡responde con detalle y con exactitud!» — poner en la ventana el documento correcto y la regla clave.

Coste

Hace falta código que ensamble la ventana, y disciplina sobre qué entra.

Cuándo usarlo
En cuanto una función con LLM supera un único prompt de demo.
Relaciones

El prompt engineering es una parte; en la práctica es Context Assembly y Deliberate Assembly.

Missing Context — la mayoría de los problemas de calidad son problemas de contexto

Un asistente que da una respuesta equivocada porque olvidaste mencionar la única restricción que lo cambiaba todo — no es tonto, solo está desinformado.

Cuando una función con LLM rinde por debajo de lo esperado, el instinto es retocar la redacción del prompt o culpar al modelo. Mucho más a menudo la causa real es contexto ausente o equivocado (missing context): no se recuperó el documento relevante, no se incluyó una regla clave, un historial obsoleto lo confundió.

Antes de reformular nada, pregunta qué tenía realmente el modelo delante. Arreglar el contexto corrige más errores que arreglar la redacción.

Bad answerfrom the LLMReword the promptrarely the real causeinstinctCheck the windowwhat did it actually see?doc not retrievedkey rule not includedstale historyfix the context → fixes the bug
¿Una mala respuesta? El instinto es reescribir el prompt. El primer paso correcto es mirar qué había en la ventana: un documento no recuperado, una regla no incluida, historial obsoleto.
ConceptMissing Context· contexto ausente o equivocado
Problema

El modelo responde mal, y el equipo reescribe el prompt una y otra vez — sin efecto.

Idea

Primero mirar qué había en la ventana en la llamada fallida; solo después tocar la redacción.

Ejemplo

El bot cita un plan de precios antiguo: en la ventana estaba el historial obsoleto, no la lista de precios nueva.

Causas típicas

No se recuperó el documento, no se incluyó la regla, un historial obsoleto lo confundió.

Relaciones

Se arregla con Context Assembly y Curation; se verifica con Context Evals.

El modelo es tan bueno como sus entradas

El mejor chef solo puede cocinar con los ingredientes que hay en la encimera — dale los equivocados y la destreza no salvará el plato.

Un modelo capaz con mal contexto pierde frente a un modelo más débil con un contexto excelente. Por eso el context engineering, y no la elección del modelo, suele ser el lugar donde el esfuerzo rinde más: la salida del mismo modelo oscila enormemente según lo que le des. No consigues una mejor respuesta exigiendo con más fuerza — la consigues poniendo en la ventana un material mejor, más afilado, más relevante. Las entradas son la palanca.

El prompt engineering es la redacción; el context engineering es ensamblar la información correcta. En lo segundo vive la calidad — y la mayoría de las malas respuestas son contexto ausente, no mala redacción.

§ 03

Parte de lo que entra en la ventana es duradero y parte es por petición, y unos pocos ingredientes concretos hacen la mayor parte del trabajo. Saber cuáles son hace que ensamblar contexto sea algo concreto.

System Prompt — el comportamiento permanente frente a la petición puntual

La política permanente de un restaurante — «somos vegetarianos, cerramos a las diez» — frente al pedido concreto de esta noche. Una lo enmarca todo; el otro es lo que se pide.

El system prompt contiene las instrucciones duraderas que valen para toda la interacción: el rol del modelo, las reglas que debe seguir, el tono, el formato de salida. El mensaje del usuario es la petición concreta.

Poner tu persona, tus guardarraíles y tus reglas permanentes en el system prompt las mantiene estables mientras las preguntas del usuario varían. Es la diferencia entre lo que el modelo es en cada llamada y lo que se le pide esta vez.

System promptrole · rules · tone · output formatthe same on every callUser: where's my order?User: can I get a refund?User: open on Sunday?changes every callwho the model IS vs what it is asked THIS time
El system prompt es el mismo en cada llamada (rol, reglas, tono, formato). El mensaje del usuario cambia cada vez.
TermSystem Prompt· frente al mensaje del usuario
Qué es

Instrucciones duraderas para toda la interacción: rol, reglas, tono, formato de salida.

Frente a
El mensaje del usuario — la petición concreta de esta vez.
Ejemplo

System: «Eres el bot de soporte de una tienda, responde breve, nunca prometas descuentos.» Usuario: «¿Dónde está mi pedido?»

Trampa

Si mezclas las reglas permanentes con la petición, «flotarán» de una pregunta a otra.

Relaciones

La primera pieza de Context Assembly; el formato de salida suele mostrarse mejor con Few-shot.

Few-shot Prompting — muestra, no solo cuentes

Enseñar un formato mostrando tres ejemplos terminados es más rápido y claro que describirlo con palabras y confiar en que se lo imaginen bien.

A menudo la forma más fiable de conseguir la forma de salida que quieres es incluir unos pocos ejemplos de entrada y de salida ideal directamente en el contexto. Es el patrón de few-shot prompting. El modelo imita ejemplos mucho mejor de lo que sigue una descripción abstracta.

Dos o tres ejemplos afilados pueden superar a un párrafo de instrucciones, y suelen ser el arreglo más rápido cuando el modelo hace casi lo que quieres pero no del todo.

Tell: instructions onlyDescribe the formata paragraph of rulesAlmost rightshape driftsShow: few-shot examplesinput 1ideal output 1input 2ideal output 2input 3ideal output 3new inputsame shape ✓
Izquierda — describir el formato con palabras y obtener «casi bien». Derecha — mostrar pares «entrada → salida ideal», y una entrada nueva recibe la misma forma.
PatternFew-shot Prompting· ejemplos en el contexto
Problema
El modelo casi lo logra, pero la forma de la salida se desvía.
Idea

Poner 2–3 pares «entrada → salida ideal» en la ventana — el modelo repite el patrón.

Ejemplo

Tres ejemplos de «reseña → JSON con sentimiento y tema», luego una reseña nueva — y la respuesta vuelve en el mismo JSON.

Coste

Los ejemplos consumen tokens en cada llamada — forman parte del Context Budget.

Cuándo usarlo
Cuando importa la forma y un párrafo de instrucciones no ayuda.
Relaciones

Una de las piezas de Context Assembly; complementa al System Prompt.

Context Assembly — construir la ventana a partir de piezas

Preparar un maletín para una reunión: la agenda, los dos informes relevantes, una nota con las restricciones — elegidos a propósito, no todo tu archivador volcado dentro.

Una context window real se ensambla a partir de piezas en cada llamada: el system prompt, el historial relevante, los hechos recuperados (RAG), los ejemplos, las herramientas disponibles y, por último, la petición del usuario. Eso es context assembly: decidir — deliberadamente, cada vez — qué piezas entran y cuáles se quedan fuera.

Pensar en la ventana como algo que construyes a partir de piezas, y no solo como un prompt que escribes, es el cambio mental que hace que todo lo demás encaje.

System promptHistoryRetrieved factsExamplesToolsUser requestyour codepicks per callthis call's windowSystem promptHistoryRetrieved factsExamplesToolsUser request
En cada llamada tu código elige las piezas — system prompt, historial, hechos, ejemplos, herramientas, petición — y ensambla con ellas la ventana.
PracticeContext Assembly· construir la ventana a partir de piezas
Problema

La ventana es «solo un prompt», y lo que ande cerca acaba metido dentro.

Idea

Ensamblar la ventana en código a partir de piezas: system prompt, historial, hechos de RAG, ejemplos, herramientas, petición.

Ejemplo

Una pregunta sobre un pedido: las reglas del bot + los últimos 3 mensajes + los datos de este pedido + la pregunta. No todo el catálogo.

Coste
Cada pieza hay que elegirla y justificarla — eso es trabajo, no magia.
Relaciones

Piezas — System Prompt, Few-shot; filtro — Curation; hábito — Deliberate Assembly.

El system prompt fija el comportamiento duradero; el mensaje del usuario es la petición; los ejemplos few-shot muestran la forma que quieres. Una ventana se ensambla con estas piezas, deliberadamente, en cada llamada.

§ 04

El mayor error de principiante en context engineering es pensar que más es mejor. Es justo al revés: cada token irrelevante que añades empeora activamente la respuesta.

Relevance over Completeness — más contexto no es mejor contexto

Un informe de una página afilada vale más que un volcado de 200 páginas — el lector encuentra la señal en vez de ahogarse en ella, y decide más rápido y mejor.

Es tentador meter en la ventana todo lo posiblemente relevante «por si acaso». Pero más no es mejor — normalmente es peor. El principio es relevance over completeness (relevancia sobre exhaustividad): cada token compite por la atención del modelo, y el material irrelevante diluye la señal.

La habilidad está en seleccionar las pocas cosas que importan, no en incluir todo lo que podría importar.

Everything, just in casethe signalsignal diluted · slower · pricierOnly what this call needskey factthe one rulethe requestsharp answer
Izquierda — todo «por si acaso»: la señal se ahoga en ruido. Derecha — solo lo que necesita esta llamada: una respuesta afilada.
PrincipleRelevance over Completeness· justo lo suficiente, no todo
Problema
Todo entra en la ventana «por si acaso».
Idea
El objetivo no es darle al modelo todo — es darle justo lo suficiente.
Ejemplo

En lugar de toda la base de conocimiento — los tres párrafos que de verdad responden a esta pregunta.

Coste

Hay que saber seleccionar: buena recuperación, recortes, decisiones sobre qué descartar.

Relaciones

Por qué — Context Dilution; cómo — Curation; además ahorra Context Budget.

Context Dilution — el ruido aumenta la probabilidad de una respuesta equivocada

Esconde el único hecho relevante dentro de una montaña de papel casi todo irrelevante y hasta un lector cuidadoso empieza a citar la página equivocada — el propio ruido causa el error.

Un contexto largo y relleno no solo desperdicia espacio; degrada activamente la calidad. Eso es context dilution: enterrada bajo material irrelevante, la atención del modelo se reparte demasiado, y en contextos largos esto aumenta de forma medible la tasa de alucinaciones y errores — usa con total seguridad algo que nunca estuvo pensado para ser la respuesta.

Añadir contexto «por si acaso» puede ser justo lo que provoca el fallo. Menos contexto, más afilado, es un contexto más fiable.

Modelattention spread thinnoisenoiseright factnoisenearby, wrongnoisemore noise → more chance it latches onto the wrong thing
La atención del modelo se reparte entre el ruido — y se agarra a algo cercano pero equivocado, no al hecho correcto.
ConceptContext Dilution· señal ahogada en ruido
Qué es

Los tokens irrelevantes diluyen la atención del modelo hacia la señal que importa.

Qué arriesga

En contextos largos sube la tasa de alucinaciones y errores: el modelo agarra la pieza equivocada.

Ejemplo

Veinte documentos parecidos en la ventana — el modelo cita el contrato vecino en vez del correcto.

Trampa

El contexto «por si acaso» parece inofensivo — y puede ser la causa misma del fallo.

Relaciones

Se arregla con Curation; una ventana mayor (Long Context Windows) no lo anula.

Curation — curar sin piedad para esta llamada

Un buen editor no añade — recorta, y te entrega solo las líneas que se ganan su sitio en esta página.

La disciplina es la curación implacable: para esta llamada concreta, incluye las pocas cosas que el modelo realmente necesita y deja fuera todo lo demás. Eso significa recuperar solo los fragmentos más relevantes, recortar el historial a lo que importa, descartar el contexto que ya cumplió su función.

everything that might be relevantretrieve only top chunkstrim history to what mattersdrop finished contextExactly enough
El embudo de la curación: de todo lo que podría ayudar — solo los mejores fragmentos, la parte del historial que importa, y nada que ya haya cumplido su función.
PracticeCuration· curación implacable del contexto
Problema
La ventana crece sola: lo que haya a mano se envía al modelo.
Idea

En cada llamada: solo los fragmentos más relevantes, el historial recortado, nada que ya haya cumplido su función.

Ejemplo

La búsqueda encuentra 50 fragmentos, los 3 mejores entran en la ventana; la salida de una herramienta que ya se digirió se descarta.

Coste

Puedes recortar algo necesario — por eso los cambios se comprueban con Context Evals.

Relaciones

Encarna Relevance over Completeness; hermana de Trim & Summarize y Compaction.

Más contexto no es mejor — los tokens irrelevantes diluyen la atención y aumentan las alucinaciones. Cura sin piedad: dale al modelo exactamente lo que necesita esta llamada, y nada más.

§ 05

Más allá de la calidad, la ventana es un recurso finito y de pago. Tratarla como un presupuesto escaso y no como un vertedero infinito es lo que separa un juguete de un producto.

Context Budget — la ventana es finita y cada token cuesta

Una maleta con límite de peso y una tarifa por kilo — metes lo que de verdad vas a necesitar, no todo tu armario, porque hay un tope duro y un precio.

La context window tiene un tamaño máximo, y cada token que contiene cuesta latencia y dinero — los contextos más grandes son más lentos y más caros en cada llamada. Así que el contexto no es espacio libre que rellenar; es un context budget que gastas.

Una función que llena la ventana en cada solicitud es lenta y costosa a escala, incluso antes de que sufra la calidad. La ventana es un recurso que se asigna, no un vacío que se llena.

context windowhard capsystemhistoryretrievedrequestfreeLatencyevery call slowerMoneyevery call priciereach token you add is paid for on every single call
La ventana tiene un tope duro, y cada token que contiene se paga en latencia y dinero — en cada llamada.
ConceptContext Budget· la ventana como recurso escaso
Qué es

La ventana es un recurso finito y de pago: un tope de tamaño y un precio por cada token.

Qué pagas
Latencia y dinero — en cada llamada, multiplicado por el tráfico.
Ejemplo

Una función envía todo el historial y todo el manual de referencia con cada solicitud — lenta y cara antes incluso de que sufra la calidad.

Cuándo pensarlo

Desde el primer día, en cuanto la función llega a usuarios reales.

Relaciones

Se gasta con cabeza mediante Trim & Summarize; no lo anulan las Long Context Windows.

Trim & Summarize — gastar la ventana en lo que se gana su sitio

Un presupuesto de viaje ajustado obliga a elegir de verdad — gastas en lo que importa para el viaje y prescindes del resto, y el viaje mejora gracias a esa disciplina.

Tratar la ventana como un presupuesto cambia cómo construyes: recortas (trim) el historial de la conversación, resumes (summarize) los turnos antiguos en vez de arrastrarlos literalmente, y recuperas solo lo relevante ahora en vez de todo lo que tienes. Cada token debe ganarse su sitio.

Es la misma disciplina que con el rendimiento o el caché — gastar el recurso escaso deliberadamente, en lo que de verdad mueve el resultado.

verbatim historyturn 1turn 2turn 3turn 4turn 5turn 6turn 7turn 8summarizewhat you sendSummaryturns 1–6 in a few linesturn 7turn 8fewer tokens, same meaning
Ocho turnos literales → un resumen corto de los seis primeros más los dos últimos turnos tal cual. Menos tokens, el mismo significado.
PracticeTrim & Summarize· recortar y resumir el historial
Problema

El historial de la conversación crece, y cada turno viaja literal dentro de la ventana.

Idea

Los turnos antiguos como un resumen corto, los recientes tal cual; recuperar solo lo que hace falta ahora.

Ejemplo

En lugar de 40 mensajes de chat — un resumen «el cliente quiere devolver el pedido #…, ya envió una foto» + los últimos 2 mensajes.

Coste
Un resumen puede perder un detalle — compruébalo con evals.
Relaciones

Gasta con cabeza el Context Budget; en tareas largas se convierte en Compaction.

Long Context Windows — una ventana mayor no acaba con la disciplina

Alquilar un camión más grande no significa que debas llenarlo de trastos — más capacidad es sitio para más cosas útiles, no licencia para dejar de empacar con cuidado.

Los modelos siguen sacando ventanas de contexto cada vez mayores (long context windows) — un millón de tokens, o más — y es tentador pensar que el problema del presupuesto desaparece. No desaparece. Una ventana mayor sigue costando más y yendo más lenta por token, y, sobre todo, una ventana más llena sigue diluyendo la atención e invitando a errores.

Más capacidad no es permiso para volcar; es solo más espacio que sigues teniendo que gastar con cabeza. La disciplina de curar la ventana sobrevive a cualquier aumento de tamaño.

usefulusefulusefulsmall windowusefulusefuluseful1M tokens: more room, still costs, still dilutes
Ambas ventanas contienen la misma pequeña cantidad de material útil. La grande solo tiene más sitio para el ruido — y sigues pagando por token.
TermLong Context Windows· ventanas de 1M+ tokens
Qué es
Modelos con ventanas de un millón de tokens o más.
La tentación
Pensar que, como todo cabe, ya no hace falta curar.
Ejemplo

Volcar todo el repositorio en la ventana «porque cabe» — caro, lento, y el modelo se confunde.

Trampa

Una ventana más llena significa una Context Dilution más fuerte y más sitio para el Context Rot.

Relaciones

Sube el tope del Context Budget, pero no anula Relevance over Completeness.

La ventana es finita y cada token cuesta latencia y dinero. Gástala como un presupuesto — recorta, resume, recupera solo lo necesario — y no dejes que una ventana mayor acabe con la disciplina.

§ 06

En interacciones largas y de varios pasos, el contexto no se queda quieto — se acumula y se degrada. Gestionar esa degradación es la parte más difícil e importante del context engineering a escala.

Context Rot — los contextos largos acumulan estado obsoleto y contradictorio

Un teléfono estropeado por una fila larga — al final el mensaje ha mutado sin hacer ruido, y todos repiten con total seguridad algo ligeramente equivocado.

A lo largo de una conversación larga o de una tarea de agente de varios pasos, la ventana se llena de historial: turnos anteriores, salidas de herramientas, razonamientos a medias. Con el tiempo este montón se vuelve desordenado — hechos obsoletos junto a hechos frescos, contradicciones que se acumulan, el objetivo original que se sale de foco.

La industria llama context rot a la degradación de calidad resultante: el mismo modelo se vuelve menos fiable a medida que su propio contexto acumulado se llena de ruido.

goalstep 1goaltool outputfactstep 5goaltool outputfactstale facttool outputstep 10goaltool outputstale factfacttool outputcontradictiontool outputstale factstep 20sharpnoisy — reliability decays
Con cada paso la ventana crece: salidas de herramientas, hechos obsoletos, contradicciones. El objetivo se hunde al fondo y la fiabilidad cae.
ConceptContext Rot· deterioro del contexto, deriva
Qué es

Degradación de la calidad a medida que el contexto acumulado se llena de ruido.

Cómo se ve

Hechos obsoletos junto a hechos frescos, contradicciones, el objetivo original que se sale de foco.

Ejemplo

En el paso 30 un agente se apoya en una versión de un archivo que él mismo reescribió en el paso 10.

Trampa

Una ventana mayor lo empeora: da más sitio para que la podredumbre se acumule.

Relaciones
Se arregla con Compaction y Goal Re-anchoring.

Compaction — comprimir sobre la marcha

Un buen tomador de notas no conserva cada palabra de una reunión larga — la destila en decisiones y preguntas abiertas, y lleva adelante la conclusión, no la transcripción.

El arreglo es comprimir activamente el contexto a medida que crece. Eso es compaction: resumir los pasos terminados en un estado corto y continuo en vez de arrastrar la transcripción completa, descartar las salidas de herramientas una vez extraído lo que importaba, mantener un resumen de trabajo ajustado en lugar del historial en bruto.

El modelo lleva la conclusión, no cada palabra que la produjo. Así se mantienen coherentes los agentes de larga duración — gestionan su propio contexto en vez de dejar que se amontone.

raw transcriptstep 1: reasoningtool outputstep 2: reasoningtool outputstep 3: reasoningtool outputstep 4: reasoningtool outputcompressRunning summarygoal + constraintsdecisions madeopen questionscurrent step
La transcripción en bruto (razonamiento + salidas de herramientas) se comprime en un resumen continuo: el objetivo, las decisiones tomadas, las preguntas abiertas, el paso actual.
PracticeCompaction· comprimir el contexto sobre la marcha
Problema

Un agente de larga duración arrastra toda la transcripción y empieza a confundirse.

Idea

Los pasos terminados pasan a ser un estado actual breve; las salidas de herramientas ya digeridas se descartan.

Ejemplo

En lugar de 200 líneas de log de tests — «los tests fallan en auth.ts, causa: token caducado».

Coste

La compresión puede perder algo importante — escribe el resumen con cuidado.

Relaciones

Trim & Summarize para agentes; va de la mano con Goal Re-anchoring contra el Context Rot.

Goal Re-anchoring — reanclar el objetivo

En una caminata larga y sinuosa revisas el mapa y el destino con regularidad — si no, te desvías, un giro de aspecto razonable tras otro, de adonde querías ir.

Tras muchos pasos, el objetivo original se erosiona bajo el peso de todo lo ocurrido después. Así que lo reanclas (re-anchoring): vuelves a enunciar el objetivo y las restricciones clave en la ventana en cada paso, para que el modelo siga apuntando al blanco real en vez de derivar con la conversación.

Una ventana mayor lo empeora, no lo mejora — da más sitio a que la deriva se acumule. Lo que mantiene una tarea larga en su curso es la gestión activa, no la capacidad en bruto.

Taskgoal + limitsTargetwhat you meantrestate goalrestate goalrestate goalDriftedeach turn looks reasonable — the sum driftsre-anchoring: put the goal back in the window at every step
Sin ancla, cada paso parece razonable, pero la suma te lleva por mal camino. Con ancla, el objetivo vuelve a la ventana en cada paso.
PracticeGoal Re-anchoring· reenunciar el objetivo en cada paso
Problema

Tras muchos pasos el objetivo se erosiona, y el modelo deriva con la conversación.

Idea

Volver a poner el objetivo y las restricciones clave en la ventana en cada paso.

Ejemplo

Cada paso del agente empieza con un bloque «Objetivo: pasar la API a v2 sin cambiar los métodos públicos.»

Coste
Un par de líneas de tokens por paso — barato comparado con la deriva.
Relaciones

Funciona junto con Compaction; la primera línea del resumen continuo es el objetivo.

Los contextos largos se pudren — se acumula estado obsoleto y contradictorio y la calidad se degrada. Comprime los pasos terminados en un resumen continuo y reancla el objetivo, porque una ventana mayor solo da más sitio a la deriva.

§ 07

El context engineering bien hecho es ensamblaje deliberado, medido como todo lo demás. Toda la práctica se reduce a construir la ventana a propósito y comprobar que ayudó.

Deliberate Assembly — construir la ventana a propósito, no por accidente

Un chef emplata un plato a propósito — cada elemento colocado por una razón — en vez de rascar sobre el plato lo que haya en la encimera.

El hábito central es el deliberate assembly: tratar la ventana como algo que construyes a propósito. Decide qué contiene el system prompt, qué historial conservar o resumir, qué recuperar, qué ejemplos mostrar, qué herramientas exponer.

Muchas apps de LLM ensamblan el contexto por accidente — se envía lo que casualmente andaba por ahí. Construirlo a propósito, con cada pieza justificada, es buena parte de lo que separa una función fiable de una inestable.

By accidentfull historyrandom docall 40 toolsold logslast errorOn purpose✓ system prompt: what it holds✓ history: keep or summarize✓ retrieval: what to fetch✓ examples: which to show✓ tools: which to exposeflakyreliable
Por accidente — lo que haya a mano (el historial completo, todas las herramientas, logs antiguos). A propósito — cada pieza tiene una decisión y una razón.
PrincipleDeliberate Assembly· construir la ventana a propósito
Problema

El contexto se ensambla por accidente — y la función solo funciona a veces.

Idea

Tomar una decisión para cada pieza: system prompt, historial, recuperación, ejemplos, herramientas.

Ejemplo

El agente recibe las 5 herramientas que necesita en vez de las 40 — y un resumen corto en vez de todo el historial.

Coste
Tiempo dedicado a diseñar la ventana — se recupera en fiabilidad.
Relaciones

El hábito que se apoya en Context Assembly; se verifica con Context Evals.

Context Evals — medir el contexto como mides el código

No adivinas si un cambio ayudó — lo pruebas. Lo mismo vale para lo que pones en la ventana: una respuesta mejoró o empeoró, y deberías saber cuál de las dos.

Los cambios de contexto son cambios de verdad, así que verifícalos: cuando ajustas lo que entra en la ventana — más ejemplos, otra recuperación, historial recortado — comprueba el efecto con evals, no te limites a mirar una salida a ojo.

El context engineering sin medición es afinar por intuición, y así es como una adición «inofensiva» degrada la calidad sin ruido. Trata el contenido de la ventana como algo que se prueba, con la misma disciplina que el curso de evals.

Change the contextwhat goes in the windowRun the evalsa fixed test setCompare the scorebetter or worse?Keep or revert✗ not: eyeball one output and hope
El bucle: cambiar el contexto → ejecutar los evals → comparar la puntuación → conservar o revertir. No “echar un vistazo a una respuesta y esperar”.
PracticeContext Evals· evals para cambios de contexto
Problema

Un cambio en la ventana parece mejor «a ojo» — y en realidad empeoró la calidad sin ruido.

Idea

Cada cambio de contexto se ejecuta sobre un conjunto de pruebas fijo y se comparan las puntuaciones.

Ejemplo

Historial recortado a 5 mensajes — ejecutar 100 diálogos de prueba y ver si mejoró o empeoró.

Coste

Hay que montar un conjunto de pruebas y seguir ejecutándolo — eso es trabajo.

Relaciones

Comprueba Curation, Trim & Summarize, Compaction; en profundidad — el curso de evals.

Antes de lanzar una función con LLM
  • ¿Está en la ventana todo lo que el modelo necesita — o esperas que sepa lo que nunca le diste?
  • System frente a usuario — ¿reglas duraderas en el system prompt, la petición en el mensaje del usuario?
  • ¿Ayudarían los ejemplos — ¿es un caso en el que few-shot gana a más instrucciones?
  • ¿Es relevante cada pieza — o el relleno diluye la atención y aumenta los errores?
  • ¿Estás dentro del presupuesto — recortando y resumiendo en vez de volcarlo todo?
  • En tareas largas, ¿comprimes y reanclas contra el context rot?
Señales de que haces buen context engineering
  • Arreglas las malas respuestas comprobando qué hay en la ventana antes de reformular el prompt.
  • Las reglas duraderas viven en el system prompt; recurres a ejemplos few-shot cuando importa la forma.
  • Curas sin piedad — relevancia sobre exhaustividad — en vez de rellenar la ventana.
  • Tratas la ventana como un presupuesto, recortando y resumiendo en vez de volcar.
  • En tareas largas comprimes y reanclas, y mides los cambios de contexto en vez de adivinar.

Cómo encaja todo

El mapa de metro completo: ahora ves dónde se cruzan las líneas.

El modelo es stateless → así que la ventana lo decide todo → así que la ventana es lo que diseñas. La ventana se ensambla a partir de piezas (system prompt, ejemplos, hechos). Tres fuerzas la degradan: la irrelevancia, el presupuesto y la podredumbre con el tiempo. Cada una tiene su propia práctica: curation, trim and summarize, compaction con re-anchoring. Y los evals comprueban que cada cambio realmente ayudó.

Stateless modelContext windowContext engineeringwhat goes into the windowSystem promptFew-shotContext assemblymade ofthree forces that degrade itIrrelevancedilutionBudgetlatency · moneyContext rotdrift over timefixed byfixed byfixed byCurationrelevance firstTrim & summarizespend tokens wiselyCompaction+ re-anchoringContext evalsmeasure every change
La cadena de los conceptos del curso: de un modelo stateless a diseñar la ventana, las tres fuerzas que la degradan, las prácticas contra ellas, y los evals como comprobación.

Hoja de referencia: los 18 conceptos

La ventana

Stateless Modelsin memoria entre llamadas

No recuerda nada entre llamadas; la «memoria» de un chat es historial reenviado.

Context Windowmemoria de trabajo

Todo el texto de una llamada — la única memoria de trabajo del modelo. Si no está en la ventana — no existe.

El cambio

Context Engineeringfrente a prompt engineering

No redactar la petición, sino ensamblar toda la información necesaria en la ventana.

Missing Contextcontexto ausente o equivocado

La mayoría de las malas respuestas no son mala redacción — es lo que no estaba en la ventana.

Ensamblar la ventana

System Promptfrente al mensaje del usuario

Rol, reglas, tono y formato duraderos — frente a la petición puntual.

Few-shot Promptingejemplos en el contexto

Muestra 2–3 pares «entrada → salida» — el modelo repite la forma.

Context Assemblyconstruido a partir de piezas

La ventana se ensambla en código en cada llamada: reglas, historial, hechos, ejemplos, herramientas, petición.

Relevancia

Relevance over Completenessjusto lo suficiente

Darle al modelo no todo, sino justo lo suficiente.

Context Dilutionahogado en ruido

Los tokens irrelevantes reparten la atención y aumentan las alucinaciones.

Curationselección implacable

Solo los mejores fragmentos, el historial recortado, nada que ya haya cumplido su función.

Presupuesto

Context Budgetrecurso escaso

La ventana es finita; cada token cuesta latencia y dinero en cada llamada.

Trim & Summarizerecortar y resumir el historial

Los turnos antiguos como resumen, los recientes tal cual; cada token se gana su sitio.

Long Context Windows1M+ tokens

Más sitio no es permiso para volcar; el ruido y el precio siguen ahí.

Podredumbre y deriva

Context Rotdeterioro del contexto

Un contexto largo acumula estado obsoleto y contradictorio — la calidad cae.

Compactioncomprimir sobre la marcha

Los pasos terminados pasan a un resumen continuo breve en lugar de la transcripción.

Goal Re-anchoringreenunciar el objetivo

Volver a poner el objetivo y las restricciones en la ventana en cada paso.

Práctica

Deliberate Assemblya propósito

Cada pieza de la ventana tiene una decisión y una razón — no «lo que hubiera a mano».

Context Evalsmedir los cambios

Cada cambio en la ventana se comprueba con pruebas, no a ojo.

El context engineering es el ensamblaje deliberado de la ventana: las reglas correctas, los hechos correctos, los ejemplos correctos, curados por relevancia, dentro del presupuesto y gestionados contra la podredumbre — construida a propósito y medida, no escrita y esperada.

Fin del curso exprés · 7 capítulos · 18 conceptos

Lo que sigue es la práctica: toma una función con LLM que a veces da malas respuestas y, antes de tocar la redacción del prompt, registra exactamente qué había en la ventana en una llamada fallida — normalmente encontrarás contexto ausente, obsoleto o irrelevante, no mala redacción. Después arregla el ensamblaje: añade el hecho que faltaba, quita el ruido, resume el historial. La disciplina encaja en el momento en que una ventana mejor construida gana a un prompt más ingenioso. Pero mantén una idea por encima de todas: el modelo solo sabe lo que está en la ventana. Deja de intentar sacarle inteligencia a base de insistir, y empieza a diseñar lo que llega a ver — ahí estuvo la calidad todo el tiempo.