Галоўная / Артыкулы

Кожны календарны выклік LLM у шлюзе LiteLLM з Headroom стыскаецца.

Headroom як заход пры прадзвоне для LiteLLM скарочвае кожны вызов LLM: адварцальная скарочка, дыялект «fail-open», пошаговая адпрацоўка па кожнай клавішы і вимераванне заўсёдышча токенаў.

Выдавец: REACTAPP.TOP7 хв чытання1510 слоў

Крыніцы: Compress Every LLM Call at the Gateway: Headroom on LiteLLM

Команды, які вже выкарыстоўваюць модэлі з LiteLLM, можаць скамяняць кантыент токенав для кожнага падаючага запрошэння, не чынячы нічога з кодам агентаў і дапрынамоў. Headroom прыўязывае проксі як захоўнік перад вызванням, скамяняе рэзультаты інструментаў і фрагменты дадзенняях RAG прычымоў да запрошэння, але ў той жытак дазволяе модэлю запрашваць полныя орыгіналы через інструменты адзысквання, калі гэта неабходна.

Headroom, як было сказана ранейш, скамяняе рэзультаты інструментаў, лог-файлы і фрагменты дадзенняях прычымоў да таго, калі модэль іх бачыць. Сама стысненне ніколі не было сложным — сложна было ўключыць яго ў маршрут запрошэння.

З чэрвеня 2026 года гэтыя труднасці зменшуюцца для корыстувачаў LiteLLM: Headroom прыўязываецца як натыўны захоўнік на воратах. Адна настройка стысняе кожнае запрошэнне, якое праходзіць через яго.

Гэтае поўнай меры усунула последнюю прычыну для сумневаў. Эканомія завжды была рэальной; сложнасць цяпер крылася ў настройкі. На воратах достатньва перакрыць адну настройку, і агенты з кліентамі застаюцца без змян.

Чаму самэўрад

Большасць команд, якія працуюць з калькулярамі разных модэлей, вялікай часткай уже выкарыстоўваюць самэўрад.

LiteLLM ёсць популярным выборам: адна входная панель, сумесная з OpenAI, якая аб’еднвае падаўжэльнае шмат працавальнікаў, з централізаваным керуваннем маршрутацыяй, ключамі, бюджетамі та логаваннем.

Гэта робіць самэўрад натуральным месца для стыснення дадзенаў. Кожны запит вже праходзіць чераз яго, таму адны компрэсары падходяць для кожнага агента, кліента та працавальніка.

Патрэбна ўстановка толькі адназначна, замест таго каб насталяваты апранткі для кожнага дапрыемніка. Пакалі LiteLLM падтрымляе як формат OpenAI /v1/chat/completions, так і формат Anthropic /v1/messages, компрэсар самэўрада можа працаваць з дапрыемнікамі, якія викорыстоўваюць формат OpenAI, з інструментамі на базе Anthropic, такімі як Claude Code, службамі адзысквання дадзенаў та індывідуальнымі агентамі, адночасна.

Кампрэсія перестае быць дадатковым элементам і становіцца функцыяй платформы — тым шляхам, які зазвычай выбіраецца для інфраструктуры: па шляху да спяльнага слоя, які вже выкарыстоўваецца всемі.

Як працюе механізм захавання

Headroom прыўязуецца як захоўні механізм пры пачатку каллу: ў цикле жыцця LiteLLM, адразу перад тым, як данні будуць надаслены далей.

Процес Sidecar:

Client (Claude Code, your app, any OpenAI/Anthropic client)
        |
        v
LiteLLM proxy  ── pre_call ──►  Headroom (sidecar): compress messages
        |                              |
        |   ◄── compressed messages ───┘
        v
LLM provider (OpenAI / Anthropic / Bedrock etc.)

Кліенты як і раней звяжуюцца з LiteLLM. Перад каллам LiteLLM запускае Headroom, заменяе поведамленні на скомпрэсаваныя і перадае их далей. Кліенты і прадастальнікі ніколі не спрачываюцца безпасова з Headroom — самэй гэтым і є сенс.

Важлівыя два прынцыпы безпекі.

Нічога не трапляецца назаўсёды

Той самы прынцып кампрэсавання–зберагчывання–выяўлення, як і ў паказанай раней інформацыі пра Headroom. Орыгінальныя данні застаюцца у кэшы; LiteLLM апускае інструмент retrieve_headroom. Якщо модэлю патрэбны всі контексты, ён вызывае гэты інструмент. Кампрэсія є вярнай, а не такой, якая вызывае втраты данняў.

Режым адкрытага выключэння

Headroom ўжоўся як дапаможны элемент, а не частка критычнага маршруту. Якщо ён не працуе або працюе повольна, вызовы продаваюцца без стыснення. Вы застаецеся з еконаміяй, калі всё працуе нормальна, і з трафікам, калі не працуе — гэта правильны режым выключэння для функцыі, якая карае за вартасць.

Як ўвядзець

Патрэбны LiteLLM v1.92.x або новейшая версія (першыя корыстувальнікі выкарыстоўвалі v1.92.0-dev.1).

