S1 · Tokens, contexto y coste
Al terminar esta sesión sabes cuánto cuesta una ejecución completa de tu sistema, qué paso se lleva más dinero y por qué el mismo texto no cuesta lo mismo en todos los idiomas.
Antes de empezar: apunta tu estimación
Sin calcular nada: ¿cuánto crees que cuesta una ejecución de tu sistema? ¿Y cien? Apúntalo en un papel. Al final de la sesión lo comparas con la cifra real.
Lo esencial
- Token. El modelo no lee letras ni palabras: lee trozos de texto de un vocabulario fijo. Muchas palabras en español se parten en varios tokens; el chino depende de los caracteres. El precio va por token.
- Ventana de contexto. Todo lo que el modelo ve en una llamada (instrucciones, historial, documentos y respuesta) cabe en un máximo de tokens. En un sistema de agentes, cada paso vuelve a pagar todo lo que lee.
- Tres precios. Entrada (lo que lee), salida (lo que escribe, varias veces más cara) y caché (leer un principio de prompt repetido cuesta una fracción de la entrada).
- Razonamiento. Los modelos actuales piensan antes de responder. Ese razonamiento no siempre se ve, pero se cobra como salida.
De dónde sale la cifra
Cada respuesta de la API trae su consumo en «usage». Con eso y la tabla de precios, el coste es una cuenta:
const M = 1_000_000;
// precio en dólares por millón de tokens; uso = response.usage
function costeDeUso(uso: Uso, precio: Precio): number {
const entrada = (uso.input_tokens / M) * precio.entrada;
const salida = (uso.output_tokens / M) * precio.salida; // incluye el razonamiento
const cacheEscritura = ((uso.cache_creation_input_tokens ?? 0) / M) * precio.cacheEscritura;
const cacheLectura = ((uso.cache_read_input_tokens ?? 0) / M) * precio.cacheLectura;
return entrada + salida + cacheEscritura + cacheLectura;
}Los precios cambian: el repositorio los guarda en comun/precios.ts con su fecha de revisión. Compruébalos en la web del proveedor antes de usar una cifra en un informe o en una propuesta.
Práctica guiada
Trabajas con el código de partida del curso (el repositorio ia-en-produccion: te damos acceso al matricularte). Necesitas Node 20 o superior. Sin clave de API también funciona: los scripts tienen un modo ensayo con datos de ejemplo, marcados como tales.
npm install
cp .env.example .env # y pon tu clave (Claude o z.ai), si la tienes
npm run m1:tokens # el mismo texto en español, inglés y chino
npm run m1:coste # coste de la sesión de ejemplo, paso a pasoEsto es lo que imprime m1:coste con la sesión de ejemplo: diez agentes en cadena que producen una muestra de corpus. Las cifras de tokens son inventadas para el ejercicio; el cálculo, no.
paso modelo entrada salida razon. coste peso
Tokio · planifica claude-sonnet-5-5 3200 900 400 0,0154 $ 2,7 %
Denver · documenta claude-sonnet-5-5 5400 1500 600 0,0258 $ 4,5 %
Estocolmo · registro claude-sonnet-5-5 6100 700 300 0,0192 $ 3,4 %
Río · redacta claude-opus-5-5 7800 4200 2600 0,1152 $ 20,1 %
Berlín · anota claude-sonnet-5-5 11200 2800 1200 0,0504 $ 8,8 %
Lisboa · anota léxico claude-sonnet-5-5 13400 2400 1000 0,0508 $ 8,9 %
Nairobi · revisa claude-sonnet-5-5 14900 1100 500 0,0408 $ 7,1 %
Palermo · juzga claude-opus-5-5 16300 2200 1500 0,1092 $ 19,1 %
Helsinki · registra claude-sonnet-5-5 15800 800 200 0,0396 $ 6,9 %
Profesor · informe claude-opus-5-5 17100 1900 900 0,1064 $ 18,6 %
Total de la ejecución: 0,5728 $ · 100 ejecuciones: 57,28 $
La salida supone el 46,8 % del coste; el razonamiento, 9200 de 18500 tokens de salida.
Con caché, si el 60 % de la entrada de cada paso es su prompt fijo: 0,4033 $ por ejecución.Responde con la tabla delante:
- ¿Qué paso es el más caro y por qué: por el modelo, por lo que lee o por lo que escribe?
- La entrada crece de un paso a otro. ¿Qué significa eso en un sistema en cadena?
- ¿Cuánto del coste es salida? ¿Y cuánto de la salida es razonamiento?
- ¿Qué ahorraría la caché? ¿Qué parte de cada paso podría ir en caché de verdad?
Solución de referencia
El paso más caro es Río (20 %): escribe mucho y con el modelo caro. La entrada se multiplica por más de cinco del primer paso al último, porque cada agente recibe todo lo anterior; ahí hay coste que no aporta nada si el agente no lo necesita. Casi la mitad del coste es salida, y la mitad de la salida es razonamiento. La caché solo ahorra en la parte de cada prompt que se repite igual en todas las ejecuciones.
Práctica libre: mide tu sistema
Copia comun/registro.ts en tu sistema y llama a anotarUso después de cada llamada a la API. Solo guarda cifras: ni el prompt ni la respuesta, así que no hay datos personales en el registro.
import { anotarUso } from "./registro";
const r = await client.messages.create({ model, max_tokens: 4000, messages });
anotarUso("Redactor", r.model, r.usage); // una línea en salidas/usos.jsonlHaz una ejecución completa y después:
npm run m1:coste -- salidas/usos.jsonl
npm run m1:tokens -- un-texto-real-de-tu-sistema.txtVariante con andamiaje: si hoy no puedes instrumentar tu sistema, copia datos/sesion-ejemplo.json, cambia los modelos y las cifras por las de tu caso (aproximadas) y razona con ellas.
Comprueba lo que has aprendido
S1 · Tokens, contexto y coste
Seis preguntas para comprobar que sabes de dónde sale el coste de una llamada.
Entrega
📝 Coste por ejecución de tu sistema
10 ptsMatricúlate en el curso para poder entregar esta tarea.
