PTENES
Saltar al contenido
MÓDULO 1.5 · MODO ENSEÑANZA

💸 Ahorro de tokens

Hay una idea que parece un hechizo, pero es solo ingeniería: un codebase fácil de modificar te permite usar un modelo más barato para hacer el mismo trabajo. Aquí entiendes qué es un token, por qué cuesta dinero y cómo tu harness —no el modelo— decide cuánto pagas. Cada palabra nueva se explica en el momento.

6
Temas
~40
Minutos
1.1–1.4
Prerreq.
Práctico
Tipo
Progreso: 0% 0 de 6

📖 Glosario vivo (lee antes — vuelve siempre que lo necesites)

Este módulo habla de costo. Antes que nada, fija qué es un token — es la "moneda" que gastas cuando usas IA. Ya viste los demás términos en los módulos 1.1–1.4; aquí vuelven aplicados al bolsillo:

Token — la unidad más pequeña de texto que el modelo lee y escribe. No es exactamente una palabra: es un fragmento de ella (en promedio, ~4 letras ≈ 1 token; «programación» puede convertirse en 3-4 tokens). Pagas por token: cada token que entra (tu pedido + el contexto) y cada token que sale (la respuesta) tiene un precio. Los tokens son la «moneda» de la IA.
Gasto de tokens — cuántos tokens consume una tarea de principio a fin. Cuanto más intenta el agente, se equivoca, vuelve a leer archivos e intenta de nuevo, más tokens consume — y más caro resulta.
Guard rail — «barrera de protección»: algo en el codebase que impide la IA para que no siga un camino equivocado (una prueba, un tipo, un lint, un error claro). Como la baranda de una pista de bolos infantil.
Modelo más barato / más tonto — un modelo más pequeño y más barato por token (p. ej., un "Haiku" en lugar de un "Opus"). Menos capaz por sí solo, pero con un buen harness hace el mismo trabajo por una fracción del precio.
Hamstringing — «ponerle trabas» al modelo: darle un codebase confuso, sin guard rails, sin documentación. Tropieza, gasta tokens en vano y te ves obligado a usar el modelo caro para compensar.
Refactorizar — reescribir el código internamente para que sea más simple y claro, sin cambiar lo que hace externamente. Es poner la casa en orden para que el próximo cambio sea barato.
1

🏗️ La arquitectura reduce tokens

🧠 Imagínalo así: le pides a un repartidor que deje un paquete. En una casa con una dirección clara y un portón al frente, lo entrega en 2 minutos. En un condominio laberíntico y sin letreros, da vueltas durante media hora, y tú pagas por su tiempo. El paquete es el mismo; el terreno es quien decidió el costo.

La frase clave de Matt Pocock sobre este tema es directa: "¿Cómo optimizas el gasto de tokens? Teniendo un codebase al que sea más fácil hacerle cambios." Fíjate: su respuesta no no es «usa un prompt mágico» ni «espera a que haya un modelo mejor». Es arquitectura — la forma en que tu codebase está organizado. Cada vez que el agente necesita entender el código para cambiar algo, lee archivos (tokens de entrada) y escribe intentos (tokens de salida). Cuanto más confuso sea el terreno, más necesita leer e intentar, y el gasto de tokens sube.

¿Por qué esto es fundamental y no un detalle? Porque el precio de la IA se cobra por token — tanto lo que entra como lo que sale. Un archivo gigante de mil líneas obliga al agente a tragárselo todo solo para cambiar una función. En cambio, un codebase modular (archivos pequeños, nombres obvios, cada cosa en su lugar) permite que el agente lea solo la parte relevante. La misma tarea, el mismo modelo, una fracción de los tokens. El error común de principiante es tratar el costo de la IA como una cifra fija en la factura, cuando en realidad es consecuencia directa de cuán fácil dejaste de recorrer tu código.

CODEBASE DESORDENADO arquivo-gigante.js (1200 líneas, todo junto) el agente necesita leer TODO para cambiar 1 función ≈ 40k tokens 💸 CODEBASE MODULAR auth/ ui/ pagamento/ lee SOLO el módulo correcto ≈ 5k tokens ✓

La misma tarea, el mismo modelo. Toda la diferencia de costo está en la arquitectura.

