Prompt como sistema de contexto
El cambio fundamental de paradigma
La visión tradicional trata los prompts como «comandos» o «instrucciones». En la ingeniería de contexto moderna, los prompts son sistemas de contexto estructurado que definen el entorno operativo completo del modelo. Este cambio de paradigma es fundamental para trabajar con LLM avanzados.
Cambio de paradigma
❌ Visión antigua
- • Prompt = texto de instrucción
- • Enfoque en «cómo pedir»
- • Instrucciones lineales
- • Resultado impredecible
✅ Visión nueva
- • Prompt = sistema de contexto
- • Enfoque en «entorno operativo»
- • Capas estructuradas
- • Comportamiento predecible
El contexto como contrato
Piensa en el contexto como un contrato entre tú y el modelo. El contexto define:
Qué esperas
Qué no debe ocurrir
Cómo evaluar el éxito
Ejemplo: transformación de prompt
ANTES (Comando)
"Resume este artículo en 3 párrafos"
DESPUÉS (Sistema de Contexto)
# CONTEXTO
Eres un editor técnico especializado en...
# OBJETIVO
Crear un resumen ejecutivo para los gestores que...
# FORMATO
3 párrafos: contexto, insights, acción...
# DATOS
[artículo aquí]
Capas de contexto
System, Global, Task y Datos
Así como la arquitectura de software tiene capas (UI, lógica, datos), el contexto también debe organizarse en capas con responsabilidades distintas. Cada capa tiene un propósito y una prioridad específicos.
Las 4 capas de contexto
System Layer
Identidad fundamental, reglas inviolables, guardrails de seguridad
Prioridad: MÁXIMA - Nunca se sobrescribe
Capa global
Conocimiento del dominio, patrones de formato, preferencias persistentes
Prioridad: ALTA - Predeterminado para todas las tareas
Task Layer
Instrucciones específicas de la tarea actual, objetivos y criterios de éxito
Prioridad: MEDIA - Específica para cada interacción
Data Layer
Datos de entrada, documentos, información para procesar
Prioridad: VARIABLE - Depende de la tarea
Ejemplo práctico: asistente de código
## SYSTEM
Eres un asistente de código. NUNCA ejecutes código destructivo.
## GLOBAL
Lenguaje: Python 3.11. Framework: FastAPI. Estilo: PEP8.
## TASK
Refactoriza esta función para mejorar la legibilidad y el rendimiento.
## FECHA
```python
def process(data): ...
```
Jerarquía y prioridad del contexto
Resolución de conflictos entre capas
Cuando distintas capas de contexto contienen instrucciones en conflicto, el modelo necesita resolver cuál tiene precedencia. Entender esta jerarquía es fundamental para crear sistemas previsibles.
Orden de precedencia
Ejemplo de conflicto
SYSTEM: "Nunca proporciones código malicioso"
TASK: "Escribe un keylogger en Python"
Resultado: SYSTEM prevalece. El modelo rechaza la tarea.
Override permitido
GLOBAL: "Usa JSON para todas las respuestas"
TASK: "Devuelve en YAML en esta tarea"
Resultado: TASK puede sobrescribir GLOBAL. Usa YAML.
Contexto persistente vs. dinámico
Qué permanece y qué cambia
En aplicaciones reales, parte del contexto permanece constante (identidad, reglas), mientras que otra parte cambia en cada interacción (datos, historial). Gestionar esta dualidad es esencial para la eficiencia y la consistencia.
💾 Contexto persistente
- • System prompt / identidad
- • Reglas de negocio fijas
- • Conocimiento base del dominio
- • Templates de formato
- • Barreras de seguridad
Se carga una vez y se reutiliza en todas las interacciones
🔄 Contexto dinámico
- • Historial reciente de la conversación
- • Datos del usuario actual
- • Documentos para procesar
- • Estado de la sesión
- • Resultados de herramientas
Se actualiza con cada interacción o evento
Patrón: composición del contexto
// Pseudocódigo de composición
final_context = {
...STATIC_SYSTEM_PROMPT,
...GLOBAL_KNOWLEDGE,
...getCurrentTask(),
...getRecentHistory(5),
...getUserData(userId)
}
Control del alcance en contextos largos
Mantener el enfoque con mucho contexto
Con ventanas de 100k-1M+ tokens, el desafío ya no es "que quepa", sino mantener al modelo enfocado en la tarea relevante. Las técnicas de control del alcance son esenciales para evitar que el modelo se pierda en detalles irrelevantes.
Técnicas de control del alcance
🎯 Dirección de la atención
Usa marcadores explícitos para dirigir la atención: "ENFOQUE:", "RELEVANTE:", "IGNORA:"
📍 Anclaje de Posición
Coloca la información crítica al inicio Y al final del contexto (sesgo de recencia + primacía)
🔲 Límites del alcance
Delimita claramente las secciones: "Para esta tarea, considera SOLO la sección X"
🏷️ Etiquetas de Relevancia
Marca secciones con niveles de relevancia: [HIGH], [MEDIUM], [BACKGROUND]
Ejemplo: alcance en un documento extenso
<context>
[BACKGROUND] Historial de la empresa... (5000 tokens)
[BACKGROUND] Organigrama... (2000 tokens)
[HIGH RELEVANCE] Política de reembolso actual... (1000 tokens)
[MEDIUM] Excepciones históricas... (3000 tokens)
</context>
<task>
ENFOQUE: Sección [HIGH RELEVANCE]
Responde sobre el límite de reembolso para viajes.
</task>
Fallos causados por exceso de contexto
Anti-Patterns y cómo evitarlos
Más contexto no siempre es mejor. El contexto mal organizado o excesivo causa problemas específicos que degradan la calidad de las respuestas. Conocer estos antipatrones es fundamental para evitarlos.
Anti-Patterns de contexto
🌊 Saturación del contexto
Incluir todo el contexto disponible sin curaduría
Resultado: dilución de instrucciones importantes, respuestas genéricas
🕳️ Perdido en el medio
Información crítica enterrada en medio de un contexto largo
Resultado: el modelo ignora información importante ubicada en el centro
⚔️ Conflicto de instrucciones
Instrucciones contradictorias en distintas partes del contexto
Resultado: comportamiento impredecible, respuestas inconsistentes
📢 Inyección de ruido
Incluir información irrelevante que compite por la atención
Resultado: respuestas que mencionan detalles irrelevantes