Inicio / Artículos

Compresión de todas las llamadas a LLM en la pasarela LiteLLM con Headroom

Headroom, como medida de protección previa a las llamadas de LiteLLM, comprime cada llamada a un LLM: compresión reversible, diseño de funcionamiento en caso de fallo, implementación por clave y ahorro de tokens medido.

Editor: REACTAPP.TOP7 min de lectura1510 palabras

Fuentes: Compress Every LLM Call at the Gateway: Headroom on LiteLLM

Los equipos que ya utilizan modelos con LiteLLM pueden reducir los tokens de entrada de cada proveedor upstream sin afectar el código de los agentes ni de las aplicaciones. Headroom conecta el proxy como una barrera de protección antes de la llamada, comprime los resultados de las herramientas y los fragmentos RAG antes de realizar la llamada al proveedor, y aún permite que el modelo obtenga los originales completos a través de una herramienta de recuperación cuando sea necesario.

Headroom, mencionado anteriormente en esta serie, comprime los resultados de las herramientas, los bloques de registro y los fragmentos de recuperación antes de que el modelo los vea. La compresión en sí nunca fue el problema principal; lo difícil era integrarla en la ruta de la solicitud.

A partir de junio de 2026, esa dificultad disminuye para los usuarios de LiteLLM: Headroom se integra como una barrera de protección nativa en la pasarela. Con un simple cambio, se comprime cada llamada que pasa por ella.

Esa combinación elimina la última excusa. Los ahorros siempre existieron; lo complicado era la implementación. En la pasarela, basta con activar un control para dejar intactos a los agentes y a los clientes.

Por qué el gateway

La mayoría de los equipos de producción multi-modelo ya operan detrás de un gateway.

LiteLLM es una opción común: una puerta de entrada compatible con OpenAI que conecta a más de cien proveedores, con enrutamiento, claves, presupuestos y registro centralizados.

Eso hace que el gateway sea el lugar natural para la compresión. Cada solicitud ya pasa por allí, por lo que un único compresor cubre todos los agentes, clientes y proveedores.

Se configura una sola vez en lugar de tener que implementar herramientas en cada aplicación. Dado que LiteLLM funciona tanto con la interfaz de OpenAI /v1/chat/completions como con la de Anthropic /v1/messages, un compresor del gateway puede manejar aplicaciones que usan formatos de OpenAI, herramientas de Anthropic como Claude Code, servicios de recuperación de información y agentes personalizados al mismo tiempo.

La compresión deja de ser una herramienta adicional para convertirse en una función de la plataforma: el camino habitual para la infraestructura, es decir, hacia la capa compartida que todos ya utilizan.

Cómo funciona el sistema de protección

Headroom se integra como un mecanismo de protección antes de la llamada: dentro del ciclo de vida de LiteLLM, justo antes de que el contenido sea enviado hacia arriba en la cadena de procesamiento.

Flujo Sidecar:

Client (Claude Code, your app, any OpenAI/Anthropic client)
        |
        v
LiteLLM proxy  ── pre_call ──►  Headroom (sidecar): compress messages
        |                              |
        |   ◄── compressed messages ───┘
        v
LLM provider (OpenAI / Anthropic / Bedrock etc.)

Los clientes siguen comunicándose con LiteLLM de forma normal. Antes de la llamada, LiteLLM invoca a Headroom, reemplaza los mensajes por versiones comprimidas y luego los envía. Ni los clientes ni los proveedores se comunican directamente con Headroom; esa invisibilidad es precisamente su objetivo.

Hay dos propiedades de seguridad importantes.

Nada se pierde permanentemente

Se aplica la misma lógica de Comprimir–Almacenar en caché–Recuperar que se describió anteriormente con Headroom. Los originales permanecen en caché; LiteLLM ofrece una herramienta llamada retrieve_headroom. Si el modelo necesita el contexto completo, utiliza dicha herramienta. La compresión es reversible, no implica pérdida de información.

Modo de fallo abierto

Headroom es un componente adicional, no parte de la ruta crítica en línea. Si está inactivo o lento, las llamadas continúan sin compresión. Se mantienen los ahorros cuando todo funciona bien y el tráfico cuando no —el modo de fallo adecuado para una función orientada a reducir costos.

Activación

Se requiere LiteLLM v1.92.x o una versión posterior (los primeros usuarios utilizaron v1.92.0-dev.1).