Ilustración conceptual: dos caminos para la IA: un laberinto caótico lleno de tokens desperdiciados y una ruta limpia y directa

⚠️ Error común de principiante

Creer que «la IA es cara» es culpa del modelo y que la solución es suscribirse a un plan más grande. Casi siempre ocurre lo contrario: el codebase está obligando al agente a leer e intentar mucho más de lo necesario. La factura es un síntoma de la arquitectura.

En 1 frase: un codebase fácil de modificar es un codebase barato de modificar — porque el agente lee e intenta menos.

Profundiza (opcional): ¿por qué «token» y no «palabra»?

Los modelos no leen letra por letra ni palabra por palabra: dividen el texto en «tokens», fragmentos que se repiten mucho en el idioma (prefijos, sufijos, palabras cortas completas). Una palabra común se convierte en 1 token; una rara o larga, en varios. Por eso el precio se calcula por token: es la unidad que el modelo realmente procesa. Una estimación práctica para portugués y código: divide el número de caracteres por ~4 para obtener un orden de magnitud de tokens.

2

🛡️ Los guard rails evitan tropiezos

🧠 Imagínalo así: esas pistas de bolos infantiles con barreras en los canales. El niño no necesita ser un jugador profesional para derribar los bolos — la barrera corrige la trayectoria de la bola. Guard rails hacen esto con la IA: no hace falta que sea genial si el codebase la empuja de vuelta al camino correcto.

Pocock usa una imagen excelente para explicar el costo: sin protección, el modelo queda "dándose de cabeza contra la pared" — intentando, fallando, intentando de nuevo, quemando tokens en cada intento. La solución no es un modelo más inteligente: son guard rails. Un guard rail es cualquier cosa en la base de código que impide el camino equivocado y señala el correcto: un tipo (type) que no compila si le pasas el valor incorrecto; un prueba que falla de inmediato; un linter que se queja; un mensaje de error claro que dice exactamente qué falta.

La razón es puro costo: cada guard rail convierte una tropiezo costoso (el agente descubre el error tarde, después de reescribir medio sistema) en una corrección barata (el error aparece de inmediato, en una línea). Pocock resume: "mejores barreras de seguridad, menos tokens chocando contra la pared." O error común aquí es lo opuesto — gente que elimina las pruebas «para ir más rápido». Sin barreras de seguridad, la IA avanza a ciegas, se desvía más y te cuesta más a cada paso.

SIN guard rails pared 💥 vuelve a intentar… muchos tokens, varios errores CON guard rails (type · teste · lint) el bordillo corrige la pelota → acierto a la primera

🔬 Ejemplo resuelto: el type que ahorra 10 intentos

La IA necesita llamar a una función enviarEmail(destino, assunto, corpo).

Sin guard rail

La función acepta cualquier cosa. La IA invoca enviarEmail(corpo, destino) cambiado. Nadie se queja en el momento. Solo falla al ejecutarlo: ella lo vuelve a leer todo, lo intenta de nuevo, lo vuelve a leer… 8 intentos, miles de tokens.

Con guard rail (type)

Los parámetros tienen tipos. En el 1.er intento incorrecto, el verificador de tipos lo señala "el destino espera Email, recibió Texto". La IA corrige al instante. 1 intento, pocos tokens.

En 1 frase: un guard rail es la baranda que hace que la IA acierte sin ser un genio, y cada acierto en el momento ahorra tokens.

3

🪙 Cuándo basta con un modelo menos inteligente

🧠 Imagínalo así: en una cocina bien organizada — todo etiquetado, cuchillo afilado, receta en la encimera — hasta un cocinero principiante prepara un plato decente. En una cocina caótica, solo un chef con experiencia se las arregla. La cocina (el harness) determina qué nivel de cocinero (modelo) necesitas.

Aquí está el corazón del módulo, en palabras de Pocock: "Ten un codebase más fácil de modificar → puedes usar un modelo más tonto/más barato para hacer el mismo trabajo." Fíjate en la lógica: la capacidad necesaria del modelo no es fija — depende de lo difícil que hayas hecho la tarea. Un buen harness baja el nivel de inteligencia necesaria. Por eso, un modelo más barato puede entregar lo que, en un codebase deficiente, solo entregaría un modelo costoso.