Актывацыя адбываецца проста: дадаць headroom-compression і выбраць режым:

  • Па кожным запиту — актывацыя толькі для адзінаковых вызоў
  • Па кожным віртуальным ключу — прыўязка да ключа; кожны вызов з гэтым ключам стысняецца
  • У всіх выпадках — default_on: true для всего трафіку проксі

Пакалі захоўніцы знаходзяцца на шлюзе і обрабоўваюць оба форматы запитоў, той самы спосаб актывацыі падходзіць для кліентаў, сумесных з OpenAI, кліентаў Anthropic, внутрашняях агентаў, служб выкарыстання даных і інструментаў кодавання IDE.

„Per-key“ – гэта адміністратыўны спосаб: прыяўжніце захоўнік да віртуальнага кантролера, распраўце яго, і кожны прадаўца/кліент, які выкарыстоўвае яго, будзе автаматычна компрэсаваць тэкст.

Прыклад коду Claude: задаце ANTHROPIC_BASE_URL на проксі LiteLLM з ключам компрэсавання – няма неабходнасці інсталлявацыі кліента, няма разлікіў у кодзе. Тае ж прыменяецца да кліентав у стылі OpenAI через OPENAI_BASE_URL. Адзинственая програма нават не ведае пра існаванне Headroom.

Паказваце, што прыемленая аплікацыя выкарыстоўвае захоўнік, можна через x-litellm-applied-guardrails або панель Guardrails у логах LiteLLM. Афіцыйныя інструкцыі з налаштавання ўказаныя ў гайдзе LiteLLM па захоўніках Headroom (дыв. справакі) – следавайце ім, каб задаць точныя налаштаванні для новай версіі, а не вжываць застарэлыя фрагменты.

Якщо вы не выкарыстоўваеце проксі LiteLLM

Захоўнік на рывуце ёсьць галоўным спосабам, але не ўнікальным.

Выкліканне litellm.completion() у Python – выкарыстоўваеце функцыю калбэк:

import litellm
from headroom.integrations.litellm_callback import HeadroomCallback

litellm.callbacks = [HeadroomCallback()]
# Every call is now compressed before it reaches the provider
response = litellm.completion(model="gpt-4o", messages=[...])
response = litellm.completion(model="bedrock/claude-sonnet", messages=[...])

Або настройкі:

# litellm_config.yaml
litellm_settings:
  callbacks: ["headroom.integrations.litellm_callback.HeadroomCallback"]

Парадоксальна рэч у тым, што ён выкарыстоўвае async_pre_call_hook з LiteLLM, які працюе ў тым жа цикле жыцця, што і захісковы механізм гейтвэю. У локальным режыме дадзеныя стискаюцца ўнутршняй працэсай за дапамогою compress() з Headroom; у хмарным режыме дадзеныя перадаюцца ў Headroom Cloud для керавання процэсамі атрымання і навчання.

Свой ASGI-проксі або веб-дзеянне — мідлвэр:

from headroom.integrations.asgi import CompressionMiddleware

app.add_middleware(CompressionMiddleware)
# Intercepts /v1/messages, /v1/chat/completions, /v1/responses, /chat/completions

У адпаведзях можа быць паказана інфармацыя x-headroom-compressed: true і x-headroom-tokens-saved для вимеры на кожны запит.

Толькі агент для кодавання, без Python-дзеяння — самастоятельны проксі:

pip install "headroom-ai[all]"
headroom proxy --port 8787

# then, for Claude Code:
ANTHROPIC_BASE_URL=http://localhost:8787 claude

Правіло выбору: проксі LiteLLM → захісковы механізм. LiteLLM у коде → калбэк. Свое веб-дзеянне → мідлвэр. Один агент для кодавання → самастоятельны проксі.

Што можна спакаваць, чыста правда

Эконамія залежыць ад кантэнту

У даследжэннях тепер паказаны практычныя значэнья: пры выхадзеўных даных і рэзультатах пошуку, якія маюць вельмі большую кантэнцыю JSON, колькасць токенав зменшваецца прыблізна на 60–95%; пры вялікай кантэнцыі коду — на 15–20%. Неякшы частака дадзеных павінна застацца без стыснення як контрольная група, каб панелі керування моглі паказваць фактычную еконамію.

Стысненне дадзеў прыносіць незначны затрымкі

У даследжэннях паказана прыблізна 15 мс для маленькых файлаў JSON і 100–200 мс для вялікіх файлаў, выдаваемых інструментамі. Зменшэнне колькасці токенав зазвычай прыводзіць да большага часу генеравання, чым кошты стыснення; маленькія пакеты дадзеных можаць не прыносіць выгоды. Самэлькі гэта прычына, чаму важлівыя контралі за кожным запросам і кожным ключам.

Старая проблема застаецца

Агрэсыўнае стысненне паграждае полным разумеенням контэксту. retrieve_headroom ўжо є спосабам рашэння, але для яго дзейснальнасці модэлю патрэбна можлівасць зазначыць і запытаць пра це. У практыцы ён добра работае, але не є гарантіяй — старацца стежыць за якасцю пры задачах, дзе важны деталі.

