Informe técnico · uso interno

Plan para que QM conteste en segundos, no en minutos

Medí hoy, con números, dónde se va el tiempo de cada respuesta. Y armé el plan para bajarlo.

4 de noviembre de 2026 · medido desde tu servidor y desde tu PC

Qué vas a encontrar

  1. El veredicto corto
  2. Los números que medí
  3. La cuenta del tiempo
  4. Las 10 palancas
  5. El plan en 3 fases
  6. El servidor está en Alemania
  7. Tu propio motor
  8. Errores que cuestan caro
  9. Bibliografía
  10. Próximo paso

1El veredicto corto

Tu QM no es lento porque el modelo sea lento. Es lento porque va y vuelve muchas veces al mostrador, y porque en cada vuelta lleva una mochila enorme de papeles.

La analogía del mostrador. Imaginá un empleado que, para responder una pregunta simple, camina hasta el archivo, vuelve, pregunta al jefe, vuelve a caminar, y así seis veces. Cada caminata son dos segundos. No importa que el empleado piense rápido: pierde el día caminando. Eso es tu agente hoy.

Tres datos que resumen todo:

Lo que pasa hoyCuánto cuesta
Una pregunta directa al Gestor Obra (sin pasar por el agente)0,4 s
La misma pregunta, pero el agente la resuelve solo20 a 62 s
El modelo escribiendo (su velocidad real)45 a 138 palabras-por-segundo

El modelo no es el problema. El problema son los pasos y la mochila.

2Los números que medí

Todo lo que sigue lo medí el 4 de noviembre de 2026, con pedidos reales, no con folletos. MEDIDO

2.1. La red: de tu PC al servidor

TramoTiempoQué significa
Tu PC abre la conexión con el portal248 msEs el tiempo de ida y vuelta hasta Alemania
Tu PC recibe el primer pedazo de la página766 msCasi un segundo mirando la pantalla en blanco
El servidor habla con el proveedor del modelo90 a 350 msSaludo cifrado + primer byte

Hallazgo aparte, importante. En tu PC, cuando un programa intenta conectarse a OpenRouter sin forzar IPv4, la conexión tardó 3,98 segundos. Forzando IPv4 tardó 0,22 s. Es decir: hay conexiones que pierden casi 4 segundos antes de empezar a hablar.

Eso no es el modelo. Es tu red eligiendo un camino (IPv6) que no responde y esperando. Se arregla con una línea de configuración y es de las cosas más baratas de todo este plan.

2.2. El modelo: cuánto tarda en abrir la boca

El tiempo hasta la primera palabra se llama TTFT (time to first token). Es lo que vos sentís como "no contesta".

SituaciónTarda en empezar
Modelo chico (Qwen 3.7 Flash), pregunta corta0,8 a 1,1 s
Modelo chico, con 30.000 tokens de conversación encima2,3 s
Mismo caso, sin caché de contexto3,1 s
Mismo caso, con caché de contexto (31.104 tokens leídos de la caché)2,3 s
DeepSeek v4 Flash, pregunta corta2,0 a 2,3 s
Modelos grandes (Qwen Plus, DeepSeek Pro, Kimi K2.5)1,7 a 4,8 s
Con el "pensar" activado+1 a +3 s

Dato útil: el caché de contexto funciona y ahorra plata y tiempo. En la prueba, la segunda llamada con el mismo texto leyó 31.104 tokens de la caché y arrancó 0,7 segundos antes. Es gratis: solo hay que ordenar el pedido para que el principio no cambie nunca.

2.3. La máquina donde corro yo

Trabajo chicoTiempo
Arrancar Python (sin nada)27 a 32 ms
Arrancar Python con las librerías que uso104 a 122 ms
Una consulta a la base de obras (6 MB)42 a 50 ms
Un pedido HTTP al portal desde el propio servidor180 a 200 ms

No parece mucho, pero se suma. Un turno con 10 comandos son 1 o 2 segundos solo de "arrancar programas". Y el contenedor tiene 2 núcleos y 2 GB de memoria: si dos cosas corren a la vez, se pelean.

3La cuenta del tiempo

Toda respuesta de un agente se arma con esta suma:

T = pasos × (red + leer contexto + escribir + herramientas) + red tuya

Pongamos números reales de un turno típico de 6 pasos, con 30.000 tokens de contexto:

