Headroom: инструмент от Netflix, который делает ИИ-агентов в 10 раз дешевле

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Это Headroom, инструмент с открытым исходным кодом, который сжимает всё, что читает ваш ИИ-агент,
00:00:04то есть вызовы инструментов, файлы кода и RAG, перед тем как они попадут в LLM, что позволяет сократить токены
00:00:09на 60 или даже 95% для получения того же самого ответа. И самое умное здесь то, что это обратимый процесс, поэтому
00:00:14модель может запросить полную информацию обратно, когда она ей действительно понадобится. Но сжатие
00:00:18обычно означает потерю чего-то, так как же удалить большую часть контекста и всё равно получить правильный
00:00:23ответ? Это действительно интересный вопрос, так что подписывайтесь, и давайте выясним.
00:00:31Если вы когда-нибудь использовали такую обвязку, как ClaudeCode, вы знаете, что она потребляет много токенов. Каждый вызов инструмента
00:00:35может выдать огромные JSON-логи, которые по большей части являются шумом, отвлекая от важной информации,
00:00:40и всё это попадает в контекстное окно, за которое вы платите.
00:00:45Особенно если вы используете что-то вроде Opus в режиме UltraCode, который запускает динамические рабочие процессы,
00:00:50запуская параллельные под-агенты без ограничения токенов. Вот почему Теджас Чопра, старший разработчик в Netflix,
00:00:57создал Headroom, который работает путем определения типа контента и сохранения важной информации.
00:01:01Так что для JSON-массивов он сохраняет аномалии и крайние случаи, у него есть компрессор кода, который читает
00:01:06фактическое дерево синтаксиса, а когда он читает логи сборки, он сохраняет ошибки и отбрасывает пройденные тесты.
00:01:11Но вот самая интересная часть. Для обычного текста Headroom использует собственную модель под названием CompressBase,
00:01:17которую Теджас обучил сам специально для сжатия, и эта модель работает локально на вашем компьютере.
00:01:22Headroom утверждает, что уже сэкономила пользователям около 700 000 долларов на токенах,
00:01:26и самое умное здесь то, что она оставляет “хлебную крошку” в сжатом тексте,
00:01:30содержащую хэш, который модель может использовать для извлечения несжатых данных, если они ей когда-нибудь понадобятся.
00:01:35Теперь, если вы смотрели видео Джеймса о Caveman, оно также сокращает контекст,
00:01:39но с противоположной стороны, и я объясню это подробнее позже в видео.
00:01:43Но сейчас давайте посмотрим на базовый пример работы Headroom, чтобы понять, как это устроено.
00:01:46Headroom работает с помощью Python-сервера, который стоит между вашим приложением,
00:01:50это может быть сканируемый код и, например, серверы Anthropic.
00:01:54Поэтому, когда приходит результат вызова инструмента, прокси-сервер сжимает его, используя Rust под капотом,
00:01:59и просто отправляет сжатую версию в API.
00:02:01Так что вы можете установить сервер с помощью pip, но я собираюсь использовать uv и убедиться, что версия Python
00:02:06— 3.12, потому что на новых версиях работать не будет.
00:02:09Затем запустите команду прокси Headroom из этой библиотеки, которая активирует прокси на этом порту.
00:02:14У Headroom также есть SDK для TypeScript или Python,
00:02:17и для демо мы будем использовать Python-версию, чтобы создать приложение с помощью SDK Claude.
00:02:22Так что мы можем установить их оба вот так, и тогда мы готовы к работе с приложением.
00:02:25План такой: показать вам, как использовать Headroom с ClaudeCode позже,
00:02:29но сначала я просто хотел показать, как это работает за кулисами.
00:02:32Итак, для этого приложения у нас есть запрос пользователя прочитать все файлы логов и найти ошибку,
00:02:36а также её первопричину. И отсюда мы собираемся сымитировать вызов инструмента.
00:02:40Мы заставим Claude сделать вызов Bash-инструмента для выполнения “cat” файла логов сервера,
00:02:44который содержит кучу фейковых логов и импортируется здесь выше.
00:02:47А затем мы вернем результаты вызова инструмента.
00:02:49Причина, по которой мы не передаем Headroom текстовый файл напрямую,
00:02:52заключается в том, что он сжимает только вывод вызова инструмента.
00:02:54Поэтому здесь мы указываем модель, а ниже используем функцию сжатия Headroom
00:02:59для принятия сообщения с моделью для точного подсчета токенов.
00:03:02Headroom на самом деле не использует Haiku.
00:03:04Затем мы передаем базовый URL прокси.
00:03:06И у нас есть набор контрольных логов для тестирования,
00:03:08показывающих сообщение до и после Headroom,
00:03:11а также ещё несколько контрольных логов, показывающих процент экономии.
00:03:13А после этого мы передаем сжатое сообщение от Headroom в ClaudeCode,
00:03:17которое также содержит запрос пользователя.
00:03:18Итак, теперь, если мы запустим этот файл, мы увидим, что Headroom сэкономила 98% токенов.
00:03:23Вот токены до, а вот токены после.
00:03:26То есть экономия составила более 17 000 токенов.
00:03:28И это очевидно, когда мы смотрим “до” и “после”.
00:03:31Если прокрутить вверх, это “до”, то есть то, что обычно отправляется в ClaudeCode.
00:03:35Мы получаем запрос пользователя, вызов инструмента и ответ инструмента, то есть весь лог-файл.
00:03:39А если посмотреть, что отправляет Headroom, мы увидим то же сообщение пользователя и вызов инструмента,
00:03:43но ответ инструмента намного меньше.
00:03:45И что он сделал: использовал статистическое сжатие для удаления избыточных токенов.
00:03:50Удалено 419 похожих информационных логов и сжато в сводку.
00:03:54Теперь здесь мы видим, что Headroom говорит Claude: это сжатый вывод.
00:03:58Его можно получить с помощью этого хэша.
00:04:00Теперь здесь мы видим один из непосредственных недостатков Headroom: Claude думает, что у него нет
00:04:05достаточно информации для завершения задачи, хотя это не так.
00:04:08Поэтому мы запустим наш файл снова.
00:04:10И мы видим, что на этот раз у нас по-прежнему 98% экономии, но гораздо больше информации от Claude.
00:04:16Давайте попробуем другое демо.
00:04:17Как обычно, нужно запустить прокси Headroom, но в этот раз я добавляю больше параметров.
00:04:21Здесь видно, что я добавляю значение ML, которое использует локальную модель сжатия для обычного текста.
00:04:26И я добавил код, чтобы сделать доступным компрессор, понимающий код.
00:04:30И затем добавил флаг code aware, чтобы его включить.
00:04:32Теперь мы видим, что он здесь включен.
00:04:34Затем я запускаю ClaudeCode, но сначала установлю базовый URL на прокси.
00:04:39С этим на месте, я даю Claude запрос: прочитай каждый TS-файл в этом проекте
00:04:44и дай мне глубокий обзор того, что делает этот проект, со ссылками на соответствующий код.
00:04:49Через некоторое время он дает ответ, что прочитал все TypeScript-файлы
00:04:53в пяти пакетах и дает мне обзор по умолчанию.
00:04:56Но если мы запустим команду контекста, что я сделал ранее, мы увидим, что использовано 89,1 тыс. токенов.
00:05:02Я пошел дальше и запустил аналогичный запрос в Claude без использования Headroom.
00:05:06Если прокрутить вниз и посмотреть, где мы вызвали подкоманду контекста,
00:05:10то здесь использовано немного больше токенов.
00:05:11Я не уверен, почему он выбрал контекстное окно Opus в 1 миллион здесь.
00:05:16n выбрал 200k контекстное окно здесь, но мы можем отправить curl к этой конечной точке с помощью jq,
00:05:21чтобы точно увидеть, откуда было сжатие от прокси.
00:05:23Там много информации, так что у меня ушло время, чтобы найти это.
00:05:26Но если прокрутить вверх, можно увидеть, сколько токенов было сэкономлено сжатием Headroom
00:05:30и даже увидеть, сколько денег сэкономило нам сжатие.
00:05:32Конечно, всё это было только с одного запроса.
00:05:35Но представьте, если бы у меня было запущено несколько сессий ClaudeCode, и Headroom сжимал бы все вызовы
00:05:39инструментов. Представьте, сколько бы ещё токенов я сэкономил.
00:05:42Я также хочу отметить, что когда я запускал тот же запрос с “low efforts” на Opus,
00:05:46Headroom на самом деле не сэкономил никаких токенов.
00:05:49Только когда я перешел с low на medium, экономия токенов стала заметной.
00:05:53Может быть, если бы я был на high, x-high или даже max, тогда бы он сэкономил ещё больше.
00:05:57Но в любом случае, это был быстрый обзор Headroom.
00:06:00И, конечно, есть ещё так много функций, которые я мог бы осветить,
00:06:03например, кросс-агентную память, которая позволяет Claude, Codex и другим обвязкам
00:06:07использовать один и тот же сжатый контекст.
00:06:09Headroom Learn, который анализирует ваши неудачные сессии, чтобы понять, что он сжал
00:06:12слишком сильно, и обучается, чтобы не повторять ту же ошибку в будущем,
00:06:15а также интеграции с популярными SDK.
00:06:18Но есть одна важная вещь, которую стоит учитывать о Headroom.
00:06:21Каждый раз, когда модель не получает информацию, которая ей нужна,
00:06:24и просит Headroom предоставить полные данные, это приводит ко второму кругу запроса,
00:06:28что в некотором роде означает, что вы тратите больше токенов с Headroom в некоторых случаях, чем без него.
00:06:33Но я полагаю, в этом преимущество использования функции Headroom Learn,
00:06:36которая пытается предотвратить это в будущем.
00:06:39Но помните, я говорил о Caveman ранее в этом видео?
00:06:42Так вот, Caveman сокращает токены, инструктируя модель отвечать короткими фрагментами,
00:06:46отбрасывая слова-паразиты и так далее.
00:06:48Но как вы только что видели в демо, Headroom уменьшает то, что читает модель,
00:06:51ещё до того, как это попадет в модель.
00:06:52Так что один режет вывод, а другой режет ввод,
00:06:56что означает, что технически вы можете использовать их вместе для максимальной экономии токенов,
00:07:00если вас действительно так сильно волнует их экономия.

