TL;DR Pon
"modelSettings": { "haiku": { "autoCompactWindow": 130000 } }en tusettings.json. Haiku 5.5 compactará hacia los 97K, justo antes del salto de precio de los 100K, en tu sesión y en tus subagentes Haiku. No pongas 100000: con una base como la mía (49K), la sesión principal entra en bucle de compactación y no termina.
Haiku 5.5 cuesta $0,10/$0,50 por millón de tokens mientras el prompt no pasa de 100K, y $0,50/$2,50 por encima (el salto, explicado aquí). El problema es que Claude Code no lo compacta hasta cerca de 967K, porque Haiku 5.5 tiene ventana nativa de 1M. Una sesión larga en Haiku pasa casi todas sus peticiones por encima de la línea.
Lo que pagas sin tocar nada
Una sesión en Haiku 5.5 leyendo 45 archivos, uno por mensaje, en Claude Code v2.1.293:
peticiones 48
por encima de 100K 36
la más grande 248.654 tokens
coste de Haiku $0,508
El arreglo: una ventana de autocompact solo para Haiku
La ventana de autocompact marca lo lleno que puede llegar el contexto antes de que Claude Code resuma la conversación (cómo funciona y quién la fija). Se puede fijar por modelo, en modelSettings:
{
"modelSettings": {
"haiku": { "autoCompactWindow": 130000 }
}
}
En ~/.claude/settings.json vale para todos tus proyectos. La clave haiku funciona igual que claude-haiku-5-5: probé las dos. Si tu sesión ya está en Haiku, /autocompact 130k lo guarda para el modelo actual.
Mismo trabajo y misma versión, con la ventana a 130K:
| Sin ventana | Ventana 130K | |
|---|---|---|
| Sesión principal Haiku: peticiones por encima de 100K | 36 de 48 | 0 de 48 |
| Sesión principal Haiku: coste de Haiku | $0,508 | $0,145 |
| Subagente Haiku: peticiones por encima de 100K | 27 de 48 | 0 de 48 |
| Subagente Haiku: coste de Haiku | $0,372 | $0,076 |
Un 71% menos en la sesión y un 79% en el subagente, en una ejecución de cada caso. Las peticiones de trabajo se quedaron por debajo de 97.400 tokens; solo el momento de compactar roza la línea. Los costes son los de Haiku en el modelUsage de claude -p --output-format json, sin el modelo de la sesión que lanza el subagente.
Por qué 130K y no 100K
Claude Code reserva un colchón dentro de la ventana. En la v2.1.293, /context lo enseña como Autocompact buffer 33k, tanto con la ventana de 1M como con una de 100K, y compacta cuando el contexto llega a la ventana menos ese colchón:
| Ventana | Compacta hacia | Qué pasó en mi prueba |
|---|---|---|
| 1M (por defecto) | ~967K | No compacta nunca: 36 de 48 peticiones a tarifa alta |
| 100K | ~67K | Sesión principal en bucle, tarea sin terminar |
| 130K | ~97K | Todas las peticiones por debajo de 100K |
Con 100K, la sesión principal (que con mi configuración arranca en 49K entre system prompt, herramientas y skills) tenía 18K de margen. Compactaba, leía un archivo y volvía a estar llena. A la novena lectura, Claude Code paró:
Autocompact is thrashing: the context refilled to the limit within 3 turns of the previous compact, 3 times in a row. A file being read or a tool output is likely too large for the context window. Try reading in smaller chunks, or use /clear to start fresh.
En un subagente, que arranca en 5K, 100K sí funcionó, pero compactó 5 veces en lugar de 2 y salió algo más caro que con 130K ($0,088). Para un solo valor que sirva en los dos casos, 130K.
Antes de ponerlo, mira tu base con /context en una sesión Haiku recién abierta. Si pasa de 60K, te quedan menos de 40K entre compactaciones y vas a compactar a menudo.
La letra pequeña
- Si un subagente lo lee todo de golpe, la ventana no te salva. En otra prueba, Haiku pidió los 45 archivos en un solo turno, aunque le dije uno por mensaje. Pasó de 9K a 126K de una vez, compactó después y salió 3 veces más caro que sin ventana ($0,438 frente a $0,149), porque tras compactar seguía en 114K. La ventana ayuda al trabajo paso a paso, no a un turno que se lo traga todo.
CLAUDE_CODE_AUTO_COMPACT_WINDOWgana a todo. Si tienes esa variable en el entorno, por ejemplo a 350000, tu entrada de Haiku no cuenta. Los cuatro sitios que fijan la ventana y cuál manda, en el tip de autocompact.- Compactar no es gratis. Cada compactación es una petición que resume la conversación, y después el contexto nuevo se vuelve a cachear. Por eso, en el subagente, 130K (menos compactaciones) salió mejor que 100K.
- Solo con Haiku 5.5 en la API de Anthropic. En Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Claude Platform on AWS,
haikusigue siendo Haiku 4.5.
Documentación oficial: Set the auto-compact window · Subagents: auto-compaction · Claude Haiku 5.5
Requisitos
- Claude Code v2.1.293 o posterior, la versión que pide Haiku 5.5. Todas las cifras salen de esa versión, con mi configuración de usuario: la tuya arrancará con otra base, así que mírala con
/context.