Etapa (por paso)TiempoPor qué
Red al proveedor0,15 sSaludo + envío
Leer el contexto (prefill)2,3 sRelee la mochila entera
Escribir la respuesta1,0 s~80 tokens a 80 por segundo
Herramientas0,3 sArrancar Python + consultar
Total por paso3,7 s
Turno de 6 pasos22 sY en voz se midió 62 s
Mirá el reparto. De cada 3,7 segundos de un paso, 2,3 son releer papeles viejos y solo 1 es trabajo nuevo. Es como un cocinero que, antes de cada plato, vuelve a leer todo el recetario desde la primera página.

4Las 10 palancas

Están ordenadas por lo que ganás, de más a menos. Cada una dice qué se toca y cuánto mejora. RECOMENDACIÓN

1

Menos pasos: la palanca más grande

Si la respuesta se puede sacar con un comando, no se le pregunta al modelo. Se llama ruta directa y ya la tenés probada: el Gestor Obra contesta en 0,4 s cuando va derecho, contra 62 s cuando el agente lo busca solo.

Analogía: no mandes al gerente a buscar el dato. Ponele un teléfono directo al archivo.
Qué se tocaUn clasificador barato que decide: "esto va derecho" o "esto necesita pensar". Herramientas que hagan 5 cosas en una, no 5 herramientas de una cosa. Herramientas en paralelo, no en fila. Cuánto ganaDe 3 a 10 veces. Es la única palanca que sola te baja de 20 s a 3 s. EsfuerzoMedio. Hay que escribir el clasificador una vez.
2

Mochila liviana y con el principio fijo

Dos cosas distintas: achicar el contexto (menos papeles) y no mover el principio (para que la caché acierte).

Analogía: la caché es una fotocopia ya hecha. Si cambiás aunque sea la primera hoja, hay que volver a fotocopiar todo el cuaderno.
Qué se tocaInstrucciones del sistema y lista de herramientas primero y siempre iguales. Lo que cambia (tu pregunta, resultados) va al final. Compactar a 30-40 mil tokens, no a 100 mil. Caché de contexto activada en serio. Cuánto gana1,5 a 2 s por paso, y hasta 90% menos plata en los tokens repetidos. EsfuerzoBajo. Es ordenar, no programar.
3

El modelo justo para cada tarea

Medí que el modelo chico arranca en 1 s y el grande en 2 a 5 s. Además, "pensar" suma 1 a 3 s. El 80% de los pedidos no necesita pensar.

Analogía: para llevar un sobre no mandás el camión de mudanza. Mandás la moto.
Qué se tocaTu escalera de modelos ya sirve. Falta que la primera palabra la conteste el chico sin razonamiento, y que el grande entre solo para decisiones y código. Cuánto gana1 a 3 s por paso, y menos costo. EsfuerzoBajo: es configuración.
4

Contestar por partes, no de un saque

Lo que la persona siente no es el final: es el primer pedazo. Si el texto empieza a salir a los 0,8 s, la respuesta se siente rápida aunque el total sea 6 s.

Analogía: el mozo te trae el pan mientras esperás el plato. No hace la comida más rápida, pero la espera se siente corta.
Qué se tocaStreaming en todo (chat y voz). En voz: decir la primera frase útil en cuanto existe, sin esperar el resto. Cuánto ganaLa mitad de la espera sentida, gratis. EsfuerzoBajo.
5

La red: 250 ms por salto

Tu servidor está en Núremberg (Alemania). Cada ida y vuelta desde Corrientes son 250 ms, y la página tarda 766 ms en empezar a llegar.

Analogía: el depósito está en el otro continente. Podés tener el mejor mostrador, pero cada reposición tarda en llegar.
Qué se tocaTres opciones, de menor a mayor esfuerzo: (a) arreglar IPv4 primero, (b) Cloudflare Argo para rutas más cortas, (c) mudar el servidor a San Pablo o Santiago. Cuánto ganaDe 250 ms a 45 ms por salto. En una página con 8 pedidos, medio segundo; en voz, se nota más. Esfuerzo(a) 10 minutos. (b) 20 minutos + costo del servicio. (c) Un fin de semana.
6

La máquina: no arrancar de cero cada vez

Arrancar Python cuesta 30 a 120 ms, y el contenedor tiene solo 2 núcleos. Diez comandos son 1 o 2 segundos perdidos en calentar motores.