La implementación es sencilla: se debe agregar headroom-compression y elegir el nivel de aplicación:

  • Por solicitud — activar en cada llamada individual
  • Por clave virtual — asociarla a una clave; todas las llamadas con esa clave se comprimirán
  • A nivel global — default_on: true para todo el tráfico del proxy

Dado que la protección se encuentra en la pasarela y maneja ambos formatos de solicitud, la misma implementación cubre clientes compatibles con OpenAI, clientes de Anthropic, agentes desarrollados localmente, servicios de recuperación de información y herramientas de programación de IDE.

Per-key es la solución rápida para administradores: se adjunta la barra de protección a una clave virtual, se distribuye dicha clave y todos los proveedores/clientes que la utilicen comprimirán automáticamente.

Ejemplo de código en Claude: establezca ANTHROPIC_BASE_URL con el proxy de LiteLLM y la clave de compresión; no es necesario instalar nada en el cliente ni realizar cambios en el código. La misma lógica se aplica a clientes de estilo OpenAI mediante OPENAI_BASE_URL. La herramienta nunca sabe que existe Headroom.

Confirme la aplicación mediante x-litellm-applied-guardrails o el panel de Guardrails en los registros de LiteLLM. La configuración oficial se encuentra en la guía de barreras de protección de Headroom de LiteLLM (ver referencias); siga esa guía para obtener la configuración exacta en una versión reciente, en lugar de fragmentos obsoletos.

Si no está utilizando el proxy de LiteLLM

La barrera de protección del gateway es la opción principal, pero no el único camino.

Llamada a litellm.completion() en Python — utilice la función de callback:

import litellm
from headroom.integrations.litellm_callback import HeadroomCallback

litellm.callbacks = [HeadroomCallback()]
# Every call is now compressed before it reaches the provider
response = litellm.completion(model="gpt-4o", messages=[...])
response = litellm.completion(model="bedrock/claude-sonnet", messages=[...])

O bien, mediante configuración:

# litellm_config.yaml
litellm_settings:
  callbacks: ["headroom.integrations.litellm_callback.HeadroomCallback"]

En el fondo utiliza async_pre_call_hook de LiteLLM, en la misma fase del ciclo de vida que la protección del gateway. El modo local comprime los datos dentro del proceso con compress() de Headroom; el modo en la nube reenvía los datos a Headroom Cloud para su recuperación y aprendizaje gestionados.

Su propio proxy ASGI o aplicación web — middleware:

from headroom.integrations.asgi import CompressionMiddleware

app.add_middleware(CompressionMiddleware)
# Intercepts /v1/messages, /v1/chat/completions, /v1/responses, /chat/completions

Las respuestas pueden incluir x-headroom-compressed: true y x-headroom-tokens-saved para realizar mediciones por solicitud.

Solo agente de codificación, sin aplicación en Python — proxy independiente:

pip install "headroom-ai[all]"
headroom proxy --port 8787

# then, for Claude Code:
ANTHROPIC_BASE_URL=http://localhost:8787 claude

Regla de decisión: proxy de LiteLLM → protección del gateway. LiteLLM integrado en código → callback. Aplicación web propia → middleware. Un solo agente de codificación → proxy independiente.

Lo que puede esperar, honestamente

El ahorro depende del contenido

Los documentos ahora indican un rango: aproximadamente un 60–95% menos de tokens en las salidas de herramientas con mucho JSON y en los resultados de búsqueda; cerca del 15–20% en el tráfico ya denso generado por agentes de codificación. Planifique según su carga de trabajo, no según el límite máximo. Deje una parte sin comprimir como grupo de control para que los paneles muestren los ahorros medidos.

La compresión añade algo de latencia

Headroom indica unos 15 ms para JSON pequeño y de 100–200 ms para archivos grandes generados por herramientas. La reducción de tokens suele acortar más el tiempo de generación que los costos de compresión; las cargas muy pequeñas podrían no compensar. Por eso son importantes los controles por solicitud y por clave.

La antigua tensión persiste

Una compresión agresiva dificulta la comprensión del contexto completo. retrieve_headroom funciona como válvula de control, pero necesita que el modelo lo detecte y lo solicite. Funciona bien en la práctica, aunque no es una garantía; preste atención a la calidad en tareas sensibles a los detalles.

Es algo nuevo

La integración de la pasarela se implementó a mediados de 2026 en una versión muy reciente de LiteLLM (inicialmente una versión de desarrollo). Se debe probar primero con un caso piloto, medir los resultados y luego expandirla gradualmente; no se debe activar la producción global desde el primer día.

Ubicación dentro de la arquitectura

