10 Técnicas de Ahorro de Tokens para Desarrolladores de IA

Cada token que envías a una API de LLM es una unidad facturable. A los precios de GPT-4o de $2.50 por millón de tokens de entrada, un prompt del sistema inflado de 200 tokens repetido en 500,000 solicitudes diarias cuesta $250 adicionales al mes — por tokens que no hacen nada útil. Esta guía te da diez técnicas concretas que puedes implementar hoy.

01

Eliminar Palabras de Relleno y Cortesías

Ahorra 15–30% en prompts del sistema

Los modelos no necesitan "por favor", "amablemente", "como modelo de IA" ni "me gustaría que". Estas frases consumen tokens sin mejorar la calidad de la salida. Elimínalas sin piedad.

# ANTES — 52 tokens
Por favor analiza cuidadosamente los siguientes comentarios de
clientes y proporciona amablemente un análisis detallado de
sentimientos. Como asistente de IA útil, asegúrate de ser
exhaustivo.

# DESPUÉS — 18 tokens
Analiza comentarios de clientes. Retorna: sentimiento
(pos/neg/neutro), temas clave, confianza 0-1.
02

Usar Formatos Estructurados en Lugar de Prosa

Ahorra 20–40% en instrucciones

Las instrucciones en prosa como "Por favor responde en formato JSON con los siguientes campos..." son verbosas. Mostrar el esquema directamente es más conciso y a menudo más efectivo.

# ANTES — 55 tokens
Por favor responde a la pregunta del usuario en formato JSON.
El JSON debe tener un campo "respuesta" con tu respuesta,
un campo "confianza" con un número entre 0 y 1, y un arreglo
"fuentes" si tienes fuentes relevantes.

# DESPUÉS — 18 tokens
Responde JSON: {"respuesta":"...","confianza":0.0-1.0,"fuentes":[]}
03

Usar Abreviaturas en Prompts del Sistema

Ahorra 10–20% en prompts repetitivos

En prompts del sistema largos, define abreviaturas una vez y úsalas en todo el texto. "IU" en lugar de "interfaz de usuario", "req" en lugar de "requisito", "BC" en lugar de "base de conocimiento". Los modelos entienden las abreviaturas perfectamente.

# ANTES — 42 tokens
Cuando el usuario envíe un ticket de soporte, consulta la base
de conocimiento para encontrar documentación relevante. Si la
base de conocimiento contiene una respuesta, proporciónala con
un enlace al artículo de la base de conocimiento.

# DESPUÉS — 24 tokens
Con ticket de soporte: consultar BC para docs relevantes.
Si hay coincidencia en BC: respuesta + enlace a artículo.
04

Comprimir Contexto con Resúmenes Progresivos

Ahorra 40–70% en conversaciones largas

A medida que las conversaciones crecen, reenvías todo el historial en cada turno. Después de 6–8 turnos, reemplaza los mensajes más antiguos con un resumen compacto. Usa un modelo económico (Gemini Flash) para la síntesis y minimiza el costo de compresión.

async def comprimir_historial(mensajes, max_tokens=1500):
    if contar_tokens(mensajes) < max_tokens:
        return mensajes

    a_resumir = mensajes[1:-6]  # mantener sistema + últimos 3 turnos
    prompt_resumen = f"Resume esta conversación en ≤100 palabras: {a_resumir}"
    resumen = await llamar_llm(prompt_resumen, model="gemini-2.5-flash")

    return [
        mensajes[0],  # prompt del sistema
        {"role": "assistant", "content": f"[Contexto previo: {resumen}]"},
        *mensajes[-6:]
    ]
05

Usar Ejemplos Few-Shot de Forma Eficiente

Ahorra 30–50% vs ejemplos extensos

Los ejemplos few-shot son poderosos pero costosos si están inflados. Usa los ejemplos más cortos que demuestren el patrón. El modelo infiere el patrón solo con los pares entrada/salida.

# ANTES — 82 tokens
Aquí hay algunos ejemplos de cómo clasificar mensajes de clientes:
Ejemplo 1: Cuando un cliente dice "Mi pedido no ha llegado todavía"
esto debe clasificarse como un problema de "entrega".
Ejemplo 2: Cuando dice "Me cobraron dos veces" → "facturación".

# DESPUÉS — 28 tokens
Clasifica el tipo de mensaje.
"Mi pedido no llegó" → entrega
"Me cobraron dos veces" → facturación
"{mensaje}" →
06