Analogía: es la diferencia entre prender la cocina cada vez que entra un cliente y dejarla encendida.
Qué se tocaUn servicio que quede despierto atendiendo consultas comunes. Subir el contenedor a 4 núcleos y 4 GB. No matar procesos entre pedidos. Cuánto gana0,5 a 2 s por turno; más importante, evita que se trabe cuando hay dos cosas a la vez. EsfuerzoBajo-medio.
7

Respuestas ya cocinadas

Muchas preguntas se repiten: "cómo va la caja de Casa Gerardo", "qué stock hay". Si la respuesta salió hace 5 minutos, no hay razón para volver a pensarla.

Analogía: el fiambre ya está cortado. Si piden lo mismo, se sirve del plato, no se va al freezer.
Qué se tocaCaché por pregunta exacta (barata) y por parecido (semántica), con vencimiento corto. Digestos precalculados de las consultas de todos los días. Cuánto ganaDe 20 s a 0,2 s en lo repetido. Suele ser un tercio de las consultas. EsfuerzoMedio.
8

Colas separadas

Un informe de 200 renglones no puede frenar un "hola, cómo va". Hoy comparten la misma fila.

Analogía: la caja rápida del supermercado: el que lleva dos cosas no espera detrás del que llena tres carritos.
Qué se tocaDos carriles: interactivo (chat, voz) y trabajo pesado (informes, planillas). El pesado avisa "listo" o entrega por correo. Cuánto ganaQue lo lento nunca te tape lo rápido. EsfuerzoMedio.
9

Tu propio motor de modelos, si el volumen lo paga

Se puede poner el motor adentro de tu servidor, con un modelo propio. Ahí no hay llamadas a nadie y el tiempo se vuelve previsible. Pero cuesta plata fija.

Analogía: comprar el taxi en vez de pedirlo. Conviene recién cuando viajás todo el día.
Qué se tocavLLM o SGLang en una GPU alquilada (RunPod: L40S a USD 1,09 la hora, RTX 4090 a 0,89, A40 a 0,59). Cuánto ganaCon caché de prefijo y lotes, la respuesta corta se vuelve de 0,3 a 0,8 s. Y el costo se vuelve fijo. EsfuerzoAlto. Recién en la fase 3.
10

Medir siempre

Sin números no hay mejora. Cada respuesta tiene que dejar anotado: cuánto esperó la red, cuánto tardó el modelo, cuántas herramientas usó y cuánto salió.

Analogía: el tablero del auto. Sin velocímetro manejás a ciegas.
Qué se tocaUn registro por etapa y un tablero con promedio y "peor caso" (p50 y p95). Cuánto ganaNo hace más rápida la respuesta: hace que sepas cuál de las 9 palancas está floja. EsfuerzoBajo y para siempre.

5El plan en 3 fases

Fase 0 · Medir (1 día)

Antes de tocar nada, dejar el tablero. Sin esto, cualquier cambio es a ciegas.

Fase 1 · Carril rápido y mochila liviana (semana 1)

Meta medible: de 20 s a 6-8 s en el promedio, y la primera palabra en menos de 1,5 s.

Fase 2 · Red y máquina (semanas 2 y 3)

Meta medible: página de 766 ms a menos de 400 ms; un paso de herramienta de 150 ms a menos de 60 ms.

Fase 3 · Decidir el motor propio (mes 2)

Meta medible: costo por respuesta conocido al centavo y tiempo estable entre días.

6El servidor está en Alemania

Tu servidor es de Hetzner y está en Núremberg. Hetzner tiene centros en Alemania (Falkenstein y Núremberg), Finlandia (Helsinki), Estados Unidos (Ashburn y Hillsboro) y Singapur. No tiene nada en Sudamérica. VERIFICADO

OpciónQué se haceCostoRiesgo
A. Arreglar lo baratoIPv4 primero, keep-alive, caché de páginas estáticas en CloudflareCasi ceroNinguno
B. ArgoCloudflare elige la ruta más corta entre su borde y AlemaniaServicio pago de Cloudflare, por usoBajo. Se prende y se apaga
C. Mudar a SudaméricaServidor en San Pablo o Santiago (AWS, Vultr, Oracle, Magalu)Un servidor másAlto: hay que mover DataObra y 35 contenedores

