Context Length Exceeded: reduce la solicitud y verifica el resultado
Mide cada componente del contexto, elimina duplicados e historial irrelevante, reserva espacio de salida y verifica que los datos obligatorios permanezcan.
Índice
Context Length Exceeded: reduce la solicitud y verifica el resultado
No arregles Context length exceeded borrando al azar la mitad del prompt. Primero calcula el presupuesto total, identifica el modelo y mide cada componente de la solicitud. Después elimina duplicados mecánicos, historial irrelevante y resultados de herramientas pesados. Al reenviar, comprueba tanto que el error desapareció como que se conservaron los datos obligatorios y la respuesta completa.
Qué ocupa la ventana de contexto
El contexto es la memoria de trabajo de una solicitud completa, no solo el último prompt del usuario. De forma simplificada:
system instructions
+ conversation history
+ current message
+ images and documents
+ tool definitions
+ tool results
+ output / thinking budget
= total context usage
La documentación de Anthropic sobre ventanas de contexto incluye expresamente el prompt del sistema, todos los mensajes, imágenes, documentos, definiciones y resultados de herramientas, y la respuesta generada. El prompt caching cambia el coste de los tokens reutilizados, pero no los quita de la ventana.
No fijes en el código un «límite universal»: la ventana de contexto y el comportamiento ante un desbordamiento dependen del modelo y de la API seleccionados. Consulta la ficha actual del modelo el día de la configuración.
Encuentra el componente más pesado
| Componente | Qué medir | Reducción segura |
|---|---|---|
| Instrucciones del sistema | Reglas repetidas y ejemplos largos | Unir duplicados y conservar las restricciones obligatorias |
| Historial | Tokens por mensaje y ramas antiguas | Quitar ramas irrelevantes o sustituirlas por un resumen verificable |
| Archivos y fragmentos RAG | Tamaño de cada documento, duplicados y fragmentos poco relevantes | Bajar top_k, deduplicar y enviar solo las secciones necesarias |
| Definiciones de herramientas | Herramientas sin uso y descripciones extensas | Enviar únicamente las herramientas de la etapa actual |
| Resultados de herramientas | JSON completos, logs, HTML, base64 y respuestas repetidas | Conservar campos, enlaces e identificadores necesarios; guardar lo grande fuera del prompt |
| Presupuesto de salida | max_tokens y presupuesto de razonamiento | Reservar una cantidad realista o dividir un resultado grande en etapas |
Claude dispone de una API de recuento de tokens que considera mensajes y herramientas antes del envío. Con otro proveedor, usa su contador si existe. Un tokenizer local sirve de aviso temprano, pero su estimación no garantiza el cálculo del servidor de otro modelo.
Abre la documentación API actual de BetterToken, ejecuta una solicitud de prueba corta y búscala en Dashboard. Compara tokens de entrada, salida y caché antes y después de reducir el contexto: menos tokens de entrada confirman que la corrección llegó a la llamada real. Dashboard no muestra el prompt completo ni sustituye el recuento previo.
Reduce el tamaño sin perder significado
1. Elimina duplicados mecánicos
Busca reglas de sistema repetidas, el mismo archivo en varios mensajes, fragmentos RAG duplicados, esquemas pegados más de una vez y logs completos repetidos. Es la fase más segura porque reduce volumen sin cambiar la tarea.
2. Quita el historial irrelevante
Separa los hechos duraderos del desarrollo temporal de la conversación. Conserva objetivos, decisiones aceptadas, restricciones obligatorias y preguntas abiertas. Los razonamientos antiguos, alternativas descartadas y resultados de herramientas ya procesados pueden eliminarse o condensarse en un resumen estructurado.
Un mal resumen dice «hablamos de la integración». Uno útil registra el endpoint elegido, la versión del esquema, las restricciones aceptadas, los hechos confirmados y el siguiente paso.
3. Compacta archivos, RAG y resultados de herramientas
Envía las secciones pertinentes en lugar del documento completo. En un resultado de herramienta, conserva los campos que requiere la siguiente etapa y no toda la respuesta HTTP o el log. No elimines fuentes ni datos obligatorios solo para que la solicitud quepa: divide el trabajo en etapas verificables.
4. Deja espacio para la respuesta
Entrada y salida comparten el mismo presupuesto. Si la solicitud llena casi toda la ventana, el modelo puede no tener espacio para una respuesta completa. Reduce entrada opcional, define un presupuesto de salida realista o divide el resultado. No recortes hechos críticos antes de los duplicados mecánicos.
5. Cambia de modelo solo después de medir
Un modelo con más contexto puede ser adecuado para un documento que no se pueda dividir de forma segura. Pasar a una ventana mayor sin quitar duplicados solo pospone el siguiente error y puede reducir la densidad de información.
Comprobación mínima antes de enviar
components = count_by_section(request)
estimated_input = sum(components)
reserved_output = requested_output_budget
if estimated_input + reserved_output approaches current_model_window:
remove exact duplicates
drop irrelevant history
compact tool results and retrieved chunks
count again
send only after required facts and constraints remain present
approaches no se sustituye deliberadamente por un porcentaje fijo. El margen necesario depende de la precisión del contador, del modelo, del razonamiento y del comportamiento de esa API.
Cómo verificar la corrección
Compara la nueva solicitud con esta lista:
- La API ya no devuelve
context length exceededniprompt is too long. - La respuesta termina normalmente y no queda cortada por el presupuesto de salida.
- La respuesta contiene todos los hechos obligatorios, restricciones y el formato solicitado.
- Las citas o enlaces siguen correspondiendo a las fuentes proporcionadas.
- Las llamadas a herramientas usan los argumentos correctos y no se perdió ningún resultado importante al compactar.
- El nuevo uso de entrada es realmente menor que el original.
Si el error desaparece pero el modelo olvida una restricción clave, la corrección falló. Restaura el bloque obligatorio y libera espacio quitando historial menos relevante o un resultado de herramienta pesado. Si se corta la respuesta, revisa aparte el presupuesto de salida: es otra parte de la misma ventana total.
Resumen
La secuencia de trabajo es: identificar el modelo → contar componentes → eliminar duplicados exactos → extraer historial irrelevante → compactar archivos y resultados de herramientas → dejar espacio para la respuesta → reenviar → verificar la calidad. Así corriges la causa sin convertir el contexto en un conjunto de datos truncado al azar.