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

Corrigiendo la estupidez de los agentes de IA: Un árbol de contexto compartido por repositorio
La razón por la que los empleados de IA parecen torpes no es el modelo, sino la falta de contexto compartido. La solución de un desarrollador: un repositorio de árbol de contexto con nodos jerárquicos en markdown, mantenido automáticamente por el agente.

Consejos Prácticos de Flujo de Trabajo con Claude para Proyectos de Desarrollo Complejos
Un usuario de Claude Pro comparte estrategias específicas de flujo de trabajo para desarrollar complementos de audio complejos, incluyendo el uso del modo de planificación para funciones principales, la creación de archivos de contexto, la gestión del uso de tokens y la implementación de pasos de validación.

Usuarios de Claude AI Obtienen Mejores Resultados al Proporcionar Contexto en Lugar de Indicaciones Genéricas
Un debate en Reddit destaca que los usuarios que realizan trabajo real con Claude AI proporcionan contexto específico sobre su situación, lo que han intentado, cómo se ve un buen resultado y qué evitar, en lugar de tratarlo como un motor de búsqueda.

Capa de Gobernanza para Agentes Claude: Límites de Seguridad Estrictos y Trazas en Vivo en Producción
Un usuario de la API de Claude construyó una capa de gestión ligera debajo del agente para agregar límites de seguridad estrictos, trazas en tiempo real, control humano en el bucle a través de Telegram y checkpointing automático, resolviendo fallos silenciosos y costos de tokens descontrolados en bucles de agentes de larga duración.