Mi consejo: hacé A y B ahora. La C queda para cuando el chat sea el corazón del negocio, porque mudar el servidor donde vive el Gestor Obra es un trabajo de fin de semana con riesgo de romper algo que hoy funciona. Y ojo: si mudás solo la parte del chat y dejás la base en Alemania, no ganás nada: el pedido igual cruza el océano.

7Tu propio motor: cuándo y cómo

Un motor propio es un programa que atiende a los modelos en tu propia máquina. Los dos que usa todo el mundo son vLLM y SGLang. Esto es lo que hacen bien, explicado simple:

TécnicaQué haceAnalogía
PagedAttentionGuarda la memoria de la conversación en bloques ordenados, sin desperdiciarEstacionamiento con lugares pintados, en vez de reservar una manzana por auto
Lotes continuosAtiende a varios usuarios a la vez sin hacer esperar a nadieEl colectivo que sube y baja gente en cada parada, no espera a llenarse
Caché de prefijo (RadixAttention)Reusa la parte repetida del pedido entre llamadasLa fotocopia ya hecha del cuaderno
Prefill por partesNo deja que un pedido largo congele a los cortosNo dejás que el que pide 200 sánguches frene la caja de un café
Decodificación especulativaUn modelo chico escribe un borrador y el grande lo corrige de una lecturaEl cadete redacta, el jefe firma
Cuantización FP8El modelo ocupa la mitad de memoria casi sin perder calidadGuardar la ropa en bolsas que ocupan la mitad, sin arrugarla
Separar arranque de generaciónDos máquinas: una lee, otra escribeUno atiende el mostrador y otro hace los trámites

Los números para decidir

Precios de GPU alquilada por hora, verificados en RunPod el 4 de noviembre de 2026 VERIFICADO:

GPUPor horaPor mes, 24/7Para qué alcanza
A40 / A6000 (48 GB)USD 0,59USD 425Modelos de 8 a 30 mil millones
L40S (48 GB)USD 1,09USD 785Lo mismo, más rápido y con FP8
RTX 4090 (24 GB)USD 0,89USD 641Modelos de hasta 14 mil millones
H100 (80 GB)USD 2,89USD 2.081Modelos grandes de verdad

La cuenta honesta: hoy tu gasto de API va de USD 3 a 11 por día, o sea entre USD 90 y 330 por mes. Una GPU de USD 425 al mes sale más cara que lo que gastás, salvo que: (1) el volumen crezca mucho, (2) vendas el paquete y el motor sea parte del producto, o (3) el tiempo de respuesta pase a ser una necesidad del negocio.

Mientras tanto, la plata rinde mucho más arreglando pasos, contexto y red.

8Errores que cuestan caro

  1. Comprar GPU antes de medir. Es cambiar el auto por un camión sin saber cuánto pesa la carga.
  2. Meterle más contexto "por las dudas". Cada 10.000 tokens de más son casi un segundo de espera en cada paso.
  3. Cambiar el principio del pedido. Rompe la caché y pagás todo de nuevo, más lento.
  4. Dejar el razonamiento prendido siempre. Suma 1 a 3 segundos por respuesta sin que se note la diferencia en preguntas simples.
  5. Sumar herramientas al agente. Cada herramienta extra es un cajón más que el modelo tiene que abrir para decidir. Menos y más gordas es más rápido.
  6. Mudar el servidor y dejar la base donde estaba. El pedido sigue cruzando el océano.
  7. Optimizar el modelo cuando el problema son los pasos. Pasar de 3,7 s a 3,0 s por paso no arregla un turno de seis pasos.

9Bibliografía y fuentes

Todo lo que está arriba de una recomendación sale de acá. Las mediciones son propias, hechas hoy.

Papers (los cimientos)

Kwon, W., Li, Z., Zhuang, S. y otros. Efficient Memory Management for Large Language Model Serving with PagedAttention. arXiv:2309.06180, 2023. — El paper de vLLM. arxiv.org/abs/2309.06180

Leviathan, Y., Kalman, M., Matias, Y. Fast Inference from Transformers via Speculative Decoding. arXiv:2211.17192, 2022. — El borrador que corrige el jefe. arxiv.org/abs/2211.17192

Zhong, Y., Liu, S., Chen, J. y otros. DistServe: Disaggregating Prefill and Decoding for Goodput-optimized LLM Serving. arXiv:2401.09670, 2024. — Separar arranque de generación. arxiv.org/abs/2401.09670

Agrawal, A., Kedia, N., Panwar, A. y otros. Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve. arXiv:2403.02310, 2024. — Prefill por partes. arxiv.org/abs/2403.02310

