Headroom: Das Netflix-Tool, das KI-Agenten 10-mal günstiger macht
BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술
Transcript
00:00:00Dies ist Headroom, ein Open-Source-Tool, das alles komprimiert, was Ihr KI-Agent liest,
00:00:04also Tool-Aufrufe, Codedateien und RAG, bevor es das LLM erreicht, was bedeutet, dass Sie Tokens
00:00:09um 60 oder sogar 95 % reduzieren können, um exakt die gleiche Antwort zu erhalten. Und das Clevere daran: Es ist umkehrbar, sodass das
00:00:14Modell die vollständigen Informationen jederzeit wieder anfordern kann, wenn es sie tatsächlich braucht. Aber Kompression
00:00:18bedeutet normalerweise, dass man etwas verliert. Wie entfernt man also den Großteil des Kontexts und erhält trotzdem die richtige
00:00:23Antwort? Das ist wirklich eine interessante Frage, also abonnieren Sie und lassen Sie es uns herausfinden.
00:00:31Wenn Sie jemals ein Harness wie ClaudeCode verwendet haben, wissen Sie, dass es viele Tokens verbraucht. Jeder Tool-Aufruf
00:00:35könnte riesige JSON-Logs ausgeben, die größtenteils Rauschen sind und von den wichtigen Informationen ablenken,
00:00:40und all das landet im Kontextfenster, wofür Sie bezahlen.
00:00:45Besonders wenn Sie etwas wie Opus im UltraCode-Modus verwenden, das dynamische Workflows ausführt,
00:00:50und parallele Sub-Agenten ohne Token-Limit startet. Deshalb hat Tejas Chopra, Senior Dev bei Netflix,
00:00:57Headroom entwickelt, das funktioniert, indem es den Inhaltstyp erkennt und die wichtigen Informationen behält.
00:01:01Bei JSON-Arrays behält es Anomalien und Grenzfälle, es hat einen Code-Kompressor, der den
00:01:06eigentlichen Syntaxbaum liest, und wenn es Build-Logs liest, behält es die Fehler und wirft die bestandenen Tests weg.
00:01:11Aber hier ist der interessante Teil. Für normalen Text verwendet Headroom sein eigenes Modell namens CompressBase,
00:01:17das Tejas selbst nur für die Kompression trainiert hat, und dieses Modell läuft lokal auf Ihrer Maschine.
00:01:22Headroom gibt an, dass es Benutzern bereits rund 700.000 $ an Tokens gespart hat,
00:01:26und das wirklich Clevere daran ist, dass es einen Hinweis im komprimierten Text hinterlässt,
00:01:30der einen Hash enthält, mit dem das Modell die unkomprimierten Daten abrufen kann, falls es sie jemals benötigt.
00:01:35Wenn Sie James' Video über Caveman gesehen haben, das reduziert ebenfalls den Kontext,
00:01:39aber aus der entgegengesetzten Richtung, und das werde ich später im Video noch genauer erklären.
00:01:43Aber lassen Sie uns jetzt ein einfaches Beispiel für Headroom sehen, um zu verstehen, wie es funktioniert.
00:01:46Headroom funktioniert mit einem Python-Server, der zwischen Ihrer App,
00:01:50das könnte gecrawlter Code sein, und zum Beispiel den Anthropic-Servern sitzt.
00:01:54Wenn ein Tool-Aufruf zurückkehrt, komprimiert der Proxy ihn unter der Haube mit Rust,
00:01:59und sendet nur die komprimierte Version an die API.
00:02:01Sie können den Server mit pip installieren, aber ich verwende uv und stelle sicher, dass die Python-Version
00:02:063.12 ist, da es mit neueren Versionen nicht funktioniert.
00:02:09Führen Sie dann den Headroom-Proxy-Befehl aus dieser Bibliothek aus, der den Proxy auf diesem Port startet.
00:02:14Headroom hat auch ein TypeScript- oder Python-SDK,
00:02:17und für die Demo verwenden wir das Python-SDK, um eine App mit dem Claude-SDK zu erstellen.
00:02:22Wir können beides so installieren und dann können wir mit der App loslegen.
00:02:25Der Plan ist, Ihnen später zu zeigen, wie man Headroom mit ClaudeCode verwendet,
00:02:29aber ich wollte Ihnen zuerst zeigen, wie es hinter den Kulissen funktioniert.
00:02:32Für diese App haben wir eine Benutzeraufforderung, alle Logdateien zu lesen und den Fehler zu finden,
00:02:36sowie die Grundursache. Und von hier aus fälschen wir den Tool-Aufruf.
00:02:40Wir bringen Claude dazu, einen Bash-Tool-Aufruf zu machen, um die Server-Logdatei mit 'cat' auszugeben,
00:02:44die eine Reihe gefälschter Logs enthält und hier oben importiert wird.
00:02:47Und dann geben wir die Ergebnisse des Tool-Aufrufs zurück.
00:02:49Der Grund, warum wir Headroom nicht einfach direkt die Textdatei geben,
00:02:52ist, dass es nur die Ausgabe von Tool-Aufrufen komprimiert.
00:02:54Hier geben wir das Modell an und darunter verwenden wir die Headroom-Compress-Funktion,
00:02:59um die Nachricht mit dem Modell für eine genaue Token-Zählung zu verarbeiten.
00:03:02Headroom verwendet nicht tatsächlich Haiku.
00:03:04Und dann geben wir ihm die Basis-URL des Proxys.
00:03:06Und dann haben wir eine Reihe von Kontroll-Logs zu Testzwecken,
00:03:08die Ihnen die Nachricht vor und nach Headroom zeigen,
00:03:11und weitere Kontroll-Logs, die die prozentuale Einsparung zeigen.
00:03:13Danach übergeben wir die komprimierte Nachricht von Headroom an ClaudeCode,
00:03:17das auch die Benutzeraufforderung enthält.
00:03:18Wenn wir diese Datei nun ausführen, sehen wir, dass Headroom 98 % der Tokens eingespart hat.
00:03:23Hier sind die Tokens vorher und hier sind die Tokens danach.
00:03:26Es spart also über 17.000 Tokens.
00:03:28Und es ist offensichtlich, wenn wir uns das Vorher und Nachher ansehen.
00:03:31Wenn wir nach oben scrollen: Das ist das Vorher, das wird normalerweise an ClaudeCode gesendet.
00:03:35Wir erhalten die Benutzeraufforderung, den Tool-Aufruf und die Tool-Antwort, das ist die gesamte Logdatei.
00:03:39Und wenn wir uns hier ansehen, was Headroom sendet, sehen wir, dass wir dieselbe Benutzernachricht und denselben Tool-Aufruf erhalten,
00:03:43aber die Tool-Antwort ist viel kürzer.
00:03:45Und was es hier getan hat, ist die statistische Kompression zu verwenden, um redundante Tokens zu verwerfen.
00:03:50Es hat 419 ähnliche Info-Logs entfernt und sie zu einer Zusammenfassung komprimiert.
00:03:54Hier unten können wir sehen, wie Headroom Claude mitteilt, dass dies die komprimierte Ausgabe ist.
00:03:58Es kann sie mithilfe dieses Hashes abrufen.
00:04:00Ein unmittelbarer Nachteil von Headroom ist, dass Claude glaubt, es hätte nicht
00:04:05genug Informationen, um die Aufgabe zu erfüllen, aber das hat es definitiv.
00:04:08Also führen wir unsere Datei noch einmal aus.
00:04:10Und wir sehen, dass wir dieses Mal immer noch die 98 % Einsparungen haben, aber viel mehr Informationen von Claude.
00:04:16Versuchen wir eine weitere Demo.
00:04:17Wie üblich müssen wir den Headroom-Proxy ausführen, aber diesmal gebe ich ihm mehr Parameter.
00:04:21Hier können wir sehen, dass ich den ML-Wert hinzufüge, der das Kompressionsmodell lokal für die Komprimierung von reinem Text verwendet.
00:04:26Und ich habe Code hinzugefügt, um den Code-bewussten Kompressor verfügbar zu machen.
00:04:30Und dann habe ich das Code-Aware-Flag hinzugefügt, um es einzuschalten.
00:04:32Das können wir hier sehen, es ist aktiviert.
00:04:34Dann werde ich ClaudeCode ausführen, aber zuerst setze ich die Basis-URL auf den Proxy.
00:04:39Und damit werde ich Claude die Aufforderung geben: Lies jede einzelne TS-Datei in diesem Projekt
00:04:44und gib mir einen tiefen Überblick darüber, was dieses Projekt tut, mit Zitaten zum relevanten Code.
00:04:49Nach einer Weile gibt es mir eine Antwort, in der es sagt, dass es alle TypeScript-Dateien
00:04:53in den fünf Paketen gelesen und mir einen Standardüberblick gegeben hat.
00:04:56Aber wenn wir den Befehl /context ausführen, was ich früher getan habe, sehen wir, dass es 89,1k Tokens verbraucht hat.
00:05:02Ich habe tatsächlich eine ähnliche Aufforderung in Claude ohne Headroom ausgeführt.
00:05:06Und wenn wir nach unten scrollen und sehen, wo wir den Kontext-Subbefehl verursacht haben,
00:05:10hat dies etwas mehr Tokens verbraucht.
00:05:11Ich bin mir nicht sicher, warum es hier das Opus 1-Million-Kontextfenster gewählt hat.
00:05:16n hat hier das 200k-Kontextfenster gewählt, aber wir können diesen Endpunkt mit jq formatieren,
00:05:21um genau zu sehen, woher die Kompression vom Proxy kam.
00:05:23Das enthält viele Informationen, daher hat es eine Weile gedauert, bis ich es gefunden habe.
00:05:26Aber wenn wir nach oben scrollen, können wir sehen, wie viele Tokens durch die Headroom-Kompression
00:05:30gespart wurden und sogar sehen, wie viel Geld die Kompression uns gespart hat.
00:05:32Natürlich war das alles nur von einer Aufforderung.
00:05:35Aber stellen Sie sich vor, ich hätte mehrere ClaudeCode-Sitzungen laufen und Headroom würde alle Tool-Aufrufe
00:05:39komprimieren. Stellen Sie sich vor, wie viele Tokens ich noch sparen würde.
00:05:42Ich möchte auch darauf hinweisen, dass Headroom bei der exakten Aufforderung mit niedriger Anstrengung auf Opus
00:05:46tatsächlich keine Token-Einsparungen erzielt hat.
00:05:49Erst als ich von niedrig auf mittel wechselte, waren die Token-Einsparungen sichtbar.
00:05:53Wenn ich also auf hoch, extra hoch oder sogar max wäre, dann würde es noch mehr Tokens sparen.
00:05:57Wie auch immer, das war ein kurzer Überblick über Headroom.
00:06:00Und natürlich gibt es noch so viele Funktionen mehr, die ich hätte durchgehen können,
00:06:03wie das Cross-Agent-Memory, mit dem Claude, Codex und andere Harnesses
00:06:07denselben komprimierten Kontext teilen können.
00:06:09Headroom Learn, das Ihre gescheiterten Sitzungen durchsucht, um herauszufinden, was es
00:06:12zu stark komprimiert hat, und lernt daraus, damit es in Zukunft nicht denselben Fehler macht,
00:06:15sowie Integrationen mit beliebten SDKs.
00:06:18Aber es gibt eine wichtige Sache, die man über Headroom bedenken sollte.
00:06:21Jedes Mal, wenn das Modell nicht die Informationen erhält, die es benötigt,
00:06:24und Headroom bittet, die vollständigen Daten bereitzustellen, erfolgt ein zweiter Roundtrip,
00:06:28was in manchen Fällen dazu führt, dass Sie mit Headroom mehr Tokens verbrauchen als ohne.
00:06:33Aber ich schätze, das ist der Vorteil der “Headroom Learn”-Funktion,
00:06:36die versucht, das in Zukunft immer mehr zu verhindern.
00:06:39Aber erinnern Sie sich an Caveman, von dem ich vorhin im Video sprach?
00:06:42Caveman reduziert Tokens, indem es das Modell anweist, in kurzen Fragmenten zu antworten,
00:06:46Füllwörter wegzulassen und so weiter.
00:06:48Aber wie Sie gerade in der Demo gesehen haben, schrumpft Headroom, was das Modell liest,
00:06:51bevor es überhaupt beim Modell ankommt.
00:06:52Das eine schneidet also die Ausgabe, während das andere die Eingabe schneidet,
00:06:56was bedeutet, dass Sie sie technisch gesehen für maximale Token-Einsparung zusammen verwenden können,
00:07:00wenn Ihnen das Sparen von Tokens wirklich so wichtig ist.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video