Por qué colapsa el cache hit de un agente de IA: GPT, Claude y gateways auditables
Guía basada en fuentes sobre fallos de caché en agentes de terceros, prompt caching de GPT y Claude, medición reproducible y compensación pública de Modelflare.
El caché de un agente de IA no es una casilla de verificación. Es un contrato de protocolo, enrutamiento y contabilidad. Este artículo explica por qué un agente de terceros puede tener una tasa de aciertos muy baja aunque el modelo ascendente admita prompt caching, cómo difieren GPT y Claude al reutilizar y medir entradas, y qué debe garantizar un gateway auditable.
La decisión en una frase
No coloques un agente de producción sensible al caché detrás de un agente o gateway de terceros que no exponga el uso nativo, conserve un prefijo estable, mantenga afinidad de modelo y ruta, muestre TTL y denominador, y reconcilie el resultado con un libro mayor persistente. “Admite caché” es una afirmación de funcionalidad; una tasa elegible medida es un hecho operativo.
Esto no afirma que todos los agentes de terceros fallen. La documentación pública no puede demostrar un porcentaje global de un proveedor sin un corpus fijo, un modelo fijo, una ventana conocida y evidencia de uso por solicitud. La conclusión más precisa es que una capa de traducción opaca introduce varios puntos de ruptura independientes y puede convertir un caché válido del proveedor en una ruta casi siempre fría. Para tráfico de producción que depende del caché, la falta de evidencia ya es motivo para no elegir esa ruta.
Define el denominador antes de hablar de porcentajes
El proveedor suele informar tres cubos distintos. Sea R el número de tokens leídos del caché, W los tokens escritos y U los tokens de entrada procesados sin reutilización. Para prefijos elegibles, la tasa comparable es:
eligible_hit_rate = R / (R + W)
Para toda la entrada enviada al modelo, la cuota reutilizada es:
input_reuse_share = R / (R + W + U)
Las cifras responden preguntas distintas. Un panel que divide por toda la entrada puede parecer bajo cuando el agente envía muchas solicitudes cortas y no elegibles. Uno que divide solo por tráfico elegible puede ocultar que el sufijo dinámico domina el coste. Publica ambas cifras, la regla de elegibilidad y la ventana temporal.
La evidencia son los campos del proveedor, no una insignia verde en la interfaz del agente:
| Señal | Campo OpenAI | Campo Claude | Qué demuestra |
|---|---|---|---|
| Prefijo reutilizado | input_tokens_details.cached_tokens |
cache_read_input_tokens |
Tokens servidos por una entrada coincidente |
| Nueva entrada | input_tokens_details.cache_write_tokens |
cache_creation_input_tokens |
Tokens usados para crear o ampliar una entrada |
| Entrada no reutilizada | input_tokens - input_tokens_details.cached_tokens - input_tokens_details.cache_write_tokens (derivar con cuidado) |
input_tokens después del breakpoint |
Entrada fuera del prefijo; la semántica difiere |
| Correlación | ID de solicitud, modelo y ruta | ID de solicitud, modelo y ruta | Qué intento del proveedor produjo el uso |
Ejemplo sintético, no telemetría de producción de Modelflare: R=720,000, W=80,000 y U=200,000 dan una tasa elegible de 720,000 / 800,000 = 90%, pero una cuota reutilizada de toda la entrada de 720,000 / 1,000,000 = 72%. Publicar solo una cifra oculta el denominador.
input_tokens_details.cache_write_tokens=0 no demuestra “sin caché”: una lectura no crea una entrada nueva. Del mismo modo, si una respuesta de terceros omite el campo de uso, no es cero; es un fallo de observabilidad que debe marcarse como no auditable.
Por qué una ruta de agente pierde aciertos aunque el modelo admita caché
El problema suele estar entre la aplicación y el proveedor. Estos son los puntos de ruptura más frecuentes:
- Los bytes dinámicos llegan demasiado pronto. Marcas de tiempo, ID de solicitud, usuario, experimento o una fecha actual cambiante modifican el prefijo antes de las instrucciones reutilizables.
- Las herramientas se serializan de nuevo. Añadir, quitar, reordenar o serializar de forma no determinista un schema de herramienta cambia el prefijo exacto; incluso el orden de claves JSON puede producir un miss.
- El fallback cambia la identidad. Balancear entre alias, regiones, organizaciones o credenciales no comparte una entrada universal.
- El adaptador elimina controles nativos. Quitar
cache_control,prompt_cache_key, retención o detalles de uso convierte la capacidad en un best effort invisible. - El prompt queda por debajo del umbral. Un turno corto puede ser válido y aun así no ser elegible.
- Se cruza el TTL. Una entrada de Claude de cinco minutos o una retención de OpenAI específica del modelo puede caducar durante una pausa humana.
- Hay una carrera de calentamiento paralelo. Varias primeras solicitudes pueden llegar antes de que la primera respuesta cree la entrada.
- Se reescribe el historial. Resumir, compactar, truncar o serializar de otra forma cambia el prefijo en lugar de añadir al final.
Ninguno de estos fallos exige engaño. Son consecuencias previsibles de tratar una solicitud de agente como texto libre y no conservar el contrato de caché del proveedor. La advertencia práctica es clara: si el agente no puede mostrar qué breakpoint falló, no puedes poner precio ni depurar tráfico dependiente del caché.
GPT y Claude comparten la idea, pero no la semántica
Ambos exigen un prefijo reutilizable idéntico, pero sus controles y contabilidad difieren. La tabla usa las guías oficiales comprobadas el 2026-08-25; nombres, mínimos y retención pueden cambiar.
| Dimensión | Prompt caching de OpenAI | Prompt caching de Claude |
|---|---|---|
| Unidad reutilizable | Prefijo completo del contexto renderizado: instrucciones, herramientas, historial y partes multimodales | Prefijo ordenado hasta un breakpoint cache_control: herramientas, system y mensajes |
| Longitud mínima | La guía actual indica 1.024 tokens visibles para GPT-5.6+ y normalmente 2.048 en modelos anteriores | Mínimos por modelo de aproximadamente 512–4.096 tokens; prompts más cortos no se almacenan |
| Controles | Caché implícito; breakpoints explícitos y prompt_cache_key estable en modelos compatibles |
Caché automático de nivel superior o breakpoints por bloque; hasta cuatro y lookback de 20 bloques |
| Retención | GPT-5.6+ admite TTL de 30 minutos; modelos anteriores exponen modos con ventanas típicas propias | TTL predeterminado de cinco minutos, renovado al usarlo; una hora opcional con mayor coste de escritura |
| Precio | En la guía GPT-5.6+ actual, escritura 1,25× y lectura 0,1× del input base | Escritura de cinco minutos 1,25×, de una hora 2×; lectura 0,1× |
| Evidencia | input_tokens_details.cached_tokens y, cuando existe, input_tokens_details.cache_write_tokens |
cache_read_input_tokens, cache_creation_input_tokens y input_tokens tras el breakpoint |
| Invalidación frecuente | Cambios de modelo, herramientas o ajustes, overflow de máquina o cambio antes del breakpoint | Cambios de modelo, system, herramientas o mensajes; mensaje previo ausente o miss de calentamiento paralelo |
OpenAI indica que las entradas viven en máquinas individuales: prompt_cache_key ayuda a agrupar y enrutar, pero no fija una máquina ni garantiza un hit. Claude documenta coincidencia exacta, aislamiento por workspace y diagnósticos como tools_changed y messages_changed. Un gateway que oculta esas diferencias no puede convertir honestamente la documentación en una sola promesa.
Los multiplicadores muestran el impacto. En el modelo OpenAI citado, una escritura seguida de una lectura cuesta aproximadamente 1.25 + 0.10 = 1.35× de la unidad sin caché; diez reutilizaciones completas cuestan 1.25 + 9×0.10 = 2.15× en lugar de 10×. Son cálculos ilustrativos oficiales, no una factura de Modelflare ni una garantía universal.
El impuesto del adaptador se puede medir
Usa una matriz de fallos, no una captura de pantalla. Fija prompt, modelo, credenciales y ritmo; cambia una variable y conserva el objeto usage original.
| Cambio controlado | Señal esperada | Qué puede ocultar un agente opaco | Interpretación |
|---|---|---|---|
| Añadir solo el turno del usuario | R sube después del primer W |
Historial reescrito o nueva ruta | El prefijo se conserva |
| Añadir una marca de tiempo al system prompt | R cae a cero o aparece otro W |
Qué bytes cambiaron | El prefijo dinámico rompe el caché |
| Reordenar una propiedad de herramienta | tools_changed o nueva escritura |
Serializador utilizado | El schema debe ser determinista |
| Dividir tráfico entre alias o máquinas | R menor y más variable |
Ruta y clave elegidas | Falta afinidad |
| Dormir más que el TTL | Nueva escritura tras expirar | Hora de expiración y retención | Medir aparte las pausas humanas |
| Lanzar dos primeras solicitudes en paralelo | Una o ambas pueden escribir | Carrera y orden de intentos | Un burst frío no mide capacidad |
Conserva ID de solicitud, modo de streaming, tiempo del primer evento, modelo exacto, ruta elegida, campos de caché y marca UTC. Redacta prompts, claves y contenido del cliente. Si el gateway solo devuelve un total de input normalizado, marca la prueba no auditable; no conviertas dimensiones faltantes en ceros inventados.
Un registro de auditoría reproducible
Este es un formato sintético pequeño. La envoltura es neutral y usage mantiene campos nativos. No es un benchmark.
{"request_id":"demo-001","timestamp":"2026-08-25T02:00:00Z","model":"MODEL_ID","route":"route-a","stream":true,"usage":{"input_tokens":1000000,"input_tokens_details":{"cached_tokens":0,"cache_write_tokens":1000000}}}
{"request_id":"demo-002","timestamp":"2026-08-25T02:00:03Z","model":"MODEL_ID","route":"route-a","stream":true,"usage":{"input_tokens":1000000,"input_tokens_details":{"cached_tokens":720000,"cache_write_tokens":80000}}}
Ejecuta cinco fases como mínimo: calentamiento serial, conversación con anexos, mutación dinámica del sistema, mutación del orden de herramientas y reproducción tras un intervalo TTL. Conserva los campos nativos de cada proveedor y compara R/(R+W) y R/(R+W+U) por fase, ruta, modelo y día UTC. Un número mezclado no basta para aprobar un agente en producción.
Qué garantiza Modelflare y qué no
La página pública de estado de Modelflare describe actualmente OpenAI Cache Hit Rate Guarantee. Para solicitudes elegibles que cumplen los requisitos de OpenAI y forman un caché válido, la tasa se calcula por día natural UTC. Si queda por debajo del nivel aplicable, se compensa la diferencia y aparece en Dashboard → Token Usage Analysis. Los niveles públicos actuales son 65%, 75% y 85%.
El límite es deliberado:
- La garantía cubre tráfico OpenAI elegible y válido, no solicitudes cortas o cambiantes que nunca califican.
- No convierte automáticamente un modelo, schema, ruta o TTL cambiante en un prefijo reutilizable.
- Se calcula por día UTC y se acredita en la superficie de cuenta documentada; no afirma que cada solicitud tenga hit.
- La evidencia nativa y el cálculo de elegibilidad siguen siendo necesarios. Un denominador explícito hace verificable la compensación.
Esa es la diferencia entre una promesa auditable y un eslogan de agente: la primera nombra población, ventana, umbral y destino del crédito.
La ventaja de precio y la legitimidad operativa son pruebas separadas
La página de precios también muestra actualmente una proporción promocional de 0.015 para la primera recarga en la campaña/grupo aplicable, con mínimo y condiciones publicados. Es un incentivo de precio, no la garantía de caché. Confirma en la página viva el alcance del modelo y las reglas de liquidación.
Los materiales públicos de confianza y legales identifican a Havenbyte LLC como operador y describen la operación como basada en Estados Unidos. Indican Stripe como procesador para pagos, facturas, reembolsos y controles antifraude. Son señales de custodia y responsabilidad, no una certificación ni una afirmación sobre un estado concreto.
Recomendación para agentes de producción
Elige un agente de terceros solo si supera esta lista:
- Reenvía controles nativos y devuelve lecturas y escrituras nativas.
- Mantiene idénticos los bytes del prefijo estable y añade después el estado dinámico.
- Expone modelo, ruta, límite de organización/región, modo TTL e ID de solicitud.
- Registra calentamiento serial y paralelo sin promediarlos.
- Define por escrito tráfico elegible, denominador, ventana UTC, umbral y compensación.
- Permite exportar evidencia por solicitud sin exponer claves ni contenido.
Si alguna respuesta es “no”, no uses la ruta para un workload cuya economía dependa de reutilización. Haz la prueba por la ruta directa del proveedor o usa un gateway auditable como Modelflare con el mismo corpus. Consulta también enrutamiento fiable de AI API, seguimiento de costes, precios y confianza.
Fuentes y fecha de verificación
Estas fuentes primarias se comprobaron el 2026-08-25. Definen contratos de proveedores y la política pública actual de Modelflare; no prueban una tasa universal para un agente de terceros no identificado.
- Guía de Prompt Caching de OpenAI
- Precios de la API de OpenAI
- Guía de Prompt Caching de Anthropic
- Diagnóstico de caché de Anthropic
- Estado y garantía de caché de Modelflare
- Precios y condiciones actuales de Modelflare
- Confianza y entidad operativa de Modelflare
Pregunta frecuente: ¿una tasa baja siempre significa fraude?
No. Prompts cortos, prefijos cambiantes, rutas dispersas, expiración TTL o campos ausentes pueden explicar el valor. El hallazgo correcto es “no reproducible” o “no auditable” hasta hallar la causa con una prueba controlada.
Pregunta frecuente: ¿puedo comparar Claude y GPT con un número?
Solo después de normalizar el denominador y conservar los campos nativos. Compara el mismo corpus y fase, no un total mezclado del panel.
Pregunta frecuente: ¿la compensación elimina la necesidad de un prefijo estable?
No. La compensación limita el riesgo financiero del tráfico OpenAI elegible; no hace reutilizable una solicitud no elegible ni repara un agente que reescribe el prefijo.