Key Takeaway

Headroom от Netflix минимизирует затраты на использование LLM, сжимая входные данные агентов на 60–95% через локальное прокси-решение с возможностью обратного восстановления контекста.

Highlights

  • Headroom сжимает контекст для ИИ-агентов на 60–95%, сокращая затраты на токены при сохранении доступа к полным данным.

  • Инструмент использует статистическое сжатие для логов и специализированную модель CompressBase для обычного текста, работающую локально.

  • В сжатый контент внедряются хэши-«хлебные крошки», позволяющие модели при необходимости запросить исходные несжатые данные.

  • Headroom функционирует как Python-прокси, перехватывающий вызовы инструментов и оптимизирующий их до передачи в API LLM.

  • Функция Headroom Learn анализирует неудачные сессии, чтобы адаптировать алгоритм сжатия и предотвращать потерю критически важной информации.

  • Экономия токенов становится заметной при использовании режимов работы выше «low efforts», достигая 98% в некоторых сценариях тестирования.

Timeline

Принципы работы и задачи Headroom

  • Headroom сокращает количество токенов за счет сжатия вызовов инструментов, файлов кода и RAG-данных.
  • Процесс сжатия является обратимым: модель может извлечь полную версию данных через специальный хэш.
  • Для сжатия обычного текста применяется собственная локальная модель CompressBase.

