Context Rot: Por qué más tokens no significan mejores respuestas
Es tentador pensar que enviar a Claude más información solo puede ayudar, ya que el modelo simplemente puede ignorar lo que no es relevante.
En la práctica, rellenar un prompt con material innecesario o irrelevante tiende a degradar la calidad de la respuesta, no solo a desperdiciar tokens.
Este efecto tiene un nombre que vale la pena conocer: context rot.
Entenderlo cambia la forma en que piensas sobre la ingeniería de contexto, de "recortar contexto para ahorrar dinero" a "recortar contexto porque también produce mejores respuestas".
Resumen
- Idea Central: Añadir contexto irrelevante o excesivo a un prompt puede reducir mediblemente la calidad de la respuesta, además de costar más tokens.
- Por Qué Importa: Los equipos que tratan "más contexto solo puede ayudar" como un valor predeterminado seguro están renunciando a calidad y coste sin darse cuenta.
- Conceptos Clave: context rot, relación señal-ruido, dilución de la atención, prompting de contexto mínimo.
- Cuándo Usar: Cualquier vez que decidas si incluir un documento, un archivo o una pieza de historial "por si acaso" es relevante.
- Limitaciones / Compensaciones: Recortar demasiado agresivamente puede eliminar información que el modelo realmente necesitaba, por lo que esto no es una licencia para omitir todo; es una razón para ser deliberado sobre lo que se mantiene.
- Temas Relacionados: prompting de contexto mínimo, recorte de grafos de dependencias, resumen, segmentación de modelos.
Fundamentos
Una suposición inicial útil, y errónea, es que un modelo de lenguaje lee un prompt como lo hace un índice de búsqueda: encuentra la parte relevante e ignora el resto sin coste.
Context rot describe el patrón observado de que esto no es del todo cierto.
A medida que un prompt se llena de material que no es relevante para la pregunta real, las respuestas del modelo pueden volverse menos precisas, menos enfocadas o más propensas a captar detalles irrelevantes como si importaran.
Una analogía simple: imagina que te hacen una pregunta en una habitación ruidosa frente a una silenciosa.
Todavía puedes oír la pregunta en ambos casos, pero tu atención y precisión no son idénticas, a pesar de que las palabras que te dijeron fueron las mismas.
Un prompt con mucho material irrelevante es la habitación ruidosa.
# Misma pregunta, dos prompts. El segundo entierra la línea relevante en ruido.
focused_prompt = "What does validate_email() return for 'a@b'? \n\ndef validate_email(s): return '@' in s and '.' in s.split('@')[-1]"
noisy_prompt = f"{unrelated_500_line_file}\n\nWhat does validate_email() return for 'a@b'?"Ambos prompts contienen la información necesaria para responder correctamente.
Solo uno de ellos hace que esa información sea fácil de encontrar.
Mecánicas e Interacciones
El context rot interactúa con varios aspectos de cómo un modelo procesa un prompt.
La relación señal-ruido es el marco más simple: si la información relevante es una pequeña fracción del prompt total, el modelo tiene que trabajar más para distinguir lo que importa de lo que no, y ese trabajo no está garantizado que sea infalible.
La dilución de la atención es la idea relacionada de que el enfoque efectivo de un modelo se distribuye en todo el prompt, por lo que un prompt dominado por material irrelevante deja una capacidad comparativamente menor para la parte que realmente responde a la pregunta.
El contenido distractor es un modo de fallo específico: material irrelevante que se parece a la respuesta correcta, una variable con un nombre similar, un hecho superficialmente relacionado, puede engañar activamente al modelo en lugar de ser simplemente ignorado.
Es por esto que el context rot no son simplemente "tokens desperdiciados".
Los tokens desperdiciados cuestan dinero pero no necesariamente cambian la respuesta.
El context rot cambia la respuesta, en cualquier dirección, a veces para peor, puramente debido a lo que más había en el prompt.
# Un distractor: una función con el mismo nombre en otra parte del archivo que no es la que se está preguntando.
distractor_prompt = """
def validate_email(s): # en el módulo `legacy`, obsoleto, lógica diferente
return len(s) > 0
def validate_email(s): # en el módulo `current`, el que se pregunta realmente
return "@" in s and "." in s.split("@")[-1]
Which validate_email is used by the current signup flow?
"""Un modelo que lee esto tiene que determinar correctamente qué definición es relevante, una tarea que se hace más difícil al incluir la obsoleta en absoluto si no es realmente necesaria para responder a la pregunta.
Consideraciones Avanzadas y Aplicaciones
El context rot tiene una implicación directa en cómo los equipos deben pensar sobre el crecimiento de la ventana de contexto.
A medida que los modelos admiten ventanas de contexto cada vez más grandes, es tentador tratar "cabe" como equivalente a "debería incluirse".
El context rot es el argumento en contra de esa equivalencia: una ventana más grande cambia lo que es posible enviar, no lo que es aconsejable enviar.
La respuesta práctica es el mismo conjunto de técnicas cubiertas en esta sección, aplicadas por una segunda razón más allá del coste.
El prompting de contexto mínimo mantiene alta la relación señal-ruido por construcción, ya que solo se incluye material relevante.
El resumen reduce el volumen mientras, si se hace bien, preserva la señal que importa, lo que puede mejorar la relación señal-ruido incluso para material que no se puede eliminar por completo.
El recorte de grafos de dependencias aplica la misma idea al código, utilizando la estructura del grafo en lugar del juicio manual para decidir qué es realmente relevante.
| Enfoque | Efecto en el Coste | Efecto en la Calidad |
|---|---|---|
| Enviar todo "por si acaso" | Mayor, escala con el material total | Riesgo de dilución y efectos distractores |
| Prompting de contexto mínimo | Menor, escala solo con material relevante | Generalmente mejora el enfoque, si la selección es precisa |
| Resumen | Menor para documentos reutilizados | Depende de la calidad del resumen; puede perder detalles finos |
| Sin recorte, pero una ventana de contexto más grande | Mayor | No se resuelve solo con el tamaño de la ventana; el rot se trata de relevancia, no de capacidad |
Vale la pena ser preciso sobre lo que el context rot no significa.
No significa que los prompts cortos sean siempre mejores que los largos, o que cada documento largo sea perjudicial de incluir.
Significa que la relevancia, no la longitud, es la variable que importa, y que la longitud sin relevancia conlleva un coste real en ambos lados del libro de contabilidad.
Conceptos Erróneos Comunes
- "Una ventana de contexto más grande soluciona este problema." Una ventana más grande cambia lo que cabe, no lo que es relevante; el material irrelevante aún puede diluir el enfoque y engañar al modelo independientemente de cuánto espacio quede en la ventana.
- "El modelo simplemente ignorará lo que no es relevante." En la práctica, el contenido irrelevante o distractor puede afectar mediblemente la respuesta, no simplemente pasar desapercibido.
- "El context rot solo importa para prompts muy largos." Incluso un prompt de tamaño moderado puede sufrir si una gran fracción de él es irrelevante para la pregunta real; se trata de proporción, no solo de tamaño absoluto.
- "Más contexto es siempre más seguro que menos." Menos contexto relevante reduce el riesgo de distracción y desorientación; el riesgo real de "menos" es que algo genuinamente necesario se corte, lo cual es una preocupación diferente y separada de la seguridad por volumen.
- "Esto es lo mismo que la ingeniería de prompts." La ingeniería de prompts trata sobre la redacción y las instrucciones; el context rot trata sobre la composición y la relevancia del material incluido, una pregunta que surge antes de que se elija la redacción.
Preguntas Frecuentes
¿Qué es exactamente el context rot?
La tendencia del material irrelevante o excesivo en un prompt a degradar la calidad de la respuesta del modelo, más allá de simplemente costar más tokens.
¿Es el context rot lo mismo que quedarse sin espacio en la ventana de contexto?
No.
- Quedarse sin espacio es un límite de capacidad estricto.
- El context rot puede ocurrir bien dentro de la capacidad de la ventana, siempre que una gran parte de lo que se incluye no sea relevante para la pregunta.
¿Significa el context rot que siempre debo enviar el prompt más corto posible?
No exactamente; la longitud no es la variable que importa por sí sola, la relevancia sí.
Un prompt largo compuesto enteramente de material relevante no sufre necesariamente de context rot como puede hacerlo un prompt corto rellenado con material irrelevante.
¿Cómo notaría que el context rot está ocurriendo en mi propio sistema?
- Observa respuestas que hacen referencia a detalles irrelevantes del prompt como si importaran.
- Compara la calidad de la respuesta en la misma pregunta con un prompt recortado frente a uno rellenado.
- Observa que el modelo elige una opción incorrecta pero similar cuando hay un distractor presente en el contexto.
¿Qué es un distractor, específicamente?
Material irrelevante que se parece superficialmente a la respuesta correcta, como una variable con el mismo nombre definida dos veces, que puede engañar activamente al modelo en lugar de ser simplemente ignorado.
¿Una ventana de contexto más grande hace que esto sea menos preocupante?
No, una ventana más grande solo cambia cuánto puede caber técnicamente.
No cambia si el material irrelevante diluye el enfoque o introduce distractores una vez que se incluye.
¿Cómo se relaciona esto con el prompting de contexto mínimo?
El prompting de contexto mínimo es la contramedida directa: al incluir solo fragmentos relevantes, mantiene alta la relación señal-ruido por construcción, lo que aborda el context rot y reduce el coste al mismo tiempo.
¿Existe el riesgo de recortar el contexto demasiado?
Sí.
- Cortar algo genuinamente relevante produce una respuesta incompleta o incorrecta por una razón diferente al context rot.
- El objetivo es la relevancia, no el minimalismo por sí mismo; los dos modos de fallo, demasiado material irrelevante y muy poco material relevante, se sientan en extremos opuestos de la misma decisión.
¿Ayuda el resumen con el context rot?
Puede hacerlo, cuando el resumen preserva la señal relevante mientras elimina el volumen que no añadía nada.
Un resumen deficiente que elimina el detalle realmente relevante reemplaza un problema con otro, por lo que la calidad del resumen sigue importando.
¿Es el context rot específico para prompts relacionados con código?
No, se aplica a cualquier prompt: un ticket de soporte rellenado con historial de cuenta no relacionado, una pregunta legal enterrada en un contrato completo, o una pregunta de cliente rodeada de giros de conversación previos no relacionados.
¿Cómo se conecta esto con la segmentación de modelos o el parámetro de esfuerzo?
Esas son palancas separadas.
- La segmentación de modelos y el esfuerzo afectan cuánto razonamiento se aplica a un prompt dado.
- El context rot trata sobre lo que está en el prompt en primer lugar, una decisión tomada antes de que cualquiera de esas palancas entre en juego.
¿Cuál es la conclusión práctica más importante del context rot?
Trata "debería incluir esto" como una pregunta real con un coste real en ambos lados, en lugar de optar por "más contexto solo puede ayudar".
Relacionados
- Cómo la Ingeniería de Contexto Reduce el Gasto de Tokens - el compañero del lado del coste de este argumento del lado de la calidad.
- Recortando Contexto: Grafos de Dependencias en Lugar de Repositorios Completos - una técnica concreta para mantener relevantes los prompts de código.
- Resumen Antes de la Llamada - condensando volumen mientras se intenta preservar la señal.
- Evitar Llamadas de Herramientas Redundantes en Bucles de Agente Multi-Turno - cómo los resultados repetidos de herramientas pueden convertirse silenciosamente en el mismo tipo de relleno.
- Mejores Prácticas de Ingeniería de Prompts y Contexto - una lista de verificación que incluye la protección contra este modo de fallo.
Versiones de Stack: Escrito contra la línea de modelos Claude actual a partir de ~junio de 2026 - Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (el predeterminado), y Claude Haiku 4.5 - y el SDK oficial de Python
anthropic(última versión 0.x). Los nombres de modelos, precios y versiones de SDK cambian rápidamente; verifica los detalles actuales en platform.claude.com/docs antes de confiar en ellos.