Las funcionalidades útiles para la producción con IA siguen integrándose en las capas que rodean al modelo, consolidándose en los equipos de infraestructura ya existentes:

Clients / agents (Claude Code, RAG apps, custom agents)
        |
LiteLLM gateway  ── pre_call guardrail ──►  Headroom compression (+ CCR retrieve)
        |
LLM providers (OpenAI / Anthropic / Bedrock etc.)

La idea de compresión independiente ahora forma parte de las características de la pasarela. Si LiteLLM ya es la puerta de entrada, esto consiste en un cambio de configuración mediante una clave, no en una rearquitectura. Por eso resulta interesante incluso para los equipos que anteriormente omitieron el uso de un proxy de compresión separado.

Conclusión

La funcionalidad adicional en LiteLLM implica un cambio sencillo con un gran impacto. Al activarla en la pasarela, cada agente o cliente que utilice esta pasa solicitudes más eficientes a través de los proveedores, con la posibilidad de acceder a los archivos originales con solo una llamada.

El diseño mantiene un enfoque conservador donde es importante: reversible, con funcionamiento por defecto activado y configurable según la solicitud, la clave o a nivel global, para que pueda comenzar de forma limitada.

Si los tokens son un elemento real del costo y LiteLLM ya está en uso, el costo de la prueba es casi nulo. Asocie una clave, mida el tráfico en tiempo real y tome una decisión a partir de ahí.

Referencias

  1. Blog de LiteLLM, LiteLLM × Headroom — https://docs.litellm.ai/blog/headroom-integration
  2. Documentación de integración de Headroom con LiteLLM — https://headroom-docs.vercel.app/docs/litellm
  3. Headroom en GitHub — https://github.com/chopratejas/headroom
  4. Documentación de LiteLLM — https://docs.litellm.ai/

Plan de implementación

Semana uno: aplique compresión a una única clave virtual utilizada por un agente no crítico. Compare la cantidad de tokens y la calidad de las respuestas con una versión sin compresión frente a los mismos estímulos. Asegúrese de que aparezca x-litellm-applied-guardrails y de que las llamadas de recuperación tengan éxito al plantear preguntas detalladas.

Semana dos: amplíe la aplicación a una clave de agente de programación si los ahorros medidos en tráfico con muchos datos JSON parecen significativos. Espere ganancias porcentuales menores en contextos de código denso; evalúe el éxito en función de los costos y la latencia, en lugar de buscar alcanzar el techo del 95% promocionado por el marketing.

Semana tres: decida establecer un valor predeterminado global solo si el comportamiento de funcionamiento en caso de fallo se mantuvo durante un ejercicio intencional de interrupción y si los responsables de la calidad aprobaron los flujos de trabajo más sensibles.

Por qué esto pertenece a la ingeniería de plataformas

Los equipos de desarrollo no deben inventar por separado métodos de compresión. Las pasarelas ya disponen de claves, presupuestos y mecanismos de enrutamiento. Incorporar la compresión allí sigue el mismo patrón que siguieron los límites de velocidad y los sistemas de autenticación: una vez integrada en el flujo compartido, cada cliente hereda ese control sin necesidad de volver a desplegar nada.

Mantenga este modelo mental: los clientes se comunican con LiteLLM; LiteLLM se comunica con los proveedores; Headroom funciona junto al mecanismo de conexión previa a la llamada. Nadie en ninguno de los extremos necesita un nuevo SDK. Esa ubicación invisible es lo que convierte una idea de investigación en un cambio real en la plataforma.

Carta de decisión

  • Ya se utiliza el proxy de LiteLLM → protección nativa
  • litellm.completion en uso → llamada de retorno
  • ASGI personalizado → middleware
  • Un agente de programación → proxy independiente de Headroom

Mida primero y luego amplíe la implementación. La compresión es una herramienta para controlar costos, no una doctrina obligatoria.

Lecturas relacionadas

  • Redes de LLM autogestionadas: un gateway en lugar de un host por modelo — Agregar modelos de peso abierto no debería significar nuevos nombres de host ni conexiones entre dispositivos para cada aplicación. Un gateway al estilo LiteLLM mantiene un único punto de conexión mientras los servidores backend cambian detrás de él.
  • Reducir gastos en LLM con un ruteador de token LiteLLM — LiteLLM se sitúa entre las aplicaciones y los proveedores, dirigiendo las solicitudes simples a modelos económicos y las más complejas a Opus; esto permite un ahorro de aproximadamente el 28% en un mes simulado de trabajo de un ingeniero.