Saltar al contenido principal

14 · Agentes y AI Engineering

Contexto, routing y costo

Context engineering, compactación, routing de modelos por rol, presupuestos, y por qué los tokens medidos valen más que los dólares estimados.

11 minCaso de estudio: docket (se abre en una ventana nueva)

En software tradicional, ejecutar una función más cuesta casi nada. En un sistema con , cada decisión del cuesta , tiempo y dinero, y el costo depende del diseño: cuánto contexto envías, qué modelo responde y cuántas vueltas permites. Además, la es finita, y llenarla degrada la atención del modelo antes de que llegue el error.

Esta lección trata el contexto como un , el modelo como una elección por rol, y el costo como un número cuya procedencia importa tanto como su valor. Los fundamentos de tokens y ventana están en El LLM como componente de software.

Por qué el costo de un agente crece rápido

costo de una llamada ≈ tokens_entrada × precio_entrada
                     + tokens_salida  × precio_salida
                     − descuento por tokens cacheados

costo de un turno    ≈ Σ llamadas del loop
                       (el historial se reenvía en cada una)
costo de una tarea   ≈ Σ turnos de todos los agentes + reintentos

La segunda línea es la que sorprende. Un loop de 20 iteraciones no cuesta 20 llamadas iguales: cada iteración reenvía todo lo acumulado (, archivos leídos, salidas de comandos). Sin , el costo de entrada crece de forma aproximadamente cuadrática con las iteraciones.

Context engineering

Tres fallas típicas:

  • Overflow: el pedido excede la ventana y el endpoint lo rechaza; el trabajo del turno se pierde si nadie lo previó.
  • Salidas gigantes: un cat de un log enorme llena el contexto en una sola llamada.
  • Compactación que rompe invariantes: resumir separando un tool call de su resultado deja una conversación que el endpoint rechaza.

Estimado frente a medido

Hay dos maneras de saber cuántos tokens tiene algo, y conviene no mezclarlas:

Estimado Medido
Qué es una heurística (bytes ÷ 4) lo que el endpoint reporta en usage
Cuándo existe antes de llamar después de llamar
Para qué sirve decidir qué cabe presupuestos y contabilidad
Precisión varía con idioma y tokenizer exacta para ese endpoint

Una estimación sirve para decidir con margen. Informarla como si fuera medición engaña a quien toma decisiones con ese número.

Tokens medidos, dólares estimados

Aun con tokens medidos, el costo real depende de cosas que el sistema a menudo no sabe: el precio vigente, descuentos por caché, planes negociados, la comisión de un gateway, si el gateway sustituyó el modelo, o tokens de razonamiento que no se reportan igual en todos lados. Por eso: los tokens se miden; los dólares se estiman.

Esa última consecuencia es la lección general: un control de costos es tan bueno como su fuente de verdad. En producción, esa fuente es la facturación del proveedor o del gateway, y el sistema interno debería reconciliarse con ella.

Presupuestos como condiciones de parada

Un runaway loop itera sin avanzar, y cada vuelta cuesta más que la anterior. La defensa son topes duros en varias dimensiones, porque cada uno atrapa un bucle distinto:

Tope Atrapa Default en docket
Iteraciones idas y vueltas sin progreso 20
Tool calls ráfagas de herramientas 40
Denegaciones seguidas insistir en lo prohibido 3
Tiempo de reloj esperas y llamadas lentas 300 s
Tokens medidos contexto que crece sin límite 100 000 por turno
USD por pod gasto acumulado entre tareas opcional

Routing de modelos por rol

Para CTOs

  • Exige que cada número de costo diga si es medido o estimado, y reconcílialo con la factura real.
  • ¿"Reviewer barato" es buena idea? No lo decidas por intuición: mídelo con evals sobre el mismo conjunto de cambios.
  • Define topes por turno y por proyecto antes del primer despliegue, y prohíbe el gasto sin disparador explícito.

Para llevar

  • El historial se reenvía en cada iteración; sin compactación, el costo crece mucho más rápido que las vueltas.
  • Compacta por unidades atómicas y recorta salidas de herramientas; prueba con ventanas pequeñas.
  • Estima para decidir, mide para contabilizar, y nunca presentes una estimación como gasto.
  • Usa varios topes a la vez; cada uno atrapa un tipo distinto de runaway loop.
  • El routing por rol ahorra, pero su calidad se demuestra con , no con supuestos.

Comprueba lo aprendido

¿Por qué un loop de 20 iteraciones cuesta mucho más que 20 veces una llamada?

Porque cada iteración reenvía todo el historial acumulado, que crece en cada vuelta. Sin compactación, los tokens de entrada crecen aproximadamente de forma cuadrática.

¿Qué problema tendría mostrar `$0.00` cuando no hay medición de costo?

Afirma un hecho falso: que el trabajo no costó nada. "No medido" es información distinta de "cero", y confundirlas lleva a decisiones equivocadas.

En docket, ¿por qué un pod que usa un modelo fuera de la tabla de precios podría no alcanzar nunca su tope en USD?

Porque el tope se compara contra una estimación, y un modelo sin precio no aporta estimación: su gasto se omite del total. El control es tan bueno como su fuente de verdad sobre el costo.