Skip to content

Impacto del Cache de Prompt: Balance entre Hit Rate y Ahorro de Tokens

Lo que aprenderás

  • Comprender cómo funciona el mecanismo de Prompt Caching de los proveedores de LLM
  • Saber por qué el修剪de DCP afecta el hit rate del cache
  • Aprender a balancear la pérdida de cache con el ahorro de tokens
  • Desarrollar estrategias óptimas según el proveedor y modelo de facturación utilizado

Tu dilema actual

Después de habilitar DCP, notaste que el hit rate del cache disminuyó del 85% al 65%, y te preocupa si esto podría aumentar los costos. O quizás quieres saber si usar DCP tendría diferentes impactos según el proveedor de LLM (Anthropic, OpenAI, GitHub Copilot).

El修剪de DCP modifica el contenido de los mensajes, lo cual afecta el Prompt Caching. ¿Pero vale la pena este balance? Analicémoslo en profundidad.

Cuándo usar esta técnica

  • En sesiones largas donde la expansión del contexto se vuelve significativa
  • Con proveedores que facturan por solicitud (como GitHub Copilot, Google Antigravity)
  • Cuando deseas reducir la contaminación del contexto y mejorar la calidad de las respuestas del modelo
  • Cuando el valor del ahorro de tokens supera la pérdida del hit rate del cache

Idea central

Qué es Prompt Caching

Prompt Caching es una tecnología ofrecida por proveedores de LLM (como Anthropic, OpenAI) para optimizar el rendimiento y los costos. Se basa en coincidencia de prefijo exacta para cachear prompts ya procesados, donde el mismo prefijo de prompt no recalcula tokens.

Ejemplo del mecanismo de cache

Supongamos que tienes el siguiente historial de conversación:

[Prompt del sistema]
[Mensaje del usuario 1]
[Respuesta de IA 1 + Llamada a herramienta A]
[Mensaje del usuario 2]
[Respuesta de IA 2 + Llamada a herramienta A]  ← Misma llamada a herramienta
[Mensaje del usuario 3]

Sin cache, cada envío al LLM requiere recalcular todos los tokens. Con cache, en el segundo envío, el proveedor puede reutilizar resultados previos, solo necesita calcular la nueva parte de "mensaje del usuario 3".

Cómo DCP afecta el cache

Cuando DCP修剪la salida de una herramienta, reemplaza el contenido original de la salida con un texto de marcador de posición: "[Output removed to save context - information superseded or no longer needed]"

Esta operación cambia el contenido exacto del mensaje (antes era la salida completa de la herramienta, ahora es un marcador de posición), causando invalidez del cache — el prefijo del cache desde ese punto ya no puede ser reutilizado.

Análisis de balance

IndicadorSin DCPCon DCP habilitadoImpacto
Hit rate del cache~85%~65%⬇️ Disminuye 20%
Tamaño del contextoCrece constantementePodado controlado⬇️ Disminuye significativamente
Ahorro de tokens010-40%⬆️ Aumenta significativamente
Calidad de respuestaPuede empeorarMás estable⬆️ Mejora (menos contaminación del contexto)

¿Por qué el hit rate del cache baja pero el costo podría ser menor?

La disminución del hit rate del cache no equivale a un aumento de costos. Reason:

  1. El ahorro de tokens suele superar la pérdida de cache: En sesiones largas, la cantidad de tokens ahorrados por el修剪de DCP (10-40%) suele exceder el cálculo adicional de tokens por la invalidez del cache
  2. Menos contaminación del contexto: Al eliminar contenido redundante, el modelo puede enfocarse mejor en la tarea actual, con respuestas de mayor calidad
  3. El hit rate absoluto sigue siendo alto: Incluso al 65%, casi 2/3 del contenido puede ser cacheado

Los datos de pruebas muestran que en la mayoría de casos el efecto de ahorro de tokens de DCP es más pronunciado.

Impacto en diferentes modelos de facturación

Facturación por solicitud (GitHub Copilot, Google Antigravity)

Caso de uso óptimo, sin efectos negativos.

Estos proveedores facturan por número de solicitudes, no por cantidad de tokens. Por lo tanto:

  • ✅ Los tokens ahorrados por el修剪de DCP no afectan directamente el costo
  • ✅ Reducir el tamaño del contexto mejora la velocidad de respuesta
  • ✅ La invalidez del cache no añade costos adicionales

GitHub Copilot y Google Antigravity

