Headroom: как сжать контекст для LLM без потери данных

Headroom сжимает выводы инструментов, логи и JSON-структуры перед отправкой в LLM, сокращая токены на 60–95% без потери точности. Работает как прокси, библиотека или обёртка для агентов и поддерживает обратимое сжатие через локальный кэш.

Headroom: как сжать контекст для LLM без потери данных

Headroom: как сжать контекст без потерь

Headroom не расширяет контекстное окно модели. Он чистит то, что в него попадает.

Агенты тратят токены на структуры, которые не нужны модели: JSON-выводы инструментов, логи с подробностями выполнения, полные истории диалогов, результаты RAG. Решения вроде суммаризации работают медленно (~500 мс) и всё равно теряют данные, а тривиальное усечение срезает важные детали наугад.

Headroom решает задачу иначе: не борется с ограничениями моделей, а оптимизирует то, что агенты и так отправляют в LLM. Сжатие обратимо, точность не страдает, а интеграция не требует переписывания кода.


Четыре режима — четыре способа подключить Headroom

Headroom работает без изменений в коде:

  • Библиотека (Python/TypeScript) — функция compress(messages) для прямой интеграции.
  • Прокси-серверheadroom proxy --port 8787. Работает с любым языком, не требуя переписывания.
  • Обёртка для агентовheadroom wrap claude|codex|cursor|aider|copilot. Перехватывает трафик автоматически.
  • MCP-сервер — инструменты headroom_compress, headroom_retrieve, headroom_stats для клиентов MCP (Claude, Cursor и другие).

За сжатием стоят четыре алгоритма:

  • SmartCrusher — для JSON: сжимает массивы, вложенные объекты и смешанные типы на 70–90%, сохраняя структуру.
  • CodeCompressor — AST-ориентированный, работает с Python, JS, Go, Rust, Java и C++: 40–70% экономии.
  • Kompress-base — модель на основе HuggingFace, обученная на агентных трассах, для текста и неструктурированных данных.
  • CacheAligner — стабилизирует префиксы, чтобы кэши провайдеров (Anthropic/OpenAI) работали эффективнее.
  • CCR (Compress-Cache-Retrieve) — обратимое сжатие. Оригиналы хранятся локально в кэше (настраиваемый LRU) и возвращаются за <1 мс по запросу через headroom_retrieve.

Кросс-агентная память позволяет делиться сжатым контекстом между Claude, Codex, Gemini и другими — с автоматической дедупликацией.


Цифры, которые говорят сами за себя

Headroom сокращает токены без потери точности. Примеры из документации:

Сценарий До сжатия После сжатия Эффективность
Поиск кода (100 результатов) 17 765 1 408 92%
Отладка инцидента SRE 65 694 5 118 92%
Триаж GitHub-issues 54 174 14 761 73%
Исследование кодовой базы 78 502 41 254 47%

Точность остаётся на уровне бенчмарков:

  • GSM8K (математика): 0.870 → 0.870 (±0.000).
  • TruthfulQA (факты): 0.530 → 0.560 (+0.030).
  • SQuAD v2 (вопросно-ответные пары): 97% точности при 19% сжатии.
  • BFCL (инструменты): 97% точности при 32% сжатии.

Когда Headroom окупается

Возьмём сценарий: разработчик запускает Claude Code для поиска уязвимости в репозитории. Инструмент возвращает 100 результатов поиска — массив JSON с метаданными, URL и вложенными объектами.

Без Headroom это 17 765 токенов. Headroom сжимает до 1 408 токенов, оставляя только ошибки, аномалии и релевантные элементы. Claude получает тот же ответ, но быстрее и дешевле. Если модель запросит оригинальные данные (например, чтобы уточнить сигнатуру функции), headroom_retrieve вернёт их за <1 мс.

Это критично для команд, которые:

  • запускают агентов ежедневно и платят за токены;
  • используют кросс-агентную память (Claude, Codex, Gemini и другие).

Headroom не нужен, если:

  • вы довольны встроенными механизмами сжатия провайдера (Anthropic/OpenAI);
  • работаете в sandbox-окружении, где запрещены локальные процессы.

Где инструмент не дотягивает

В документации Headroom обещано сжатие изображений (40–90%), но бенчмарков и примеров реализации нет. Не ясно, как именно оно устроено: через ML-маршрутизатор или иначе.

В Hacker News автор упоминает, что headroom_retrieve почти не используется, хотя CCR позиционируется как ключевая фича для безопасности при агрессивном сжатии. Нет количественных данных о частоте вызовов retrieve.

Поддержка платформ тоже вызывает вопросы. В документации указано, что аутентификация для Copilot CLI на Windows/Linux/Docker требует дополнительной валидации. Чётких инструкций или подтверждений стабильности для этих платформ нет.

Технические ограничения:

  • CCR добавляет накладные расходы на память (настраиваемый LRU-кэш);
  • для кода нужен tree-sitter (~50 МБ);
  • не протестировано на всех крайних случаях (редкие форматы логов, специфичные структуры JSON).

Что это стоит на самом деле

Headroom — проект с открытым исходным кодом под Apache 2.0. Вот что нужно учесть:

  • Цена: бесплатно.
  • Ресурсы:
    • CCR требует памяти для локального кэша;
    • для кода — дополнительная зависимость tree-sitter (~50 МБ).
  • Интеграции: LangChain, Agno, Strands, LiteLLM, Vercel AI SDK, Anthropic SDK, OpenAI SDK и другие.

Headroom окупается быстро, если вы платите за токены и работаете с большими контекстами. Но он не заменит продуманную архитектуру — он делает её дешевле.

Если ваши агенты тонут в токенах — попробуйте. Если нет — встроенные механизмы провайдера могут и так подойти.

Read more

Incus против Docker: системные контейнеры выигрывают по цифрам, но проигрывают в экосистеме

Incus против Docker: системные контейнеры выигрывают по цифрам, но проигрывают в экосистеме

Бенчмарк 2026 года показывает: LXC запускается за 0,8 секунды, Docker — за 1,2, а Kubernetes Pod — от 2,5. При этом Docker остаётся стандартом. Разбираемся, почему Incus и LXC, изолирующие окружение, а не приложение, оказываются легче и быстрее, но уступают в удобстве доставки.

Эффект бабочки: почему это не закон физики, а метафора

Эффект бабочки: почему это не закон физики, а метафора

Рассказ Брэдбери и погодная модель Лоренца породили одну из самых живучих научных метафор. Но квантовые эксперименты и логика систем показывают: время упруго, и последствия вмешательств не всегда катастрофичны. Разбираем, где миф, а где реальность.

njs в NGINX: где JavaScript действительно работает, а где — нет

njs в NGINX: где JavaScript действительно работает, а где — нет

njs добавляет JavaScript в NGINX, но не превращает его в Node.js. Код выполняется только в строго заданных точках обработки запроса и должен укладываться в миллисекунды. Два движка — устаревший встроенный njs и современный QuickJS — различаются по скорости и возможностям.

Россияне не покупают у брендов напрямую: главные барьеры и что делать бизнесу

Россияне не покупают у брендов напрямую: главные барьеры и что делать бизнесу

Опрос 1229 жителей 17 городов России показал: 45% откажутся от покупки, если товар нельзя доставить в их населённый пункт. Проблемы с оплатой на сайте и долгие сроки доставки отсекают ещё до 39% клиентов. Без инфраструктуры даже сильный бренд теряет половину аудитории.