Zheng, L. y otros. SGLang: Efficient Execution of Structured Language Model Programs. arXiv:2312.07104, 2023. — RadixAttention. arxiv.org/abs/2312.07104

Pope, R., Douglas, S., Chowdhery, A. y otros. Efficiently Scaling Transformer Inference. arXiv:2211.05102, 2022. — Los compromisos de latencia y partición. arxiv.org/abs/2211.05102

Documentación oficial

vLLM. Optimization and Tuning (caché de prefijo, lotes, cuantización, especulación). docs.vllm.ai/en/latest/performance/optimization.html

vLLM. Automatic Prefix Caching. docs.vllm.ai/en/latest/features/automatic_prefix_caching/

vLLM. Speculative Decoding. docs.vllm.ai/en/latest/features/speculative_decoding/

LMSYS. Fast and Expressive LLM Inference with RadixAttention and SGLang. lmsys.org/blog/2024-01-17-sglang/

Anthropic. Prompt caching (escritura +25%, lecturas baratas, vida de 5 minutos, precalentado del caché). docs.anthropic.com/en/docs/build-with-claude/prompt-caching

DeepSeek. Context Caching (reglas de acierto: A+B y después A+C no acierta; A+B y después A+B+C sí). api-docs.deepseek.com/guides/kv_cache

Cloudflare. Argo Smart Routing. developers.cloudflare.com/argo-smart-routing/

Cloudflare. Workers Smart Placement (correr el programa cerca del servidor, no del usuario). developers.cloudflare.com/workers/configuration/smart-placement/

Hetzner. Cloud locations: Falkenstein, Núremberg, Helsinki, Ashburn, Hillsboro, Singapur. hetzner.com/cloud

RunPod. GPU Cloud Pricing (precios por hora citados arriba). runpod.io/pricing

OpenRouter. API y catálogo de modelos (de acá salieron los modelos y precios de la prueba). openrouter.ai/docs

Mediciones propias (4 de noviembre de 2026)

Latencia desde tu PC al portal, velocidad de arranque de Python, tiempos al primer token por tamaño de contexto, prueba de caché de contexto (31.104 tokens leídos), velocidad de escritura por modelo y comparación entre modelos chicos y grandes. Todo con pedidos reales, no estimaciones.

10Próximo paso

Un solo paso: arrancar la Fase 1 con la palanca 1 (menos pasos) y la palanca 2 (mochila liviana), porque son las dos que más bajan el tiempo y no cuestan plata.

Si querés que lo haga yo, decime "dale con la fase 1" y arranco midiendo el promedio actual para tener el punto de partida, antes de tocar nada.

Pedido para pegar en Claude Code (Fase 1 · carril rápido y mochila liviana)

Objetivo: bajar el tiempo medio de respuesta de 20 s a 6-8 s sin cambiar de proveedor.

1) Antes de tocar: medir 20 preguntas reales y anotar por cada una:
   - tiempo hasta el primer token
   - tiempo total
   - cantidad de pasos del agente
   - tokens de entrada y cuántos vienen de caché
   - costo estimado
   Guardar el resultado en un archivo de referencia.

2) Clasificador de intención con el modelo más chico disponible, con el
   razonamiento APAGADO. Debe decidir entre:
   - RUTA DIRECTA: se responde con un comando o consulta puntual
   - RUTA AGENTE: hace falta pensar, comparar o crear algo
   Si no está seguro, que elija RUTA AGENTE.

3) Ruta directa para las 10 preguntas más frecuentes. Sin pasar por el agente.

4) Contexto: máximo 40.000 tokens. Compactar automáticamente y descartar
   resultados viejos de herramientas antes que la conversación.

5) Orden del pedido, siempre igual:
   instrucciones del sistema -> definición de herramientas -> historial -> pregunta nueva.
   El principio NO cambia nunca entre llamadas, así el caché de contexto acierta.

6) Streaming en el chat: mostrar el texto a medida que llega.

7) Al terminar, volver a medir las mismas 20 preguntas y comparar contra el punto de partida.
   Entregar la tabla comparativa.

Recordatorio: las mediciones son de hoy y en tu infraestructura. Si cambia el proveedor del modelo o el servidor, hay que volver a medir antes de sacar conclusiones.

Informe armado el 4 de noviembre de 2026 · QM