Гэта ўсё нова тэхналогія

Інтеграцыя гэтаго «вората» была адпрацавана ў середзіне 2026 года для апошней версіі LiteLLM (спачатку – тэставая версія для разработчыкаў). Спачатку працуецца з пілотным варыянтом, пасля чаго адбываецца пераканальванне, а толькі пасля гэтаго – масовая реалізацыя; не трэба запускать глобальную рэалізацыю з першага ж дня.

Якое ўсё гэта месца ў структуре

Корыстныя функцыі AI для працы ў рэальных умовах продаваліваюцца ў разныя слоі модэлю, адбываецца іх консалідаванне ў вялікія команды з адпрацоўкай інфраструктуры, якія вядуць свою роботу:

Clients / agents (Claude Code, RAG apps, custom agents)
        |
LiteLLM gateway  ── pre_call guardrail ──►  Headroom compression (+ CCR retrieve)
        |
LLM providers (OpenAI / Anthropic / Bedrock etc.)

Ідея самастойнай стыснення тэксту ўжо стала частью функцый «вората». Якщо LiteLLM вядома як главны вхід, то гэта проста змена налашоўкаў праз спецыяльны ключ – не перэабліканне архітектуры. Самэльга гэта цікава нават для тых команд, якія раней не викорыстоўвалі окремых проксі для стыснення.

Вывад

Даўжынка «полі» для развіцця LiteLLM – это невеликія змены, якія маюць вельмі большы эфект. Як толькі гэта будзе увядзена ў «вораты», кожны агент/кліент, які працуе за ўмовамі гэтага «вората», будзе надсылалі болей лёгкія запиты да розных прадаўцоѳ, пры чым орыгіналы будуць доступныя за адной толькі вызовам.

Дзяржаўны дизайн застаецца адпаведным у тых моментах, дзе гэта важна: можліва зворачная праця, режым «fail-open», а таксі можна налаштаваць за запитам, па клучоў або глобальна, ўсё гэта дапамагае пачаць з мінімуму.

Якщо токены ёсць рэальным элементам косту, а LiteLLM вялікі час вжываецца, кост прыбутковага тэставання практычна стоіць нуля. Прыўяжыце адзін клуч, змерьце рэальны трафік і тады прымейце рашэнне.

Справакі

  1. Блог LiteLLM, LiteLLM × Headroom — https://docs.litellm.ai/blog/headroom-integration
  2. Дасведчэнні па інтеграцыі Headroom з LiteLLM — https://headroom-docs.vercel.app/docs/litellm
  3. Headroom на GitHub — https://github.com/chopratejas/headroom
  4. Дасведчэнні LiteLLM — https://docs.litellm.ai/

План розгортання

Першыя тры дні: прыўязаць функцыю стыснення да адной віртуальнай клавішы, якую выкарыстоўвае не критичны агент. Пораўняць колькасць токенав і якосць адповедзей з нестысненым аналогам на тых сабе запитах. Пераканацца, што x-litellm-applied-guardrails прысутны і што запыты на отрыманне дакладных адпаведзей успехуяць, калі задаецца запыт з великай колькасцю деталей.

Другія тры дні: распрастарыць застосаванне на клавішу кодавальнага агента, якщо заўважаная еконамія трафіку з великай колькасцю JSON будзе адпаведнаю. Можна спакоўвацца на меншых адсотках эфектыўнасці у супакоўжаных кодавых контэкстах; успех ацэніваецца па суме грошэй і часу адпаведзі, а не па падборчым цілям у розмяре 95%.

Трэція група: прыняць рашэнне пра глобальны стандарт толькі якщо модель будзе працаваць нормальна пад час спецыяльных тэстаў на перывод змагчымасцей і якісныя адпаведальнікі затвердзяць найчулейшыя процесы роботы.

Чаму гэта належыць да інжынерыі платформы

Команды, які розрабатваюць аплікацыі, не должны самастаўляць методы кампрэсіі. Гейтвейі вялікі час володзеюць ключамі, бюджетамі та механізмамі маршрутацыі. Дадзенне кампрэсіі там адпавядае спосабу, як развіліся механізмы лімітацыі швайнаў та аутэнтыкацыі: калі ўсё знаходзится на спяльнай сцэжцы, кожны кліент успадковуе контроль без неабяжнай пераскладовкі.

Зберагаюце такую канцэпцыю: кліенты вялікі час супрацоўнаюць з LiteLLM; LiteLLM супрацоўнае з прадаўцамі; Headroom располагаецца праз гэты процес. Нікому з учаснікаў не трэба новага SDK. Саме такая невыразная структура ператварае ідэю доследжэння ў рэальную платформу.

Карточка прыняцтва рашэння

  • Ужо викорыстоўваеце проксі LiteLLM → натыўны захоў
  • litellm.completion ў процесе → калбэк
  • Спецыяльны ASGI → мідлвэр
  • Один агент для кодавання → самастоятны проксі Headroom

Змерыце спачатку, а потым расширюйце. Кампрэсія — гэта інструмент для кантролю витак, а не релігія.