Инструмент был создан Теджасом Чопрой для решения проблемы избыточного потребления токенов в сложных рабочих процессах, таких как ClaudeCode. Headroom анализирует типы контента: для JSON сохраняются аномалии, для кода используется синтаксический анализ, а в логах сборки сохраняются только ошибки. Это позволяет очистить контекстное окно от «шума» без потери возможности доступа к важным данным.

Интеграция и техническая настройка

  • Headroom работает как прокси-сервер на Python, использующий Rust для высокопроизводительного сжатия.
  • Установка выполняется через pip с обязательным использованием версии Python 3.12.
  • В тестах Headroom показал экономию 17 000 токенов, сжав лог-файл на 98%.

Прокси-сервер располагается между приложением и API, перехватывая результаты выполнения команд. Пользователь может настроить работу сжатия через SDK, добавив параметры для использования локальных моделей (ML) или специфических компрессоров кода. Основной механизм заключается в удалении избыточных данных из ответов инструментов перед их передачей в модель.

Эффективность и оптимизация использования

  • Экономия токенов напрямую зависит от режима работы агента, при низких настройках (low efforts) эффективность может быть минимальной.
  • Функция Headroom Learn минимизирует риск повторных запросов за полными данными путем анализа прошлых ошибок.
  • Headroom можно комбинировать с инструментом Caveman для дополнительной экономии, так как они оптимизируют разные этапы запроса.

Хотя Headroom снижает затраты, в случаях, когда модель требует исходную информацию, возникают дополнительные запросы, что может увеличить расход токенов. Однако автоматическое обучение на ошибках помогает оптимизировать стратегию сжатия. Инструмент поддерживает кросс-агентную память, позволяя различным обвязкам, включая ClaudeCode, использовать единый сжатый контекст.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video