Estas dos plataformas facturan por solicitud, DCP es una optimización de costo cero — incluso si el hit rate del cache disminuye, no increase costos, sino que mejora el rendimiento.

Facturación por tokens (Anthropic, OpenAI)

Requiere balancear la pérdida de cache con el ahorro de tokens.

Ejemplo de cálculo:

Supongamos una sesión larga con 100 mensajes y un total de 100K tokens:

EscenarioHit rate del cacheTokens ahorrados por cacheTokens ahorrados por修剪de DCPAhorro total
Sin DCP85%85K × (1-0.85) = 12.75K012.75K
Con DCP habilitado65%100K × (1-0.65) = 35K20K (estimado)35K + 20K - 12.75K = 42.25K

Después del修剪de DCP, aunque el hit rate del cache disminuye, el contexto se redujo en 20K tokens, por lo que el ahorro total real es mayor.

Mayor ventaja en sesiones largas

En sesiones largas, las ventajas de DCP son más pronunciadas:

  • Sesiones cortas (< 10 mensajes): La invalidez del cache puede predominar, beneficio limitado
  • Sesiones largas (> 30 mensajes): La expansión del contexto es severa, los tokens ahorrados por el修剪de DCP superan ampliamente la pérdida del cache

Sugerencia: Priorizar habilitar DCP en sesiones largas, puede desactivarse en sesiones cortas.

Observación y verificación

Paso 1: Observar el uso de tokens del cache

Por qué Conocer la proporción de tokens del cache en el total de tokens, evaluando la importancia del cache

bash
# En OpenCode
/dcp context

Deberías ver: Un análisis de tokens similar a esto

╭───────────────────────────────────────────────────────────╮
│                  DCP Context Analysis                     │
╰───────────────────────────────────────────────────────────╯

Session Context Breakdown:
──────────────────────────────────────────────────────────

System         15.2% │████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│  25.1K tokens
User            5.1% │████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│   8.4K tokens
Assistant       35.8% │██████████████████████████████████████▒▒▒▒▒▒▒│  59.2K tokens
Tools (45)      43.9% │████████████████████████████████████████████████│  72.6K tokens

──────────────────────────────────────────────────────────

Summary:
  Pruned:          12 tools (~15.2K tokens)
  Current context: ~165.3K tokens
  Without DCP:     ~180.5K tokens

Interpretación de indicadores clave:

IndicadorSignificadoCómo evaluar
PrunedNúmero de herramientas podadas y cantidad de tokensMientras mayor, más ahorro de DCP
Current contextTotal de tokens del contexto de la sesión actualDebe ser significativamente menor que Without DCP
Without DCPQué tan grande sería el contexto sin habilitar DCPPara comparar el efecto de ahorro

Paso 2: Comparar habilitar/deshabilitar DCP

Por qué A través de la comparación, percibir intuitivamente las diferencias de cache y ahorro de tokens

bash
# 1. Deshabilitar DCP (establecer enabled: false en la configuración)
# O temporalmente cerrar:
/dcp sweep 999  # Podar todas las herramientas, observar efecto de cache

# 2. Tener algunas conversaciones

# 3. Ver estadísticas
/dcp stats

# 4. Rehabilitar DCP
# (modificar configuración o restaurar valores por defecto)

# 5. Continuar conversación, comparar estadísticas
/dcp stats

Deberías ver:

Usando /dcp context para observar cambios en indicadores clave:

IndicadorDCP deshabilitadoDCP habilitadoExplicación
Pruned0 tools5-20 toolsNúmero de herramientas podadas por DCP
Current contextGrandePequeñoContexto significativamente reducido después de DCP
Without DCPIgual a CurrentMayor que CurrentMuestra el potencial de ahorro de DCP

Sugerencias de pruebas reales

Probar en diferentes tipos de sesiones:

  1. Sesiones cortas (5-10 mensajes): Observar si el cache es más importante
  2. Sesiones largas (30+ mensajes): Observar si el ahorro de DCP es más pronunciado
  3. Lecturas repetidas: Escenarios de lectura frecuente de archivos idénticos

Esto te ayudará a tomar la mejor decisión según tus hábitos de uso reales.

Paso 3: Comprender el impacto de la contaminación del contexto

Por qué El修剪de DCP no solo ahorra tokens, sino que también reduce la contaminación del contexto, mejorando la calidad de las respuestas

¿Qué es la contaminación del contexto?

