Headroom: La herramienta de Netflix que hace que los agentes de IA sean 10 veces más baratos
BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술
Transcript
00:00:00Este es Headroom, una herramienta de código abierto que comprime todo lo que lee tu agente de IA,
00:00:04es decir, llamadas a herramientas, archivos de código y RAG, antes de que llegue al LLM, lo que significa que puedes reducir tokens
00:00:09en un 60 o incluso un 95% para obtener la misma respuesta. Y lo inteligente es que es reversible, por lo que el
00:00:14modelo puede pedir la información completa de vuelta cuando realmente la necesite. Pero la compresión
00:00:18normalmente significa que pierdes algo, así que ¿cómo eliminas la mayor parte del contexto y aun así obtienes la respuesta
00:00:23correcta? Esta es una pregunta genuinamente interesante, así que suscríbete y vamos a descubrirlo.
00:00:31Si alguna vez has usado un arnés como ClaudeCode, sabes que utiliza muchos tokens. Cada llamada a una herramienta
00:00:35podría volcar enormes registros JSON, que en su mayoría son ruido, restando importancia a la información relevante,
00:00:40y todo esto se introduce en la ventana de contexto, que es por lo que estás pagando.
00:00:45Especialmente si usas algo como Opus en modo UltraCode, que ejecuta flujos de trabajo dinámicos,
00:00:50iniciando subagentes paralelos sin límite de tokens. Es por esto que Tejas Chopra, un desarrollador senior en Netflix,
00:00:57creó Headroom, que funciona detectando el tipo de contenido y manteniendo la información importante.
00:01:01Así que, para matrices JSON, mantiene las anomalías y casos extremos, tiene un compresor de código que lee el
00:01:06árbol de sintaxis real, y cuando lee registros de compilación, mantiene los fallos y descarta las pruebas que pasan.
00:01:11Pero aquí está la parte interesante. Para texto plano, Headroom utiliza su propio modelo llamado CompressBase,
00:01:17que Tejas entrenó él mismo solo para compresión, y este modelo se ejecuta localmente en tu máquina.
00:01:22Headroom afirma que ya ha ahorrado a los usuarios alrededor de 700.000 dólares en tokens,
00:01:26y lo que es realmente ingenioso es que deja un rastro en el texto comprimido,
00:01:30que contiene un hash que el modelo puede usar para recuperar los datos sin comprimir si alguna vez los necesita.
00:01:35Ahora, si has visto el video de James sobre Caveman, eso también reduce el contexto,
00:01:39pero desde la dirección opuesta, y explicaré más sobre eso más adelante en el video.
00:01:43Pero por ahora, veamos un ejemplo básico de Headroom para entender cómo funciona.
00:01:46Ahora, Headroom funciona mediante un servidor Python que se coloca entre tu aplicación,
00:01:50así que esto podría ser código rastreado, y por ejemplo, los servidores de Anthropic.
00:01:54Entonces, cuando vuelve un resultado de llamada a una herramienta, el proxy lo comprime usando Rust bajo el capó,
00:01:59y simplemente envía la versión comprimida a la API.
00:02:01Así que puedes instalar el servidor con pip, pero voy a usar uv y asegurarme de que la versión de Python
00:02:06sea la 3.12, porque no funcionará en versiones más nuevas que esa.
00:02:09Luego ejecuta el comando de proxy de headroom desde esta biblioteca, lo que activa el proxy en este puerto.
00:02:14Headroom también tiene un SDK para TypeScript o Python,
00:02:17y para la demostración, vamos a usar el de Python para crear una aplicación usando el SDK de Claude.
00:02:22Así que podemos instalar ambos de esta manera, y luego estamos listos para pasar por la aplicación.
00:02:25Ahora, el plan es mostrarte cómo usar Headroom con Claude Code más adelante,
00:02:29pero primero quería mostrarte cómo funciona detrás de escena.
00:02:32Así que para esta aplicación, tenemos un prompt de usuario para leer todos los archivos de registro y encontrar el error,
00:02:36así como la causa raíz. Y desde aquí, vamos a simular la llamada a la herramienta.
00:02:40Así que vamos a conseguir que Claude haga una llamada a una herramienta bash para hacer cat al archivo de registro del servidor,
00:02:44que contiene un montón de registros falsos y se importa aquí arriba.
00:02:47Y luego vamos a devolver los resultados de la llamada a la herramienta.
00:02:49Ahora, la razón por la que no simplemente le damos a Headroom el archivo de texto directamente
00:02:52es porque solo comprime la salida de la llamada a la herramienta.
00:02:54Así que aquí especificamos el modelo y debajo, estamos usando la función de compresión de headroom
00:02:59para tomar el mensaje con el modelo para un conteo preciso de tokens.
00:03:02Headroom en realidad no usa Haiku.
00:03:04Y luego le damos la URL base del proxy.
00:03:06Y luego tenemos un montón de registros de control para fines de prueba,
00:03:08mostrándote el mensaje antes y después de headroom,
00:03:11y algunos registros de control más mostrando el porcentaje de ahorro.
00:03:13Y después de eso, pasamos el mensaje comprimido de headroom a Claude Code,
00:03:17que también contiene el prompt del usuario.
00:03:18Así que ahora si ejecutamos ese archivo, podemos ver que headroom ha ahorrado el 98% de los tokens.
00:03:23Así que aquí están los tokens antes y aquí están los tokens después.
00:03:26Así que ahorra más de 17.000 tokens.
00:03:28Y es obvio verlo cuando miramos el antes y el después.
00:03:31Así que si subimos, este es el antes, así que esto es lo que normalmente se envía a Claude Code.
00:03:35Obtenemos el prompt del usuario, la llamada a la herramienta y la respuesta de la herramienta, que es todo el archivo de registro.
00:03:39Y si miramos aquí lo que envía headroom, podemos ver que obtenemos el mismo mensaje de usuario y llamada a herramienta,
00:03:43pero la respuesta de la herramienta es mucho menor.
00:03:45Y lo que ha hecho aquí es usar compresión estadística para eliminar tokens redundantes.
00:03:50Así que ha eliminado 419 registros de información similar y los ha comprimido en un resumen.
00:03:54Ahora aquí podemos ver debajo que headroom le dice a Claude que esta es la salida comprimida.
00:03:58Puede recuperarla usando este hash.
00:04:00Ahora aquí vemos una de las desventajas inmediatas de headroom es que Claude piensa que no tiene
00:04:05suficiente información para completar la tarea, pero definitivamente la tiene.
00:04:08Así que lo que vamos a hacer es ejecutar nuestro archivo de nuevo.
00:04:10Y podemos ver que esta vez todavía tenemos el 98% de ahorro, pero tenemos mucha más información de Claude.
00:04:16Probemos otra demostración.
00:04:17Como de costumbre, necesitamos ejecutar el proxy de headroom, pero esta vez le estoy dando más parámetros.
00:04:21Así que aquí podemos ver que estoy añadiendo el valor ML, que usa el modelo de compresión localmente para comprimir texto plano.
00:04:26Y he añadido código para hacer disponible el compresor consciente del código.
00:04:30Y luego he añadido la bandera de consciente del código para activarlo.
00:04:32Así que ahora podemos ver que está habilitado aquí.
00:04:34Luego voy a ejecutar Claude Code, pero primero voy a establecer la URL base al proxy.
00:04:39Y así, con eso en su lugar, le voy a dar a Claude un prompt de leer cada archivo TS en este proyecto
00:04:44y darme una descripción profunda de lo que este proyecto está haciendo con citas del código relevante.
00:04:49Y después de un tiempo, me da una respuesta diciéndome que ha leído todos los archivos TypeScript
00:04:53a través de los cinco paquetes y me ha dado una descripción general predeterminada.
00:04:56Pero si ejecutamos el comando de contexto, que he hecho antes, podemos ver que ha usado 89.1k tokens.
00:05:02Ahora, de hecho, seguí adelante y ejecuté un prompt similar en Claude sin usar headroom.
00:05:06Y si bajamos hasta el final y vemos dónde causamos el subcomando de contexto,
00:05:10esto ha usado un poco más de tokens.
00:05:11Ahora, no estoy seguro de por qué eligió usar la ventana de contexto de 1 millón de Opus aquí.
00:05:16n ha elegido la ventana de contexto de 200k aquí, pero podemos hacer curl a este endpoint con formato jq
00:05:21para ver exactamente de dónde provino la compresión del proxy.
00:05:23Ahora, esto contiene mucha información, así que me tomó un tiempo encontrarla.
00:05:26Pero si subimos, podemos ver cuántos tokens fueron ahorrados por la compresión de headroom
00:05:30e incluso ver cuánto dinero nos ahorró la compresión.
00:05:32Ahora, por supuesto, todo esto fue solo desde un prompt.
00:05:35Pero imagina si tuviera varias sesiones de Claude Code ejecutándose y tuviera a headroom comprimiendo todas las llamadas
00:05:39a herramientas. Imagina cuántos tokens más ahorraría.
00:05:42También quiero señalar que cuando ejecuté el prompt exacto con esfuerzos bajos en Opus,
00:05:46headroom en realidad no hizo ningún ahorro de tokens.
00:05:49Solo fue cuando pasé de bajo a medio que los ahorros de tokens fueron visibles.
00:05:53Así que tal vez si estuviera en alto, extra alto o incluso máximo, entonces ahorraría aún más tokens.
00:05:57Pero de todos modos, esa fue una visión general rápida de headroom.
00:06:00Y por supuesto, hay muchas más características que podría haber revisado,
00:06:03como la memoria entre agentes, que permite a Claude, Codex y otros arneses
00:06:07compartir exactamente el mismo contexto comprimido.
00:06:09Headroom Learn, que extrae información de tus sesiones fallidas para averiguar qué comprimió
00:06:12demasiado y aprende para no cometer el mismo error en el futuro,
00:06:15así como integraciones con SDK populares.
00:06:18Pero hay una cosa bastante importante a considerar sobre Headroom.
00:06:21Cada vez que el modelo no obtiene la información que necesita
00:06:24y le pide a Headroom que proporcione los datos completos, hace un segundo viaje de ida y vuelta,
00:06:28lo que significa que terminas usando más tokens con Headroom en algunos casos que sin él.
00:06:33Pero supongo que esta es la ventaja de usar la función Headroom Learn,
00:06:36que intenta evitar que eso suceda cada vez más en el futuro.
00:06:39Pero ¿recuerdas cuando hablé sobre Caveman antes en el video?
00:06:42Bueno, Caveman reduce tokens instruyendo al modelo a responder en fragmentos cortos,
00:06:46eliminando palabras de relleno y demás.
00:06:48Pero como acabas de ver en la demostración, Headroom encoge lo que el modelo lee
00:06:51antes de que siquiera llegue al modelo.
00:06:52Así que uno corta la salida mientras que el otro corta la entrada,
00:06:56lo que significa que técnicamente puedes usarlos juntos para un máximo ahorro de tokens,
00:07:00si realmente te importa tanto ahorrar tokens.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video