Context engineering: más allá del prompt engineering
En el mundo de la IA generativa está emergiendo un concepto más preciso que engloba todas las técnicas y conocimientos que aplicamos al trabajar con grandes modelos de lenguaje (LLMs): la ingeniería de contexto (context engineering). Esta disciplina va más allá del tradicional prompt engineering, pues no se limita a formular la pregunta perfecta, sino que abarca todo el ecosistema de información que rodea a una petición: desde las descripciones de tareas y ejemplos, hasta los datos externos, herramientas disponibles e historial de interacciones. En esencia, la ingeniería de contexto es “el arte de proporcionar al modelo exactamente la información que necesita, en el momento preciso, para resolver una tarea de manera óptima”.
¿Qué es el contexto en un LLM?
Antes de profundizar en qué es el contexto, es crucial entender por qué los LLMs lo necesitan. A diferencia de los humanos, que poseemos conocimiento del mundo, experiencias previas y la capacidad de inferir información implícita, los modelos de lenguaje son fundamentalmente procesadores de texto sin comprensión real del mundo. No tienen memoria persistente entre conversaciones, no pueden acceder a información actualizada más allá de su entrenamiento, y no conocen nada sobre el usuario específico o la situación particular en la que se están usando. Por eso, todo lo que un LLM necesita saber para responder adecuadamente debe estar explícitamente presente en su contexto. Sin él, incluso el modelo más avanzado queda limitado a generar respuestas genéricas basadas únicamente en patrones aprendidos durante su entrenamiento.
Ahora bien, ¿qué constituye exactamente ese contexto tan crucial? El contexto abarca todo lo que el modelo ve antes de generar su respuesta, y aquí es donde la ingeniería de contexto demuestra su valor. No se trata únicamente del prompt inmediato del usuario, sino de un conjunto mucho más rico de información. En una interacción típica con un modelo de lenguaje como ChatGPT, múltiples elementos se combinan para formar este contexto completo. Generalmente, el contexto de un modelo suele incluir:
Instrucciones del sistema (system prompt): Un prompt inicial que define el comportamiento general del modelo (por ejemplo, reglas o pautas de cómo debe responder, e incluso ejemplos de formato).
Prompt del usuario: La solicitud o pregunta específica que el usuario formula en ese turno.
Historial o estado (memoria de corto plazo): Los mensajes anteriores de la conversación (del usuario y de la IA) que el modelo conserva para dar coherencia y continuidad al diálogo actual.
Memoria a largo plazo: Conocimiento persistente acumulado de interacciones previas, como preferencias del usuario, hechos relevantes o resúmenes de conversaciones pasadas que el sistema ha guardado para usar más adelante.
Información recuperada: Datos externos relevantes obtenidos en el momento, ya sea de documentos, bases de conocimiento, búsquedas web o APIs, que se incorporan para responder a la consulta actual (lo que suele llamarse RAG, Retrieval Augmented Generation).
Herramientas disponibles: Funcionalidades o APIs que el modelo puede invocar para realizar acciones o obtener información (por ejemplo, una función
send_email
para enviar un correo, o acceso a una calculadora).Formato de salida esperado: Indicaciones sobre cómo debe formatear su respuesta el modelo, por ejemplo, instruirle que responda con un objeto JSON con ciertos campos.
Todos estos elementos conforman el contexto que proporcionamos al modelo. Cuanto más completo y pertinente sea ese contexto, mejor podrá el LLM entender qué se le pide y generar respuestas útiles. La ingeniería de contexto es, precisamente, la práctica de construir y gestionar este contexto de la forma más eficaz posible para cada tarea:
La disciplina de diseñar y construir sistemas dinámicos que proporcionan la información y las herramientas adecuadas, en el formato correcto y en el momento oportuno, de modo que el LLM tenga todo lo necesario para llevar a cabo una tarea.
Del prompt engineering a la ingeniería de contexto
Mientras que la ingeniería de prompts (prompt engineering) se enfoca en redactar una cadena de texto óptima para obtener una buena respuesta (es decir, encontrar las “palabras mágicas” en un prompt estático), la ingeniería de contexto va mucho más allá. Implica construir un sistema completo, no solo una frase.
Antes de llamar al modelo principal, un pipeline de contexto dinámico reúne y formatea todos los elementos relevantes: datos del usuario o de la aplicación, instrucciones, memoria, resultados de consultas externas, etc. Este contexto se crea sobre la marcha adaptándose a la petición específica.
Por ejemplo, para una solicitud de agendar una reunión, el sistema puede:
- Incorporar automáticamente información del calendario
- Revisar correos previos con los participantes
- Consultar la zona horaria de cada persona
- Preparar plantillas de invitación
Para otra consulta distinta quizás añada resultados de una búsqueda en la web. La meta es no dejar al modelo “a ciegas” ante nada importante: se le brinda justamente la información y herramientas necesarias para la tarea, y nada más (evitando el clásico “Garbage In, Garbage Out”).
Además, la forma en que se le entrega esa información al modelo importa: igual que con un humano, no es lo mismo presentarle datos de forma clara y resumida que darle un bloque caótico de texto sin formato. Por eso, la ingeniería de contexto cuida el formato:
- Proporcionando resúmenes concisos en vez de textos interminables
- Definiendo esquemas claros para las herramientas
- Estructurando la salida esperada
Esta evolución terminológica refleja un cambio real en el enfoque. El concepto de prompt engineering fue útil al inicio de la era GPT-3/ChatGPT para resaltar que cómo preguntamos influye en la respuesta de la IA. Sin embargo, el término se popularizó tanto que muchos empezaron a verlo con escepticismo, como si fuera apenas un nombre pomposo para “escribir cosas en un chatbot”.
Esa malinterpretación terminó eclipsando la complejidad genuina que conlleva diseñar buenos prompts. En cambio, hablar de “ingeniería de contexto” orienta la atención hacia el panorama completo: no solo la redacción del prompt, sino la orquestación de todos los elementos informativos alrededor del prompt.
De hecho, podríamos decir que la ingeniería de prompt ahora se entiende mejor como una parte dentro de la ingeniería de contexto – sigue siendo importante cómo formulamos las instrucciones al modelo, pero esa es solo una pieza más dentro de un proceso mayor. Como señala Philipp Schmid:
“Construir soluciones efectivas con LLM hoy es menos acerca de hallar el prompt perfecto o ajustar el modelo, y más acerca de proporcionar el contexto adecuado en su totalidad.”
Al final, ¿de qué sirve un prompt perfectamente redactado si al modelo le faltan los datos fundamentales para responder correctamente?
¿Por qué importa la ingeniería de contexto?
La importancia de este cambio de enfoque se hace evidente cuando desarrollamos aplicaciones complejas con LLMs, como los agentes de IA (programas autónomos impulsados por modelos de lenguaje). En estos sistemas, la diferencia entre un resultado mediocre y uno sobresaliente radica principalmente en el contexto proporcionado. Cuando un agente basado en LLM falla, el problema generalmente no está en el modelo sino en el contexto insuficiente o mal estructurado.
Como resume Schmid:
“La diferencia entre un demo básico y un agente mágico está en la calidad del contexto que le proporcionas.”
De hecho, según R. Lance Martin, la ingeniería de contexto es “efectivamente el trabajo #1 de los ingenieros que construyen agentes de IA”. Esta afirmación cobra sentido cuando entendemos que la gestión estratégica del contexto es lo que permite que los agentes manejen tareas complejas de manera efectiva, especialmente cuando enfrentan limitaciones en el tamaño de la ventana de contexto.
Ejemplo concreto: Agendando una reunión
Consideremos un asistente de IA al que le pides agendar una reunión a partir de un breve correo electrónico.
Agente con pobre contexto:
- Solo ve el mensaje: “Hey, ¿estás disponible para una reunión rápida mañana?”
- Respuesta genérica: “Gracias por tu mensaje. Mañana me viene bien. ¿A qué hora te refieres?”
- Resultado: educado pero no resuelve el problema
Agente con rico contexto:
- Consulta tu agenda para ver disponibilidad real
- Revisa emails anteriores para ajustar el tono
- Identifica al remitente en tu lista de contactos
- Dispone de herramientas para enviar invitaciones
- Respuesta personalizada: "¡Hola, Jim! Mañana lo tengo complicado, estoy con reuniones todo el día. ¿Te viene bien el jueves por la mañana? Acabo de enviarte una invitación, ya me dirás si te encaja."
Vemos que la magia no estuvo en un modelo más inteligente ni en un prompt secreto, sino en haber preparado el terreno con la información correcta. En suma, un buen contexto convierte a un modelo normal en un agente útil. Por eso la ingeniería de contexto es clave: conforme los modelos se vuelven más potentes, el cuello de botella pasa a ser qué tanto saben de la situación con la que deben trabajar.
Las cuatro estrategias fundamentales
Martin identifica cuatro estrategias principales que definen la práctica de la ingeniería de contexto:
1. Escribir contexto (Write Context)
Se refiere a guardar información fuera de la ventana de contexto para uso posterior. Esto incluye:
- Scratchpads: espacios temporales donde los agentes pueden anotar información relevante durante la ejecución de tareas
- Memorias de largo plazo: sistemas que persisten conocimiento entre sesiones (como las memorias de ChatGPT)
- Reflexión: técnicas donde el agente analiza sus propios resultados y los guarda para mejorar futuras respuestas
2. Seleccionar contexto (Select Context)
Consiste en recuperar información relevante para incluir en la ventana de contexto:
- Uso de embeddings y grafos de conocimiento para encontrar información pertinente
- Recuperación selectiva de herramientas apropiadas para cada tarea específica
- RAG (Retrieval Augmented Generation) para incorporar datos externos
- El desafío aquí es evitar la recuperación no intencionada de información irrelevante
3. Comprimir contexto (Compress Context)
Busca reducir el uso de tokens manteniendo la información esencial:
- Resumen recursivo: condensar progresivamente grandes cantidades de información
- Resumen jerárquico: crear múltiples niveles de detalle según la necesidad
- Recorte de contexto: eliminar información menos relevante cuando se alcanza el límite
- El objetivo es retener solo lo esencial sin perder el sentido
4. Aislar contexto (Isolate Context)
Implica dividir el contexto entre diferentes agentes o entornos:
- Sistemas multi-agente donde cada agente maneja una parte específica del problema
- Sandboxing para separar preocupaciones y evitar contaminación entre tareas
- Uso de objetos de estado para mantener contextos separados pero coordinados
Los desafíos del contexto
Martin también identifica problemas comunes que pueden surgir con una mala gestión del contexto:
- Context poisoning: cuando información incorrecta o maliciosa contamina el contexto
- Context distraction: cuando información irrelevante distrae al modelo de la tarea principal
- Context confusion: cuando el modelo no puede procesar correctamente contextos complejos o contradictorios
- Context clash: cuando diferentes piezas de información en el contexto entran en conflicto
Hacia una disciplina consolidada
La ingeniería de contexto está emergiendo como una habilidad fundamental para desarrolladores de aplicaciones con IA. Ya no se trata solo de saber redactar un prompt efectivo, sino de dominar estas cuatro estrategias fundamentales para gestionar la información de manera estratégica.
Es un desafío interdisciplinario que combina:
- Conocimiento del dominio de la aplicación (saber qué es relevante en cada caso)
- Diseño de experiencia conversacional
- Nociones de UX aplicada a IA (por ejemplo, decidir la estructura de los mensajes y resultados)
- Arquitectura de sistemas distribuidos (para manejo de contexto multi-agente)
El término context engineering está ganando adopción no solo en blogs y redes sociales, sino también formalizándose como disciplina técnica. La comunidad ya ha comenzado a organizar recursos y metodologías. Por ejemplo, existe un repositorio colaborativo en GitHub que se presenta como:
“Un manual práctico, de primeros principios, inspirado por Andrej Karpathy y 3Blue1Brown para ir más allá del prompt engineering hacia la disciplina más amplia del diseño, orquestación y optimización del contexto.”
Este esfuerzo colaborativo refleja la necesidad de metodologías y buenas prácticas específicas para la ingeniería de contexto, desde cómo optimizar el uso de la ventana de contexto (que siempre es limitada) hasta patrones para integrar memorias de largo plazo o herramientas de forma consistente.
Conclusión
La ingeniería de contexto no es solo un nuevo término de moda, sino la respuesta a una realidad práctica: para obtener el máximo provecho de los modelos de lenguaje actuales, necesitamos algo más que ingenio redactando prompts. Debemos proporcionar el entorno informativo completo en el que el modelo operará.
Quienes construyan soluciones con IA deberán “pensar en contexto” – diseñar sistemas que junten datos, conocimiento y capacidades en el input del modelo – igual o más de lo que piensan en la arquitectura de su código tradicional. Como dice Simon Willison, es muy posible que este término haya llegado para quedarse, porque captura mejor la esencia de lo que hoy marca la diferencia en las aplicaciones de IA.
La próxima vez que interactúes con un asistente inteligente y te sorprenda lo bien que entiende tus necesidades, recuerda: detrás de esa experiencia probablemente hubo un gran trabajo de ingeniería de contexto.