Gestión del contexto
Por qué el coste de las sesiones largas aumenta de forma no lineal y qué patrones mantienen acotado el historial.
La API no mantiene estado. Cada turno reenvía toda la conversación, por lo que los tokens de entrada aumentan con el historial, y el coste aumenta con ellos en cada llamada posterior.
Cómo se plantea el problema
Una conversación de N turnos, cada uno de los cuales añade aproximadamente T tokens, consume en total del orden de N²T/2 tokens de entrada, en lugar de NT. Duplicar la duración de la sesión cuadruplica aproximadamente la factura de entrada. Por eso, un agente que parecía barato durante diez minutos resulta alarmante después de una hora.
Cuatro patrones que funcionan
| Patrón | Cómo | Contrapartida |
|---|---|---|
| Ventana deslizante | Conserva los últimos K turnos y descarta el resto | Pierde por completo el contexto inicial |
| Resumen acumulativo | Sustituye periódicamente los turnos antiguos por un resumen redactado por el modelo | Requiere una llamada adicional; conserva lo esencial |
| Una sesión nueva por tarea | Empieza de cero cuando cambie el tema | Gratis y, por lo general, lo adecuado |
| Externalizar | Mantén el estado en archivos o en una base de datos y carga solo lo que necesite el paso actual | Más trabajo, mejor resultado |
Resumir los turnos anteriores
def compact(history, keep=6):
class="s">""class="s">"Replace everything but the last `keep` turns with one summary turn."class="s">""
if len(history) <= keep:
return history
old, recent = history[:-keep], history[-keep:]
summary = summarise(old) class=class="s">"c"># one cheap Haiku call
return [{class="s">"role": class="s">"user", class="s">"content": fclass="s">"Summary of earlier discussion: {summary}"}] + recent
Genera el resumen con un modelo económico. Es una tarea de compresión, no de razonamiento.
Los resultados de las herramientas suelen ser los culpables
- Una herramienta que devuelve 500 filas incluye 500 filas en cada solicitud posterior. Limita las filas o devuelve un resumen junto con una referencia para obtener los detalles cuando se necesiten.
- El contenido completo de los archivos que lee un agente permanece en el contexto. Lee la sección que necesitas, no todo el archivo.
- Las capturas de pantalla y las imágenes se reenvían como cualquier otro contenido: elimínalas una vez descritas.
- Registros de compilación y trazas de pila: conserva las primeras y las últimas 50 líneas y descarta las del medio.
En las herramientas con agentes, iniciar una nueva sesión entre tareas no relacionadas es la optimización más económica disponible. En Claude Code se hace con
/clear.