Contaminación del contexto es cuando información redundante, irrelevante o desactualizada satura el historial de conversación, causando:

  • Atención dispersa del modelo, difícil enfocarse en la tarea actual
  • Posible引用de datos antiguos (como contenido de archivos ya modificados)
  • Calidad de respuesta disminuida, requiriendo más tokens para "entender" el contexto

DCP reduce esta contaminación al eliminar salidas de herramientas completadas, operaciones de lectura repetidas, etc.

Comparación de efectos reales:

EscenarioSin DCPCon DCP habilitado
Leer el mismo archivo 3 vecesConserva 3 salidas completas (redundante)Solo conserva la más reciente
Escribir archivo y volver a leerOperación antigua de escritura + nueva lecturaSolo conserva la nueva lectura
Salida de error de herramientaConserva la entrada completa de errorSolo conserva el mensaje de error

Después de reducir la contaminación del contexto, el modelo puede entender el estado actual con mayor precisión, reduciendo situaciones de "alucinaciones" o引用de datos desactualizados.

Sugerencias de mejores prácticas

Elegir estrategia según el proveedor

ProveedorModelo de facturaciónSugerenciaReason
GitHub CopilotPor solicitud✅ Siempre habilitarOptimización de costo cero, solo mejora rendimiento
Google AntigravityPor solicitud✅ Siempre habilitarIgual que arriba
AnthropicPor tokens✅ Habilitar en sesiones largas
⚠️ Opcional en sesiones cortas
Balancear cache y ahorro
OpenAIPor tokens✅ Habilitar en sesiones largas
⚠️ Opcional en sesiones cortas
Igual que arriba

Ajustar configuración según tipo de sesión

jsonc
// ~/.config/opencode/dcp.jsonc o configuración del proyecto

{
  // Sesiones largas (> 30 mensajes): habilitar todas las estrategias
  "strategies": {
    "deduplication": { "enabled": true },
    "supersedeWrites": { "enabled": true },  // Recomendado habilitar
    "purgeErrors": { "enabled": true }
  },

  // Sesiones cortas (< 10 mensajes): solo habilitar deduplicación
  "strategies": {
    "deduplication": { "enabled": true },
    "supersedeWrites": { "enabled": false },
    "purgeErrors": { "enabled": false }
  }
}

Explicación de estrategias:

  • deduplication(deduplicación): Poco impacto, recomendado siempre habilitar
  • supersedeWrites(sobrescritura): Impacto moderado, recomendado para sesiones largas
  • purgeErrors(limpiar errores): Poco impacto, recomendado habilitar

Ajustar estrategias dinámicamente

Usar /dcp context para observar la composición de tokens y efecto de podado:

bash
# Si el valor de Pruned es alto, significa que DCP está ahorrando tokens activamente
# Puedes comparar Current context y Without DCP para evaluar el efecto de ahorro

/dcp context

Punto de verificación ✅

Confirma que comprendiste los siguientes puntos:

  • [ ] Prompt Caching se basa en coincidencia de prefijo exacta, cambios en el contenido del mensaje invalidan el cache
  • [ ] El修剪de DCP cambia el contenido del mensaje, causando disminución del hit rate del cache (~20%)
  • [ ] En sesiones largas, el ahorro de tokens suele superar la pérdida del cache
  • [ ] GitHub Copilot y Google Antigravity facturan por solicitud, DCP es optimización de costo cero
  • [ ] Anthropic y OpenAI facturan por tokens, requieren balancear cache y ahorro
  • [ ] Usar /dcp context para observar composición de tokens y efecto de podado
  • [ ] Ajustar dinámicamente la configuración de estrategias según la longitud de la sesión

Avisos de errores comunes

❌ Pensar que la disminución del hit rate del cache equivale a aumento de costos

Problema: Ver el hit rate del cache disminuir del 85% al 65% y pensar que los costos aumentarán

Reason: Solo se enfocó en el hit rate del cache, ignorando el efecto de ahorro de tokens y reducción del contexto

Solución: Usar /dcp context para ver datos reales, enfocándose en:

  1. Tokens ahorrados por el修剪de DCP (Pruned)
  2. Tamaño actual del contexto (Current context)
  3. Tamaño teórico sin podado (Without DCP)

Comparando Without DCP y Current context, puedes ver la cantidad real de tokens ahorrados por DCP.

❌ Usar修剪excesivamente agresivo en sesiones cortas

Problema: En sesiones cortas de 5-10 mensajes, habilitando todas las estrategias, invalidez de cache pronunciada

