← Blog

Cuánto cuesta de verdad un PR hecho por agentes de código

19 de octubre de 2026 · Héctor (blissmo) Campos

¿Cuánto cuesta que un equipo de agentes haga un PR? La respuesta corta es «unos cuantos dólares». La útil es otra: los tokens casi nunca son lo caro. Lo caro es el tiempo que el PR espera a una persona y el PR que se mezcla mal.

Opero la Software Factory de Ghosty, un equipo de agentes que planea, construye y revisa PRs sobre un repo. Aquí van dos pedidos reales, uno bueno y uno malo, y cómo medir esto en cualquier equipo de agentes.

Un pedido sano me costó 4.32 USD y casi todo el reloj fue espera humana

La fábrica guarda cada paso de cada pedido. Con --timing, la terminal desglosa dónde se fue el tiempo y el dinero. Éste es el pedido #13, sobre un repo de ejemplo:

ghosty factory runs show 13 --timing --workspace <tu-espacio>
# #13 · pr_review · vueltas 0 · CI rojo 0 · $4.32 USD
# reloj: 4.2 h = trabajando 71.8 min · esperando a una persona 3.0 h · lo demás (CI, colas) 1.3 min
# hora   paso             tiempo    en tools  model       usd    estado
# 17:07  @plan (hilo)     1.2 min   0.1 min   opus-5-5    $0.87  done
# 17:09  @check (crítico) 0.6 min   0.1 min   opus-5-5    $0.51  done
# 17:10  @build           68.8 min  66 min    sonnet-5-5  $1.82  done
# Comandos más lentos (≥ 60 s)
#   17:23 @build 10.3 min  Bash: until grep -q "TC_EXIT…

Tres cosas saltan a la vista:

El cuello de botella fui yo, no el modelo. Para PRs más rápidos, el primer arreglo es aprobar planes más rápido.

Separar el reloj en tres partes cambia la conversación

La regla que uso para cualquier equipo de agentes, sea mío o no, es partir el tiempo de cada pedido en tres cubetas:

  1. Trabajando: algún agente tenía un turno corriendo.
  2. Esperando a una persona: un plan o un PR por aprobar.
  3. Lo demás: CI, colas y despliegue.

Si sólo mides el tiempo total, la tentación es pagar un modelo más caro. Con las tres cubetas ves que un modelo más caro ataca, como mucho, los 71.8 minutos de trabajo, y que las 3.0 horas de espera siguen ahí. El costo, igual: anótalo por rol y por modelo, no sólo el total.

Un pedido malo costó 8.19 USD y rompió las reservas de Deník 18 horas

El 16 de octubre la fábrica atendió un PR de Dependabot que subía React Router de la 7 a la 8 en Deník, la agenda para negocios que también construyo. Tardó 7.0 horas, costó 8.19 USD y tuvo 1 vuelta de corrección.

El plan aprobado tenía un criterio claro: «la reserva pública de un servicio se completa de punta a punta en la preview del PR». La preview nunca arrancó: faltaban variables de entorno. El revisor probó la reserva en su caja, contra http://localhost:3000, y aprobó. En la descripción del PR quedó escrito «probado en la caja, NO en la preview». La tarjeta se puso verde, se mezcló y se desplegó solo.

En producción, todo POST de la app respondía 400. React Router 8 cambió su chequeo anti-CSRF: antes comparaba sólo el host del Origin, ahora compara el origen completo con protocolo. Detrás del proxy que termina TLS, la petición llegaba al servidor como http:// y el navegador mandaba https://. En localhost no hay proxy, así que el bug no aparecía. Las reservas estuvieron rotas unas 18 horas y lo detecté yo, no un monitor.

Los 8.19 USD son lo de menos. Lo caro fueron 18 horas sin poder recibir citas.

Cinco barandales que valen para cualquier equipo de agentes

Del postmortem salieron reglas que sirven con cualquier arnés:

  1. La evidencia sólo vale si sale del entorno que el criterio nombra. Si el plan dice «en la preview», el revisor no puede aprobar sin preview lista. Hoy la fábrica rechaza un veredicto aprobatorio sin preview cuando el plan la exige.
  2. «Probado en local» es un riesgo, no una prueba, cuando el cambio toca red, cookies, CSRF, proxy o TLS.
  3. El smoke debe hacer al menos un POST. El mío revisó 33 rutas por GET y reportó cero diferencias. Lo único roto eran acciones.
  4. En una versión mayor, el revisor lista cada cambio que rompe compatibilidad y cómo lo descartó. Leer la guía de migración hasta que compile no basta.
  5. Prueba el flujo que cobra después de cada deploy. Un smoke en producción habría avisado en minutos, no en 18 horas.

Comparar modelos con tus propios pedidos cuesta menos de 2 USD

Los benchmarks públicos no dicen cómo le va a un modelo en tu repo. Un eval de la fábrica vuelve a correr un rol de un pedido ya mezclado con otro modelo, y un juez lo califica contra lo que se hizo de verdad.

En un pedido chico, el eval de planeación costó 0.49 USD y el eval de revisión costó 1.28 USD. El juez puede costar tanto o más: con un modelo de gama alta, calificar esa revisión costó 1.87 USD porque lee los dos diffs completos. Usa un juez barato y siempre el mismo, para comparar notas en el tiempo. Nunca dejes que un rol se califique a sí mismo: un revisor evaluado se puso 5 de 5.

El modelo fuerte planea y el barato construye

En la fábrica, Arqui planea y revisa con un modelo fuerte, y Worker construye con uno más barato. Construir es la parte con más turnos y más tokens.

Si usas DeepSeek V4 Flash para construir, dos detalles bajan la cuenta. Su precio fuera de hora pico es de 0.15 USD por millón de tokens de entrada y 0.60 USD de salida. Y la entrada que cae en su caché cuesta 0.003 USD por millón contra 0.15 sin caché, así que conviene un inicio de prompt estable: la hora, los ids y lo que cambia van al final.

Todavía no tengo un promedio honesto por PR mezclado

Todavía no tengo un costo promedio por PR mezclado que pueda defender, sólo pedidos sueltos como éstos. Lo que sí hice fue que la fábrica mida cada pedido:

ghosty factory runs stats --since 30d --workspace <tu-espacio>

Reporta costo por PR mezclado, mediana de minutos hasta el PR y hasta el merge, y vueltas promedio de revisión a construcción. Si armas tu propio equipo de agentes, guarda esas cuatro cifras desde el primer día.

Para quien quiere la fábrica montada: los planes de lanzamiento son F1 a $1,897 MXN al mes (3 lugares de trabajo y 3 de CI), F2 a $3,794 (5 y 3) y F3 a $5,691 (8 y 5). El montaje a la medida de tu repo cuesta $18,000 MXN en un solo pago.

¿Tu equipo tiene PRs esperando días a que alguien los haga o los revise? Mide primero dónde se va el tiempo y luego decide qué automatizar. Si quieres verlo corriendo sobre tu repo, revisa los planes en https://www.ghosty.studio/factory.

Fuentes