Headroom: как сжать контекст для LLM без потери данных
Headroom сжимает выводы инструментов, логи и JSON-структуры перед отправкой в LLM, сокращая токены на 60–95% без потери точности. Работает как прокси, библиотека или обёртка для агентов и поддерживает обратимое сжатие через локальный кэш.
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 окупается быстро, если вы платите за токены и работаете с большими контекстами. Но он не заменит продуманную архитектуру — он делает её дешевле.
Если ваши агенты тонут в токенах — попробуйте. Если нет — встроенные механизмы провайдера могут и так подойти.