Optimización de costosAnálisis
Cómo estimar el coste de un agente de IA
Por qué las facturas de los agentes están dominadas por los tokens de entrada, una fórmula que puedes ejecutar antes que el agente, un ejemplo desarrollado de 30 pasos y siete formas de reducir el coste.

En esta página
Un agente de IA no hace una sola petición: hace decenas, y cada paso reenvía la conversación que va creciendo. Por eso las facturas de los agentes están dominadas por los tokens de entrada, y por eso la intuición del "precio por respuesta" de las apps de chat no funciona. Aquí tienes cómo estimar el coste antes de que el agente se ejecute, y a dónde va realmente el dinero.
La fórmula#
El coste de una petición es los tokens de entrada por el precio de entrada más los tokens de salida por el precio de salida. Los precios se cotizan por millón de tokens:
request_cost = input_tokens / 1,000,000 × input_price
+ output_tokens / 1,000,000 × output_priceEl coste de una tarea es la suma de todas las peticiones que hace el agente mientras la resuelve.
Por qué los agentes consumen tanta entrada#
En cada paso el agente envía al modelo:
- el prompt del sistema y las definiciones de herramientas;
- todo el historial hasta el momento: mensajes anteriores, las respuestas previas del modelo y los resultados de herramientas (contenido de archivos, salida de comandos, resultados de búsqueda);
- la nueva instrucción.
El modelo normalmente responde con un mensaje corto o una llamada a herramienta. Después, el resultado de la herramienta se añade al historial y el siguiente paso lo envía todo de nuevo. Así, la entrada de cada paso crece, mientras que la salida se mantiene pequeña.
Un ejemplo desarrollado#
Condiciones (supuestos: sustitúyelos por números de tu agente):
- prompt del sistema y definiciones de herramientas: 6.000 tokens;
- cada paso añade 1.500 tokens de resultados de herramientas y 500 tokens de salida del modelo al historial;
- la tarea requiere 30 pasos;
- modelo: DeepSeek-V4-Flash a $0.0221 por 1M de tokens de entrada y $0.10 por 1M de tokens de salida (precios actuales).
La entrada del paso n es 6.000 + (n − 1) × 2.000 tokens. A lo largo de 30 pasos:
- entrada total: 30 × 6.000 + 2.000 × (0 + 1 + … + 29) = 180.000 + 870.000 = 1.050.000 tokens;
- salida total: 30 × 500 = 15.000 tokens;
- coste: 1,05 × $0.0221 + 0,015 × $0.10 ≈ $0.0247 por tarea.
La entrada es el 98,6% de los tokens y casi todo el coste. Cuánto domina la entrada depende del escenario: las respuestas largas, los archivos generados y los modelos de razonamiento elevan la proporción de salida, mientras que un historial recortado y una salida de herramienta corta reducen la proporción de entrada.
La misma tarea en todos los modelos a los precios actuales, con los precios de referencia de OpenRouter para comparar:
| Modelo | Entrada $/1M | Salida $/1M | Costo | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.027 | $0.08 | $0.0296 | $0.0534 |
| DeepSeek-V4-Flash | $0.0221 | $0.10 | $0.0247 | $0.0264 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0548 | $0.333 |
1.050.000 tokens de entrada y 15.000 tokens de salida en total. Los precios por 1M de tokens son actuales y cambian junto con nuestras tarifas; la columna de OpenRouter muestra precios de referencia para la misma carga de trabajo.
Estímalo en código#
El mismo cálculo como función: cambia los supuestos y los precios:
def estimate(steps, base_tokens, tool_tokens, out_tokens, price_in, price_out):
"""Token totals and cost of one agent task. Prices: $ per 1M tokens."""
grow = tool_tokens + out_tokens # what each step adds to the history
total_in = steps * base_tokens + grow * steps * (steps - 1) // 2
total_out = steps * out_tokens
cost = (total_in * price_in + total_out * price_out) / 1_000_000
return total_in, total_out, round(cost, 5)
# example rates, $ per 1M tokens — put in the current ones from the pricing table below
print(estimate(30, 6_000, 1_500, 500, price_in=0.10, price_out=0.40))
# (1050000, 15000, 0.111)Fíjate en el término cuadrático: duplicar el número de pasos cuadruplica aproximadamente la entrada. Las sesiones largas se vuelven caras no por un paso concreto, sino porque cada paso arrastra todo el historial.
Mide en lugar de suponer#
Cada respuesta incluye usage. (entrada) y usage. (salida). Regístralos en cada paso de una tarea real, multiplícalos por las tarifas actuales y tendrás el coste real. El panel también muestra el uso por modelo y por día.
Tarifas actuales: los mismos datos que en la página de precios:
| Modelo | Contexto | Entrada $/1M | Salida $/1M | OpenRouter entrada | OpenRouter salida |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning temporalmente no disponible | 390K | $0.027 | $0.08 | $0.048 | $0.20 |
| DeepSeek-V4-Flash temporalmente no disponible | 380K | $0.0221 | $0.10 | $0.016 | $0.64 |
| MiniMax-M2.7 temporalmente no disponible | 200K | $0.05 | $0.15 | $0.30 | $1.20 |
Precios en USD por 1M de tokens. Las cifras de OpenRouter se muestran para comparación y pueden cambiar.
Siete formas de reducir el coste#
- Empieza una tarea nueva para trabajo no relacionado. Una sesión nueva no arrastra el historial de la anterior.
- Dale al agente fragmentos, no archivos enteros. Una función y sus llamadores en lugar de un módulo de 3.000 líneas.
- Recorta la salida de las herramientas. Los registros largos y la salida de comandos permanecen en el historial durante el resto de la sesión: limítalos, por ejemplo con
| tail -n 50. - Resume las sesiones largas. Muchos agentes pueden compactar el historial; úsalo antes de que el contexto se alargue.
- Limita la longitud de la respuesta con
max_tokensdonde no se necesiten respuestas largas. - Usa el modelo adecuado para cada paso. Los pasos rutinarios no necesitan un modelo de razonamiento.
- Mantén un presupuesto de prepago. El saldo es de prepago: cuando se agota, las peticiones se detienen con HTTP 402 en lugar de acumular una factura abierta.
Para ver cómo se compara la misma carga de trabajo entre modelos y con OpenRouter, usa la comparación de costes de la página de inicio.