Reason: En sesiones cortas la expansión del contexto no es severa, el beneficio del修剪agresivo es pequeño

Solución:

  • En sesiones cortas solo habilitar deduplication y purgeErrors
  • Deshabilitar la estrategia supersedeWrites
  • O deshabilitar completamente DCP (enabled: false)

❌ Ignorar las diferencias de facturación entre proveedores

Problema: En GitHub Copilot preocuparse de que la invalidez del cache aumente costos

Reason: No darse cuenta de que Copilot factura por solicitud, la invalidez del cache no incrementa costos

Solución:

  • Copilot y Antigravity: Siempre habilitar DCP
  • Anthropic y OpenAI: Ajustar estrategias según longitud de sesión

❌ Tomar decisiones sin observar datos reales

Problema: Juzgar por sensación si se debe habilitar DCP

Reason: No usar /dcp context y /dcp stats para observar efectos reales

Solución:

  • Recopilar datos en diferentes sesiones
  • Comparar diferencias entre habilitar/deshabilitar DCP
  • Tomar decisiones según tus hábitos de uso

Resumen de esta lección

Mecanismo central de Prompt Caching:

  • Los proveedores de LLM cachean prompts basándose en coincidencia de prefijo exacta
  • El修剪de DCP cambia el contenido del mensaje, causando invalidez del cache
  • El hit rate del cache disminuye (~20%), pero el ahorro de tokens es más pronunciado

Matriz de decisiones de balance:

EscenarioConfiguración recomendadaReason
GitHub Copilot/Google Antigravity✅ Siempre habilitarFacturación por solicitud, optimización de costo cero
Sesiones largas de Anthropic/OpenAI✅ Habilitar todas las estrategiasAhorro de tokens > Pérdida del cache
Sesiones cortas de Anthropic/OpenAI⚠️ Solo habilitar deduplicación+limpieza de erroresEl cache es más importante

Puntos clave:

  1. La disminución del hit rate del cache no equivale a aumento de costos: Hay que ver el ahorro total de tokens
  2. El modelo de facturación de diferentes proveedores afecta las estrategias: Por solicitud vs por tokens
  3. Ajustar dinámicamente según la longitud de la sesión: Las sesiones largas se benefician más
  4. Usar herramientas para observar datos: /dcp context y /dcp stats

Resumen de mejores prácticas:

1. Confirmar el proveedor y modelo de facturación que usas
2. Ajustar la configuración de estrategias según la longitud de la sesión
3. Usar periódicamente /dcp context para observar efectos
4. En sesiones largas, priorizar el ahorro de tokens
5. En sesiones cortas, priorizar el hit rate del cache

##预告de la próxima lección

En la próxima lección aprenderemos Manejo de Subagentes.

Aprenderás:

  • Cómo DCP detecta sesiones de subagentes
  • Por qué los subagentes no participan en el修剪
  • Cómo los resultados del修剪en subagentes se传递al agente principal

Apéndice: Referencia del código fuente

Haz clic para ver las ubicaciones del código fuente

Tiempo de actualización:2026-01-23

FunciónRuta del archivoNúmero de línea
Explicación de Prompt CachingREADME.md46-52
Cálculo de tokens (con cache)lib/messages/utils.ts66-78
Comando de análisis de contextolib/commands/context.ts68-174
Cálculo de tokens del cachelib/commands/context.ts106-107
Registro de tokens del cachelib/logger.ts141
Definición de marcador de posición de podadolib/messages/prune.ts6-7
Podado de salida de herramientaslib/messages/prune.ts22-46

Constantes clave:

  • Ninguna

Funciones clave:

  • calculateTokens(messages, tokenizer): Calcula número de tokens de mensajes, incluyendo cache.read y cache.write
  • buildSessionContext(messages): Construye análisis de contexto de sesión, diferenciando System/User/Assistant/Tools
  • formatContextAnalysis(analysis): Formatea la salida del análisis de contexto

Tipos clave:

  • TokenCounts: Estructura de conteo de tokens, incluyendo input/output/reasoning/cache

Explicación del mecanismo de cache (de README):

  • Anthropic y OpenAI cachean prompts basándose en coincidencia de prefijo exacta
  • El修剪de DCP cambia el contenido del mensaje, causando invalidez del cache
  • Con DCP habilitado, el hit rate del cache es ~65%, sin habilitar ~85%
  • Caso de uso óptimo: Proveedores de facturación por solicitud (GitHub Copilot, Google Antigravity) sin efectos negativos