Y el reverso, que Pocock llama por su nombre: "Dejas tu modelo limitado desde el primer día → necesitas un modelo inteligente." Hamstringing (literalmente «cortar el tendón») es darle a la IA un terreno confuso, sin guard rails ni documentación. Entonces tropieza con todo, y tú estás gracias a pagar por el modelo más avanzado solo para que no se pierda. Conexión con el módulo 1.1: como el harness representa el 50% del resultado, es él —no el modelo— quien define el límite de costo. El error común es la carrera por el «modelo del momento»: invertir en un motor caro para compensar un chasis que tú mismo podrías haber arreglado por mucho menos.

harness BUENO modular + guard rails + documentación Basta con un modelo BARATO el mismo trabajo, una fracción del costo 💸↓ harness MALO (hamstring) laberinto sin protección necesita el modelo CARO solo él no se pierde 💸↑
Ilustración: una moneda-token brillante dividida: de un lado, un robot simple y barato que trabaja tranquilo; del otro, un robot caro que suda en un laberinto

Recuperación rápida: ¿qué significa «limitar las capacidades de tu modelo»?

En 1 frase: codebase fácil = basta con un modelo barato; codebase difícil (hamstring) = tienes que pagar por el modelo caro.

4

🕳️ El costo real de un codebase deficiente

🧠 Imagínalo así: un grifo que gotea. Cada gota cuesta poco: ni lo notas. Pero al final del mes, la factura del agua asusta. Un codebase deficiente gotea tokens en cada cambio, todo el año.

El costo de un codebase deficiente no es un cobro único; es un impuesto recurrente sobre cada tarea futura. La IA vuelve a leer archivos que no necesitaba leer, intenta enfoques que un guard rail habría bloqueado y genera código que rompe otras partes (porque no podía saber que existían). Cada una de esas idas y vueltas es token costo. Multiplícalo por todos los cambios del proyecto y el «impuesto» se convierte en el rubro más grande de tu factura.

Hay un efecto todavía más engañoso: un codebase malo también oculta bugs, y los bugs ocultos cuestan tokens (y dinero) cada vez que la IA tropieza con ellos. Pocock observa que muchos bugs profundos no requieren un modelo genial para encontrarlos: "podrías descubrir estos errores con modelos más baratos si buscaras en los lugares correctos y dieras el prompt/harness adecuado." Es decir: lo que parecía «necesitar una IA cara» era, una vez más, un problema de harness. El error común es normalizar el grifo que gotea («es así, la IA es cara») en vez de cerrarlo.

tokens cambios a lo largo del tiempo → codebase malo 💸💸 codebase bueno ✓
Ilustración: un grifo que gotea monedas-token, con una cuenta creciente al fondo que representa el costo recurrente de un codebase deficiente

En 1 frase: un codebase malo no te cobra una sola vez: te cobra un impuesto en tokens con cada cambio futuro.

Para profundizar (opcional): «si te roban la bici, compra un candado»

Pocock usa esta analogía: si un bug (o un costo) se repite, no basta con corregir el caso; instala el "candado" que impide que vuelva a ocurrir. En nuestro tema: si un área del código hace que la IA consuma muchos tokens una y otra vez, no basta con pagar la cuenta; refactoriza esa área y agrega guard rails. Es la diferencia entre tratar el síntoma y tratar la causa raíz. (Verás cómo esto se convierte en un sistema en la Trilha 4, "Sistemas auto-mejorables".)

5

🔧 Refactorizar para reducir costos

🧠 Imagínalo así: afilar el hacha antes de cortar el árbol. Detenerse 10 minutos para afilarla parece un retraso, pero cada corte después es el doble de rápido. Refactorizar es afilar el hacha de tu codebase.

La buena noticia: no estás atado al codebase que tienes. Refactorizar es reorganizar el código por dentro — dividir el archivo gigante en módulos, poner nombres claros, agregar tipos y pruebas — sin cambiar lo que hace el sistema por fuera. Y aquí está el giro: la propia IA refactoriza por ti. Gastas tokens una vez para poner todo en orden y, con cada cambio futuro, pagas mucho menos. Es una inversión, no un gasto.