Dividir Prompts Complejos en Llamadas Más Pequeñas

Reduce costo de errores, habilita enrutamiento

Un solo prompt complejo que pide 5 cosas a menudo da peores resultados que 5 prompts enfocados. Más importante aún, puedes enrutar subtareas a modelos más económicos.

# En lugar de una llamada costosa que hace todo:
# "Extrae entidades, clasifica sentimiento, genera respuesta,
#  traduce al inglés y verifica política"

# Divídelo en llamadas enrutadas:
entidades  = await llamar(prompt_extrac, model="gemini-flash")  # barato
sentimiento = await llamar(prompt_clasif, model="gemini-flash") # barato
respuesta  = await llamar(prompt_genera, model="gpt-4o")        # costoso
traduccion = await llamar(prompt_traduc, model="gemini-flash")  # barato
07

Eliminar Espacios en Blanco y Líneas Vacías

Ahorra 2–8% con cero esfuerzo

Las líneas en blanco, los espacios finales y la sangría excesiva se tokenizan como tokens separados. Es un ahorro pequeño, pero no cuesta nada implementarlo y se acumula en millones de llamadas.

import re

def comprimir_espacios(prompt: str) -> str:
    # Eliminar espacios al final de cada línea
    prompt = re.sub(r'[ \t]+$', '', prompt, flags=re.MULTILINE)
    # Colapsar 2+ líneas vacías en una
    prompt = re.sub(r'\n{3,}', '\n\n', prompt)
    return prompt.strip()
08

Usar Optimizaciones Específicas de Cada Modelo

Ahorra 10–25% con características nativas

Cada modelo tiene características diseñadas para reducir la sobrecarga de tokens:

  • OpenAI: Usa response_format: {"type": "json_object"} en lugar de pedir JSON en el prompt
  • Anthropic: Usa etiquetas XML (<instrucciones>, <contexto>) para mayor claridad con menos palabras
  • Gemini: Usa generationConfig.responseMimeType: "application/json" para salida JSON directa
09

Cachear Prompts del Sistema con la Caché de Anthropic

Ahorra 90% en costos repetidos del sistema

La caché de prompts de Anthropic marca parte de tu prompt como cacheable. En solicitudes subsiguientes, las porciones en caché se leen a $0.30/1M tokens en lugar de $3.00/1M — una reducción del 90%.

import anthropic

client = anthropic.Anthropic()
respuesta = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": prompt_sistema_largo,  # ej. 4000 tokens
            "cache_control": {"type": "ephemeral"}  # caché 5 min
        }
    ],
    messages=[{"role": "user", "content": mensaje_usuario}]
)
# Primera llamada: escribe caché (precio completo)
# Llamadas 2-N: lee caché ($0.30/1M vs $3.00/1M)
10

Medir Antes y Después con un Contador de Tokens

Esencial para verificar el impacto real

Todas las técnicas anteriores solo son útiles si mides su efecto. Diferentes modelos tokenizan el texto de forma diferente — un prompt de 150 tokens para GPT-4o puede ser 180 tokens para Claude. Antes de desplegar cualquier optimización, verifica los recuentos de tokens reales con Tokenia.

import tiktoken

enc = tiktoken.encoding_for_model("gpt-4o")

tokens_antes = len(enc.encode(prompt_antes))
tokens_despues = len(enc.encode(prompt_despues))

print(f"Antes:  {tokens_antes} tokens")
print(f"Después: {tokens_despues} tokens")
print(f"Ahorro: {(tokens_antes - tokens_despues)/tokens_antes:.0%}")

Resumen de Ahorros Esperados

TécnicaAhorro típicoEsfuerzo de implementación
Eliminar palabras de relleno15–30%Minutos
Formatos estructurados20–40%Minutos
Abreviaturas10–20%Minutos
Resúmenes progresivos40–70%1–2 horas
Few-shot eficiente30–50%30 minutos
Dividir prompts complejosVariable + ganancias de calidad2–4 horas
Eliminar espacios2–8%5 minutos
Características del modelo10–25%1 hora
Caché de prompts (Anthropic)Hasta 90% en prompt del sistema30 minutos
Medir con contador de tokensValida todo lo anteriorContinuo

Mide tus ahorros con Tokenia

Pega tus prompts antes y después en Tokenia para ver la diferencia exacta en el recuento de tokens y el ahorro de costos en todos los modelos principales — gratis, al instante, sin registro.

Prueba Tokenia Gratis →