cd ../back to blog
$Trust//June 4, 2026//6 min read

Inflación de tokens: cómo los gateways te cobran 5–25× (y una prueba de 20 líneas)

Los gateways inflan el conteo de tokens para cobrarte 5–25× de más. Aprende cómo funciona el relleno y ejecuta una prueba de 20 líneas contra cualquiera.

Toda API de IA te cobra por token. Confías en que el objeto usage que devuelve el gateway — prompt_tokens, completion_tokens — sea el conteo real. Pero ese número es justo lo que un revendedor controla por completo, y es el lugar más fácil para cobrarte de más sin que lo notes. El nombre amable es inflación de tokens: el gateway reporta más tokens de los que realmente enviaste o recibiste, y pagas 5×, 10×, a veces 25× el coste honesto — sea el modelo genuino o no.

Este es el problema contra el que se construyó Brievio, así que vale la pena explicarlo sin rodeos: cómo funciona el relleno, una prueba de 20 líneas que puedes ejecutar contra cualquier gateway (incluido el nuestro) y cómo interpretar el resultado.

Qué es realmente la inflación de tokens

El conteo honesto de tokens es lo que el propio proveedor contaría para tus mensajes — tu system prompt, tu contenido de usuario, la respuesta del modelo. Un gateway confiable lo pasa tal cual. Uno inflado lo rellena. La misma petición, una factura muy distinta:

usage.json
# Conteo honesto — coincide con el texto que enviaste, más una pequeña
# sobrecarga de la plantilla de chat (marcadores de rol, tokens de formato):
{"prompt_tokens": 24, "completion_tokens": 2, "total_tokens": 26}

# Inflado — enviaste ~20 tokens de texto, pero pagas por 1.840:
{"prompt_tokens": 1840, "completion_tokens": 2, "total_tokens": 1842}
#   ^ un system prompt de ~1.800 tokens que nunca escribiste fue inyectado
#     en la petición y te lo cobraron. En una pregunta de una sola palabra. En cada llamada.

El truco más común es un system prompt inyectado y oculto: el revendedor antepone unos cientos o unos miles de tokens de su propio texto — un preámbulo de "seguridad", un envoltorio de enrutamiento, una persona falsa — a cada llamada. Nunca lo escribiste, no puedes verlo, pero lo pagas en cada petición. A las tarifas de input de Sonnet, un prefijo fantasma de 1.800 tokens son unos $0.0055 de margen puro sobre una pregunta de una sola palabra. Multiplícalo por un millón de llamadas al mes.

La prueba de 20 líneas

No tienes que creerle a nadie de palabra — tampoco a nosotros. Envía un prompt cuyo tamaño conoces y compara lo que el gateway te cobró contra los tokens a los que realmente equivale tu texto en tu propia máquina:

token_inflation_test.py
# token_inflation_test.py
# ¿Tu gateway reporta conteos de tokens honestos? Envía un prompt de tamaño
# conocido y compara el prompt_tokens que reporta el gateway contra el conteo
# de un tokenizador local sobre los mensajes EXACTOS que enviaste.
import tiktoken
from openai import OpenAI

client = OpenAI(api_key="sk-brievio-...", base_url="https://api.brievio.com/v1")

messages = [
    {"role": "system", "content": "You are a terse assistant."},
    {"role": "user", "content": "Reply with the single word: ok."},
]

# 1. Lo que el gateway te cobra:
resp = client.chat.completions.create(
    model="claude-sonnet-4-6", messages=messages, max_tokens=5,
)
reported = resp.usage.prompt_tokens

# 2. A cuántos tokens equivalen realmente tus mensajes, en local:
enc = tiktoken.get_encoding("cl100k_base")   # una aproximación — ver nota abajo
local = sum(len(enc.encode(m["content"])) for m in messages)

print(f"gateway reported prompt_tokens: {reported}")
print(f"local token count of your text: {local}")
print(f"ratio: {reported / local:.1f}x")

# Normal     → ratio ~1.1-1.6x  (marcadores de rol + sobrecarga de plantilla)
# Inflación  → ratio 2x / 5x / 25x  (un prompt oculto está rellenando tu input)

Cómo leerlo: una pequeña sobrecarga fija es normal — los formatos de chat añaden un puñado de tokens para los marcadores de rol y los límites de mensaje, así que un ratio de alrededor de 1.1–1.6× en un prompt pequeño es correcto y baja hacia 1.0× a medida que tu prompt crece. Un ratio de , o 25× no es un error de redondeo: es relleno.

Una advertencia honesta: el cl100k_base de tiktoken es el tokenizador de OpenAI, y Claude o Gemini tokenizan un poco distinto (normalmente dentro de un 10–20%). Así que trata el conteo local como una aproximación, no como una auditoría token a token. Nunca explicará una diferencia de 2×, mucho menos de 25× — para una cifra exacta, usa el tokenizador propio del proveedor o su endpoint de count-tokens. La prueba está hecha para detectar inflación, no para discutir por tokens sueltos.

Revisa también el output y la caché

El input es el blanco habitual, pero el mismo relleno puede esconderse en los tokens de output y en la caché. Dos comprobaciones rápidas más:

output_and_cache.py
# El output y la caché también se pueden rellenar. Dos comprobaciones más de 30 segundos:
#
# (a) Output: pide exactamente un token y limítalo.
resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Reply with only: ok"}],
    max_tokens=2,
)
print(resp.usage.completion_tokens)   # honesto: ~1-2.  Rellenado: 50, 200, ...
#
# (b) Caché: envía el mismo prefijo largo dos veces en ~5 min. La segunda llamada
#     debería cobrar la mayor parte del input a la tarifa reducida de lectura de caché.
#     Si el campo "cached" siempre es 0, estás pagando precio completo por aciertos de caché.
print(resp.usage.prompt_tokens_details.cached_tokens)

Si pides un token y te cobran cincuenta, o si tu cached_tokens se queda en cero en una llamada repetida idéntica, el contador está mal.

De dónde viene la inflación

  • System prompts inyectados. Un preámbulo envoltorio añadido a cada petición — la fuente más común con diferencia. Grande, invisible, facturado.
  • Modelos "proxy de plantilla" reenvueltos. Tu prompt se mete dentro de una plantilla fija y grande antes de llegar al modelo. Los tokens de la plantilla son tokens reales — para el modelo y para tu factura — pero no son tuyos.
  • Cifras de uso fabricadas. La versión más burda: el objeto usage simplemente no coincide con la realidad. La prueba de arriba lo detecta de inmediato.
  • Relleno fantasma en el output. El completion_tokens reportado supera las palabras realmente devueltas.

Nada de esto requiere un modelo falso. Un gateway puede servir el Claude genuino y aun así inflar el contador — la autenticidad del modelo y la honestidad de la factura son dos promesas distintas, y deberías verificar ambas.

La referencia honesta

Brievio pasa los conteos de tokens del propio proveedor sin alterarlos, no inyecta nada en tus peticiones y registra los tokens reales de input y output más el coste exacto en cada llamada, visible en tu panel de uso. Ejecuta la prueba de arriba contra Brievio y deberías ver reported ≈ local + sobrecarga pequeña — tal como debería leerse en todas partes. Nuestros precios muestran cada modelo frente a su tarifa de referencia oficial para que el descuento sea auditable, y la documentación de uso detalla exactamente qué campos devolvemos.

Si un gateway está un 80% por debajo del precio de lista, la primera pregunta no es "¿es real el modelo?" — es "¿qué dice el contador?". Ejecuta las 20 líneas. Cuesta menos de un centavo, y es la diligencia debida más barata que harás jamás sobre un proveedor.