Corrección de Desperdicio de Tokens en Claude Code: Deshabilitar el Encabezado de Atribución para Mejores Aciertos de Caché

Claude Code ha estado desperdiciando tokens en cada nueva sesión desde la versión 2.1.69 debido a un encabezado de atribución de facturación que rompe el almacenamiento en caché de prompts. El problema está documentado en múltiples issues de GitHub (#40652, #34629, #40524) sin respuesta oficial de Anthropic hasta la fecha de publicación de la fuente.
Qué está sucediendo
Desde la v2.1.69, Claude Code inserta una cadena de atribución de facturación en el primer bloque de tu prompt del sistema: x-anthropic-billing-header: cc_version=2.1.88.a3f; cc_entrypoint=cli; cch=00000;
La parte .a3f es un hash de 3 caracteres calculado a partir de tu primer mensaje en cada conversación usando esta función:
function computeHash(firstUserMessage, version) {
const chars = [4, 7, 20].map(i => firstUserMessage[i] || "0").join("");
return sha256("59cf53e54c78" + chars + version).slice(0, 3);
}Diferentes conversaciones con diferentes primeros mensajes generan hashes diferentes cada vez.
Por qué esto rompe el almacenamiento en caché
El almacenamiento en caché de Anthropic requiere segmentos de prompt 100% idénticos. La caché se comparte en toda tu Organización o Espacio de trabajo, no por sesión. El encabezado de facturación se sitúa al principio del prompt del sistema de ~23K tokens, y como cambia por conversación, el prefijo nunca coincide, causando fallos de caché en cada nuevo chat.
Resultados de referencia
Una prueba A/B controlada mostró:
- Encabezado ACTIVADO (predeterminado): 48% de tasa de aciertos de caché, ~12K tokens reconstruidos por sesión
- Encabezado DESACTIVADO: 99.98% de tasa de aciertos de caché, cero creación de caché en 3 de cada 4 sesiones
El resultado es 7 veces más barato por sesión en procesamiento de prompts del sistema.
La solución
Añade esto a tu configuración de terminal:
export CLAUDE_CODE_ATTRIBUTION_HEADER=falsePara usuarios de zsh:
echo 'export CLAUDE_CODE_ATTRIBUTION_HEADER=false' >> ~/.zshrc
source ~/.zshrcLas nuevas sesiones lo detectan automáticamente. Las sesiones existentes no necesitan reiniciarse—el hash no cambia a mitad de la conversación, y no interfieren con nuevas sesiones.
Seguridad y antecedentes
Esto no es un hack—la variable de entorno existe en el código fuente como un interruptor de función adecuado. claude-code-router y CLIProxyAPI han estado enviándose con esto desactivado en producción sin problemas reportados.
Anthropic probablemente implementó esto para rastrear qué versión y punto de entrada (CLI vs SDK vs GitHub Action) realizó cada llamada API, colocándolo en el prompt del sistema porque Bedrock/Vertex no reenvían encabezados personalizados.
📖 Leer la fuente completa: r/ClaudeAI
👀 Ver también

Solución Alternativa para Firefox para el Problema de Congelación de Claude.ai Usando un Script de Tampermonkey
Un usuario de Reddit comparte una solución alternativa con un script de Tampermonkey para usuarios de Firefox que experimentan bloqueos en Claude.ai. El script modifica el comportamiento de Date.now() para evitar conflictos de tiempo que provocan que la interfaz se cuelgue.

Diagnóstico del rendimiento degradado de Claude: Causas raíces y soluciones
Un desglose práctico de por qué los resultados de codificación de Claude se degradan con el tiempo y correcciones viables, incluyendo gestión del contexto e higiene de prompts.

Gestión del Consumo de Tokens de Claude IA: Consejos Prácticos desde la Experiencia de Desarrolladores
Un desarrollador reporta haber consumido 94,000 tokens en 3 minutos usando la función Explore de Claude, lo que resultó en una limitación de tasa durante 4 horas, y comparte estrategias concretas que incluyen mantener un archivo ARCHITECTURE.md y usar prompts quirúrgicos para controlar el uso de tokens.

Usando Trabajos Cron de OpenClaw para Tareas Programadas en Lugar de Monitoreo de Latido
Una publicación de Reddit explica cómo usar la función de trabajos cron de OpenClaw para tareas programadas como resúmenes matutinos y triaje de correos, con la bandera crítica --session isolated para evitar la contaminación del contexto, y advierte sobre posibles errores en sesiones aisladas entre versiones.