Cómo Pocock lo plantea en DX × AX: mejorar el codebase es una de las palancas "frecuentemente olvidadas" para mejorar la experiencia del agente y, con ella, el costo. Refactorizar agrega guard rails (tema 2), hace que el terreno sea navegable (tema 1) y cierra la llave que gotea (tema 4), todo de una vez. El error común es posponer la refactorización «para cuando haya tiempo»: como el costo es recurrente, cada día que la pospones son más tokens desperdiciados. Mira en el cuadro de copia de abajo cómo cambia solo el manera de pedir la refactorización — del prompt vago al prompt con guard rails:

prompt-refatorar.txt — antes × después
❌ ANTES (prompt vago → muitos tokens, resultado incerto)
"arruma esse arquivo aí, tá uma bagunça"

✅ DEPOIS (prompt com guard rails → poucos tokens, resultado seguro)
Refatore o arquivo src/pagamento.js, SEM mudar o comportamento.
Objetivo: baratear mudanças futuras.
Regras (guard rails):
1. Quebre em módulos pequenos por responsabilidade (1 arquivo = 1 tema).
2. Adicione TIPOS nas funções públicas (assinaturas explícitas).
3. NÃO toque na lógica de negócio — só na organização.
4. Rode os testes existentes ao final; todos têm que continuar passando.
5. Se faltar teste pra um caminho crítico, escreva o teste antes de mover o código.
Entregue: lista do que mudou + confirmação de testes verdes.

En 1 frase: refactorizar es afilar el hacha: gastas tokens una vez para ahorrar tokens en cada cambio siguiente.

6

📊 Métrica: tokens por cambio

🧠 Imagínalo así: el consumo de tu auto: litros por cada 100 km. No miras solo el tanque lleno: miras cuánto consume por viaje. Con la IA, la métrica equivalente es tokens por cambio.

Lo que no se mide no se mejora. La métrica adecuada no es "cuánto gasté este mes" (eso oculta la causa), sino tokens por cambio: cuántos tokens consume una tarea típica, desde el pedido hasta la entrega. Si esta cifra es alta, es señal de hamstringing: el codebase obliga al agente a leer y probar demasiado. Si baja después de una refactorización, acabas de demostrar con números que el harness mejoró. Es el resumen práctico de todo el módulo: la arquitectura (T1) y los guard rails (T2) reducen la cifra; un codebase deficiente (T4) la aumenta; refactorizar (T5) la reduce; y una cifra baja permite usar el modelo económico (T3). Copia la lista de verificación de abajo y úsala cada vez que una tarea consuma más de lo debido:

diagnostico-tokens-por-mudanca.txt
Tarefa gastou tokens demais? Diagnostique o HARNESS, não o modelo:
[ ] ARQUITETURA — a IA teve que ler arquivos gigantes/irrelevantes?
[ ] GUARD RAILS — faltou type/teste/lint pra barrar o erro na hora?
[ ] DOCS — faltou um README/comentário apontando o lugar certo?
[ ] REPETIÇÃO — a IA tentou, errou e retentou o mesmo erro várias vezes?
Ação: refatore a área cara + adicione 1 guard rail.
Depois, reduza o modelo (ex.: do caro pro barato) e confirme que ainda passa.
Meta: o número de "tokens por mudança" cair na próxima vez.
1 · medir 2 · refactorizar 3 · + barrera de protección 4 · reducir el modelo …y vuelve a medir: menos tokens por cambio = un harness mejor

Recuperación rápida: ¿qué métrica muestra MEJOR si tu harness se volvió más barato?

En 1 frase: mide los tokens por cambio — es el «litros por cada 100 km» de tu harness y lo que realmente reduces.

🧾 Resumen del módulo

✓
Token = la moneda de la IA — pagas por cada fragmento de texto que entra y que sale.
✓
Codebase fácil = modelo barato — la arquitectura y los guard rails reducen la inteligencia necesaria.
✓
Hamstring = cuenta cara — una base de código confusa obliga a usar el modelo más avanzado y quema tokens en intentos fallidos.
✓
Refactoriza y mide — afila el hacha y sigue los «tokens por cambio».

Próximo módulo:

1.6 — La ventana de contexto es escasa: por qué cada skill «cobra» espacio en el contexto y cómo mantener la higiene.