Як зменшыць выдаткі агента на токены: кэшаванне, маршрутызацыя і чысціня кантэксту
Скарачайце рахункі за LLM-агентаў праз кэшаванне промптаў і семантычны кэш, адкладзеную загрузку інструментаў, маршрутызацыю і каскады мадэляў, субагентаў і звычайную гігіену кантэксту.
Крыніцы: Agentic AI: How to Save on Tokens
Першы агент частаца пачынае з сістэмнага запросу, які складаецца з 500 токенаў, і двух інструментаў, прычаму гэтыя цыфры зазвычай быстра зрастаюць. Кажуць, што выцяклы сістэмны запрос Claude мяў дыяпазон у 24 000 токенаў. Пользоватары OpenClaw апавешчалі, што ў першы ж раунд да Gemini 3.1 Pro надаўся падаў болей 150 000 токенаў уваходу, а у адпаведзі было 29 токенаў. Якшто агента не оптымізаваць, то для обработкі 100 паведамленняў на дзень, кожна з якіх трэба перадаць у 166 000 токенаў, стоімасць на Gemini 3.1 Pro будзе адпаведна абоўшы 996 долераў у месяц, а на Claude Opus 4.6 — абоўшы 2 490 долераў. Кальколькі правільных падбораў можа знізіць гэту стоімасць да роўна 50–100 долераў.
Ідэі, які тут розглядаюцца, — гэта кэшаванне запросаў, семантычнае кэшаванне, інструменты паслядовага завантажэння і серверы MCP, маршрутызацыя і каскадаванне між мадэлямі, дэлегавання задач сабеагентам і падтрымкі чыстага рабочага кантэксту. Кожны з эых спосабоў дапамагае заэканоміць грошы по-свойму, але кожны з іх мае свою цену ў відношэні да складнасці чыста якосці. Ніхто з іх не ўжо безкоштовны.
Матэрыял дзеліцца на чатыры групы. Першая — цэ гэта паўтарна аднарожка токенаў, калі гэта можліва, за дапамогою кэшавання запросаў і семантычнага кэшавання. Другая — цэ гэта скорачэнне токенаў, якія завжды ўжо прысутны, такіх як мемарыі і ваказанні інструментаў. Трэцяя — цэ гэта маршрутызацыя задач да менжых мадэляў або перавод на большыя, а таксама ацэнка рызыку для якосці проты можлых заэканоміць. Пасяльнейшая — цэ гэта падтрымкі чыстага кантэксту, як для павышэння працэснасці, так і для змены віткоў, з кароткім аналізам методаў стыснення.
Хавайце перэстаць плаціць за тыя ж токены два разы
Косты выкаліквання модэляў не вынікаюць толькі з частага вызывання модэля. Яны таксама вынікаюць з павтаральных платэжаў за апрацоўку ідэнтычнага тэксту. Дапамагаюць два аблічна разныя механізмы. Кэшаванне K/V — гэта апаратура, якая стоіць за кэшаваннем запітаў, а семантычнае кэшаванне — гэта адзінэцкая ідэя. Для дугіх сістэмных запітаў кэшаванне запітаў — гэта просты спосаб здобыць выгоду; семантычнае кэшаванне трывожыць больш зусілляў і несе большых рызыкаў.
Як працюе кэш K/V
Перад тым, як модэль стварыць што-небудзь, яна должна апрацуе запіт, а для гэтага патрабуе вычыслювальных рэсурсоў, што значыць затрымку і грошы. Логічна не перабрацаваць той самы контэнт павтаральна.
Калі большая мовная модэль получае запіт, тэкст токенізуецца, токены ператвараюцца ў векторы, а ў кожным слоі зважання гэтыя векторы праектуецца ў тэнзоры K/V.
Кэшаванне значыць зберагаччае тыя тэнзоры, каб іх не патрэбна было вырачваць занова. Механізм аналізу ўжо зберагчае тэнзоры K/V пад час генеравання, бо інакшэ матэматычныя вырахункі не моглі б вестыся з разумной швальдзю. Наступны крок — заставаць кэш пасля завершэння адпаведзі і не выкасываць яго.
Пад час наступнага запіту сістэма пераканальваецца, чыя-то пачатак запіту падходзіць да чаго-небудзь, для чаго ў яе ужо ёсць тэнзоры. Калі так, яна завантажвае іх і прыпіняе апрацоўку.
Эканомічную выгоду лёгка адразу пабачыць, якшо выкарыстаць заокругленыя цыфры. Скажамо, апрацоўка 2 000 токэнаў займае адзін секунду, а запіт сістэмы складаецца з 10 000 токэнаў. Адмова ад павторнай вырахункаў зарабляе 5 секунд за кожны запыт, хоць рэальная швальдзя апрацоўкі залежыць значна ад налашоўкаў.
Порэшчанне з запісаным кэшам должна быць точным. Як толькі зменяецца хоць адзін токен, тэнзоры для таго часткі запіту больш не пасуюць і яе трэба перапрацавляць зноў. Люды постаўліваюць на гэта ўсё час: дапаможны прыметнік, пераканфігураваная вялічына інструмента або часовая метка не там разбіваюць правільнае падпаданне.
Такім чынам запісанный кэш прыяўляе швальнасць запітам і, у свою чаргу, робіць іх дышэўнейшымі. Аднак яго зберагчэнне не ўжо безкоштовна. Кэшаваныя пары K/V займаюць памяць на стороне сервера, таму багатыя прадастальнікі выкасываюць ентры прыблізна праз 5-10 хвілін.
Нікому не трэба ствараць гэта з нуля, калі ўсё гэта адбываецца за дапамогою фрэймворкаў і прадастальнікаў API, кожны з якіх мае сваія правілы. Команды, якія хостуюць модэль на адкрытым кодзе, зазвычай вядуцься на фрэймворкі для обслугавання, такія як vLLM, у якім ўжо ёсць вбудованы слой кэшавання. Пользоватары API ж следуюць правілам даўальніка, у якога яны корыстуюцца.
Кэшаванне прыфіксаў у vLLM
У vLLM слой кэшавання дзельніць запіт на блакі, генеруе хэш кожнага блака на адпаведныя токены, а таксама токены, якія лежачыя перад ім, і зберагае тэнзоры K/V пад гэтымі хэшамі. Як і у большасці рэштаванняў, статычная частка, якая павінна кэшавацца, знаходзіцца на пачатку запіту.
Важлівыя тры пазнакі:
--enable-prefix-cachingувёльняе гэтыя функцыі.--block-sizeзадае колькасць токэнаў у кожны блак. Калі размер блака становіць 16, двойчык завершвае працу пасля 16 токэнаў і пачынае новы блак.--kv-cache-memory-bytesчыста задае розмер кэшу K/V для кожнага GPU. Большая памяць дазволяе кэшаваным блакам застаўцца дольш часу, але большая колькасць розных дзейнаўкаў большой дужынкі заодно шырэй запоўняе яе, і старыя блакі вывалююцца раней.
Існуюць іншы варыанты, зокладаючы SGLang з RadixAttention для кешування прэфіксів, а таксама LMCache, які прызначэній для вікорыстання з двіжкамі обслуговування запітыв. Механізмі працуюць відповідно до опісаного вішчэ.
Кешування праз постачальніків API
Більшысць команд вікорыстовуюць постачальніків API, і кожэн з ніх мае своі правіла для того, шчоб запіты потраплялі до кешу. Запіт мае буты структурованій відповідно до цых правіл. Очэвіднім прыкладом ёсць OpenAI: для кешування частыні запіту необхідна точна збіг у прэфіксі, тобто однаковій статычній вхідній даній на початку. Тому спочатку йдуць стабільні інструкціі, прыклады і інструменты, а рэшта кантэнту — пізнішэ.
Надсілання prompt-cache-key дозволяе об’еднуваты схожы запіты і підвішчуваты іхню швідкісць апрацоўкі. Кешування автоматычно увімкнюецца для запітыв довжыною 1 024 токенів або більшэ, проце першы 256 токенів вікорыстовуюцца для направлення запітыв назад у той самій кеш, тому статычна частына мае буты довшою за 256 токенів.
Anthropic працюе інакш: кэшаванне можа быць увёрнута толькі за дапамою параметра cache-control. Выкарыстоўванне кэша зазвычай адбываецца пасля 5–10 хвілін без дзеяння як у адного, так і ў другога прадаўця, і гэты тымчасавы прынт можа быць падאгледзены. Anthropic дазволяе падняць гэты тымчасавы прынт да годзі за два разы вышэйю ценай.
Калі вы самі хостуеце сэрвыс, заўсёды эканоміцеце грошы. З API-прадаўцамі выгода полягае у дышэўшых кэшаваных токенах. OpenAI зніжвае цену кэшаваных токенаў на 90% ад звычайной цены. Anthropic таксама надае такую зніжку, але ўзімае плату за сам кэш, таму неправямы выкарыстоўванне можа завершыцца вышэйшымі віткамі, чым калі не выкарыстоўваць кэш.
Калі 90% запіту ёсць статычным, а кэш выкарыстоўваецца правільна, як паказвае графік, віткі розыгруюцца значна ніжэй.
Для гэтага паяравання быў створэны інтэрактыўны калькулятор, які дазволяе налагоджваць цыфры. У цэлым, кэшаванне запітоў — гэта значны прынт для тых, у каго ёсць довгі, незменны сістэмны запіт.
Семантычнае кэшаванне
Семантычнае кэшаванне — гэта ўсё інша рыч. Яно адбываецца на адной засадзе значэння: калі новы запіт дастаткова супадае з паканальным, вяртаецца зберажаны адпаведны адказ. Гэта здаецца простым, але існуюць явныя падводныя камені.
Пораўнанне тэксту па значэнні выконваецца за дапамогою эмбедынгаў, якія ёсць векторы, якія пораўнююцца за дапамогою косай схожасці. Высока схожасць апавяўляе пра супаданне значэнняў, хоць гэта залежыць ад мадэлі эмбедынга.
Працэўная прыметка заключаецца у спароўванні падобных запітоў з ужэ існуючымі адпаведзямі. Запіт на кшталт «Калькі ў століцы Франціі?» і спешны запіт «Што, дай мне назву століцы Франціі» павінны аба прыйсці да однаго зямлёванага адпаведзення, без неабходнасці знову вызываць ШЫ для яго стварэння. Гэта добра працуе, калі багато людзей ставяць майжэ ідэнтычныя загальныя запіты, а базовыя даны паступова становяцца застарэлымі.
Тады чаму бы не робіць гэта ў всіх месцах? Таму што можа выйсці багато проблем. У дызайне трэба разв’язаць калькі пытанняў:
- Які порог сяродзіцтва лямоўваецца як падходжанне.
- Як дуго адпаведзенне застаецца чынным.
- Як адмаўляюцца багатоэтапныя канверсаціі.
- Што на самай працэ ўтрымваецца.
- Чы роутэр павінен стаць на першай пазіцыі.
- Як аддзеляюцца корыстувальнікі.
- Што будзе, якшо застарэлае адпаведзенне будзе зберагацца у кэшы.
Часы існування вімагаюць особлівоі увагі, аджэ інформацыя старые рызною швідкісцю залежно ад запітання. Механізм простый, але для практычного вікорыстання потрыбні фільтры метаданіх і тэгі — такі як корыстувач, робочэ простыр, версія корпусу, персона, обмежэння сеансу, розумній таймер істэчэння тэрміну дыі і правіла для візначэння достатносты отрыманоі адказы. Гэта перэтворуецца на невелікій праект.
Ефектывній дызайн вікорыстовуе семантычній індэкс для пошуку поперэдніх запітань і дозволяе рызнім запітанням вказуваты на одну й ту саму зберэжэну відповідзь, што обмежуе зростання обсягу зберыгання. Таймер істэчэння тэрміну дыі можа адаптуватыся під рэальне вікорыстання: довготрывало зберыгаты часта вікорыстовувані запісі, а рэшту відаляты. Таксама доцільно створуваты гэты механізм пасля того, як журналі покажуць повторэння запітань, а не на початковому етапі, оскількі дэякі сценарыі вікорыстання просто не підходзяць для яго.
Многі базы дадзеных можаць выконваць гэту працу, а бібліятэкі займаюцься тэхнічнымі аспектамі, сярод яых semanticcache, prompt-cache, GPTCache, vCache, Upstash semantic-cache і Redis з LangCache.
Эконамія можа быць рэальной. Redis стверджвае пра змену колькісці вызоў API на 68,8% і падышчу затрымкі на 40–50%, хоць гэтыя цыфры часткова ўжо маркетынгавыя, адтакуль яны вылучаны ў сцэнарыі чыстых запытанняў і адпаведзей. Рэзультаты цалкам залежаць ад налашоўкі: бот для запытанняў і адпаведзей, які выкарыстоўвае многа зайвых вызоў, эконаміць больш, а агент для кодавання, чыя вызоўванні ўсе унікальныя, — менш.
Кэшаванне запытанняў ўжываецца, калі зменяючыся запытанне ўключаецца ў вялікі статычны прапан, а семантычнае кэшаванне — калі людзі постаўляюць тое ж запытанне пад разнымі формулюваннямі. 15% ступеня семантычнага падабенства дае толькі незначную эконамію, але ступень вышэй 45–50% пачынае вярціцца прыдатным.
Этыя два методы таксама разніцяюцца ў тым, што можа пайсці не так. Неудача ў запам’ятовванні запітоў коштае толькі стандартную цэну, таму такая неудача ёсць дэшавай і легка зазначальная. Неудача ў семантычнам кэшы таксама нешкодная, але хуткая удача – ні: корыстнік отрымае адпаведзь, напісаную для іншага запіту, з аблігацыяй у тое, што гэта правільна, а ў журналах няма нічога, што бы гэта пазначыла. Саме з-за такой асіметрыі семантычны кэшаванне выкалікае патрэбу ў строгіх крытэрыях схожасці, адборы корыстнікаў і спосабе перагляду удач, тады калі кэшаванне запітоў больш заўсёды выкалікае патрэбу ў адпаведным падзеўванні запітоў.
Таксама варта згадаць простае кэшаванне. Дорогія, дэтэрміністычныя працэсы, такія як рэзультаты запытаў SQL, выходы інструментаў і рэзультаты пошуку, трэба кэшаваць, ўпэўніваючыся, што яны не будуць выкананы чашчэ, чым трэба. Адным з прыкладаў ёсць інструмент, які збірае даны ключоўых слоў для стварэння апуса, кэшуе іх пакуль даны не стануць застарэлымі, і выкананы зноў толькі тады, калі гэты шлях знову будзе выкарыстоўвацца.
Семантычныя кэшы — гэта цікавая ідэя, якая дазволяе зберагаць токены ў певных сцэнарыях вікорыстоўвання, але ўдалаеся яе рэалізаваць толькі за дапамогою інжынерных рашэнняў.
Не запрашайце загадзя токены, якія не вікорыстоўваюцца
Прампт сістэмы можа стаць вялікім праз масівныя апісанні інструментоў чы рост памяці. Маленькіе агенты гэтага не відчуваюць, але спефікацыі агентоў, якія продовжваюць раставаць, можна скорачыць праз запрашэнне інформацыі за патрэбай, прынеймна спробаваць гэта зрабіць.
Зберагачыце слой, які завжды чытаецца, маленькім
Калі прампт агента перасягае певны размер, слой, які завжды чытаецца, павінен застаўся маленькім і стабільным, а дадатковыя дэталі — зберагвацца окола яго. Завантажэнне калькі сотняў інструментоў чы адправка повных апісанняў сервера MCP, якія постоянна змінююцца, прыводзіць да хаосу.
Проблема крыўціцца ў якасцы работы, так і ў вартосты. Калі кожны слой постаўляе змены, кэшаванне запытоў таксама стае значна складнейшым. Верхні слой павінен быць компактным і стабільным, дастатковым для таго, каб падказаць модэлю, дзе ён знаходзіцца і куды йсці далей, не пераносячы ўсю інфармацію загадзя.
Паведамляецца, што Claude Code выкарыстоўвае такі падход да керавання памяцю. Файл індэкса завжды чытаны і не павінен перасягаць 200 ліній, тады як дэталізаваныя файлы на тэмы знаходзяцца в іншым месцы. Тое, як агент практычна дзеяў у пораўнанні з тым, што планаваў сістэма, — гэта адна з самостойных пытанняў. Падобны падход відзначаецца ў розрабцы прыглушаных інструментаў Claude, у шаровай структуры Claude Skills і ў спробах выкарыстоўваць метод lazy-load для MCP-інструментаў замест таго, каб усе ваказанні сервераў ставіць у запыт загадзя.
Чы гэта працюе?
Этан прынцып застаецца актуальным: калі кантэкст становіцца вялікім, модэлю стае сложней выбраць правыя дзеяння. Гэта галузь яшчэ моладая, таму адны конкрэтны інструмент паказвае, як гэта можа працаваць.
Кілька месцаў тыму Anthropic выпусціла розвітаную функцыю пошуку інструментаў, якая мае на меты зменшыць обсяг кантэксту, нават калі модэль можа выкарыстоўваць сотні інструментаў. Компанія паведамляе, што перад оптымізацыяй спазіравала 55K–134K токенаў у вялічыне апісаў інструментаў, і што выбіранне няправільнага інструмента ёсць распашчастым проблемам, калі кантэкст становіцца такім вялікім.
Інструмент пошуку оптымізуе кантэкст, дазваляючы LLM шукаты інструменты, а не візначаць ўсе яны загадзя. Канфігурацыя выглядае так:
tools=[
{
"type": "tool_search_tool_bm25_20251119",
"name": "tool_search"
},
{
"name": "search_contacts",
"description": "Find a contact by name or email.",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"}
},
"required": ["query"]
}
},
{
"name": "send_email",
"description": "Send an email to one or more recipients.",
"input_schema": {
"type": "object",
"properties": {
"to": {"type": "string"},
"subject": {"type": "string"},
"body": {"type": "string"}
},
"required": ["to", "subject", "body"]
},
"defer_loading": True
}
]
Вядома адна змена пад назвай tool_search, якая выкорыстоўвае готовы варыянт – BM25 або Regex, або ж індывідуальны варыянт. Пасля чаго, як прыклад, адна змена пазначаецца як адкладзена. Гэта мае сенс толькі калі існуе 10 або больш змен. Anthropic выканаў пошук, таму спосаб, якім ён уключае схему змены ў запрошэнне сістэмы, і сам пошук застаюцца невідомымі. Калі змена падходзіць, яе апісанне дадаўцаеся ў самым паведамленні як блок tool_reference.
Ідэя прыемная, адколькі яна дае меншы пачатковы кантэкст за цену аднаго дадацьга крока пошуку. Тэставанне з 4 000 зменамі даў досыць слабкія рэзультаты, таму ёсць можласць дальнейшых тэстаў. Змены таксама павінны быць дастаткова добра апісаныя, каб іх можна было знайсці, а дэбаггіванне стае складнейшым, калі проміжны крок застаецца невідомым.
Такі падчынныя схемы з’яўляюцца і ў іншых месцах пад простым назвам хорашай інжынерыі ШЫ. Не падставляйце агента пад вялікі, хаотычны кантэкст. Дазвольце яму скарасці спектар можлівых варыянтов, а таксама дазвольце яму пераглядаць або завантажваць інструменты толькі тады, калі гэта неабходна.
Эконамія тут залежыць ад таго, сколькі токенав на самай суцэльнай пачатковай стадыўцы адправляецца. Другі калькулятор паўставляе на спакульнацыю пошук інструментаў з кэшаванням запытак.
Выказаны вышэ прыклад паказвае адмацаваную эконамію ад кэшавання запытак у поўнай сувязі з інструментамі, якія завантажваюцца толькі за патрэбы. І адна, і другая меры дапамагаюць заўсёды, але іх сумешчанне не дае вялікіх перабоў па супэрнацые з кожной з іх окрэма. Пошук інструментаў стосуецца не толькі грошэй, адтак і падтрымкі чыстоты кантэкста для крашчай працы. Калі гаворыць толькі пра эконамію, то вжыванне хоць аднай з эйх двух мераў ёсць найбольшым прынтэкстам.
Ўжывайце дышэчныя мадэлі для дышэчных задач
У гэтам раздзеле рассматрываецца направлення запытанняў да разных модэляў і выкарыстоўванне дышчых падагентаў для пэўных задач. І тое, і другое можа зменшыць вітраты на токены, але таксама можа паставіць пад загрозу якосць. Багато хто стверджуе, што 60% або больш заходзячых запытанняў ёсць простымі і не патрабуюць найсільнейшага модэля, тым больш такога, які ведае логічныя маневры.
Камерцыйныя продукты вядома вжываюць частку такіх методаў. Паведамляеца, што ChatGPT направляе запытанняя на адповіднасць такім сігналам, як тып размовы, ўскладненасць, патрэбы ў інструментах і чыстае намераванне, напрыклад „думайце рэшты“, а Claude спаляўнаецца на дэлегаванні на адповіднасць опісу, плюс на вбудоўваных падагентах, такіх як Explore. Канцэпцыя ўсё проста; аднойчы як зробіць гэта, не паставіўшы пад загрозу якосць, — гэта важкая частка. У наступным рассматрываюцца прыемы прыкладнага направлення і падходы з пераканальнай перапрацоўкай выхадных даных, такія як каскады і падагенты, а трэці раздзял прыкладжае расчыткі эканомій.
Направлення за ступенем ускладнення
Маршрутацыя на рэглэне запытку адгадвае ступень складнасці і намеры прычыні запытку яшчэ до таго, як будзе створэны выходны тэкст. Працэйныя перавагі вялікія, але адна неправільная выбора можа зіпсаваць цэлую сесію, таму якосьтва ёсць справжнім прыемлівым пытаннем. Калі-небудзь мадэль маршрутацыі павінна вырашыць, куды падае кожны запытак.
Сігналы маршрутацыі ад OpenAI не ў спільнай даступнасці, і корыстувачы часта адчуваюць, што ў ўскладнены момент іх перавелі на менш эфектыўную мадэль. Свет адкрытага кода праставляе больш можлівасцяў для аналізу. RouteLLM ад LMSYS, групы з Берклі, якая стоіць за Chatbot Arena, выучаецца на базе рэальных дадзенняя пра прыямкі, саўершаныя ў Arena. Ён спалюе стандартныя эмбедынгі з мінімальным модулем маршрутацыі, што дапамагае зменшыць вартасці хоставання, а яго создаталіяя адзвярцаюцься пра значныя зніжкі вартасці, заўсёды залічваючы большасць характэрыстыкаў GPT-4. Гэтае тверджэнне ўжо не было незалежна перапрацавана тут.
У стацыі LLMRouterBench прыводзіцца павярожанчы ці факт: багато навучаных рутэраў ледве перамагаюць простыя базовыя методы, такія як рутаванне на адпаведнасць ключоўым словам чы інтуітыўнае рутаванне, а таксама методы на адпаведнасць найбліжэйшаму суседу чы у стыле kNN.
Складныя рутэры можаць не даць значнага прыросту па супэрнацыі з простымі рашэннямі. Людзі не абмовляюцца ад рутавання і продолжаюць експерыментаваць, але эконамія не ўпэўнена, калі якасць адпаведзення не можа застацца на высокай адзінцы. Існуюць таксама варыянты на хоставанні, такія як OpenRouter Auto і Switchpoint, пры тым што ніхто з публічных джэральна не опісвае ўсероўнішае функцыонаванне чы точнасць іх рутэраў. Калькулятор парабяльвае LLMRouter, гіерактыкі, самастойна хоставаны класыфікатор, LLM-як-рутэр, RouteLLM і OpenRouter Auto. Для адпаведнай якосці ў рэальных умовах патрэбны правільныя тэсты з чысткімі цыфрамі, што ў свой час заслуговае на адзінакавыя стандарты.
Пачніце з дэшавага, перайдзіце на болей складныя рашэння, калі ўпэўненасць будзе нізкая
Не прагнучы працоўваць з метой адгадвання ступеня складнасці запіту на адпаведны прамт, дышэўскі мадэль можа спачатку даць адпаведны адказ, а пасля — пераказач вырашыць, чы рашыцца застаўіць яго чы пераводзіць задачу на болей складны мадэль. У статтэ Google «Speculative Cascades» опісваецца гэты компроміс: дышэўскія мадэлі вікорыстоўваюцца першымі зарады эконаміі і швальнасці, а болей складныя — толькі калі гэта неабходна.
Дышэўскі мадэль генеруе адказ, пасля чаго лёгкі пераказач аналізуе такія показнікі, як logprobs, энтропія, рызык у віглядзе маржы чы семантычная адпаведнасць.
Гэты падход ёсць прыемным, таму што складнасць прамта важка працоўваць, а большасць рутэраў не ёсць ідэальнымі, тады як якасць адказа легка ацэніць, калі ён вялікі. Гэта мае сенс толькі тады, калі большасць запытанняў можна адпаведзе простэйшым мадэлем, адколі для складнэйшых запытанняў патрэбны два вызовы. Команды, якія яго вікорыстоўваюць, кажуць, што час адліквідацыі межы між вызовамі можа застаўіцца ніжым 20 мс.
Адаптацыя на адміністрацыі відкрытага кода пад назвай CascadeFlow заявляе пра 69% эканомію за рахунак 96% зберэжэння якосці па прыкладзе з GPT-5. У тэстах, якія былі адрабатаны, былі наявны перавергнучыяся правдывыя рашэнні, такія як адказы на матэматычныя запытанні і варыянты з адпаведнымі адказамі. Галоўная проблема — маленькія мадэлі часта правільна, але неправа, таму можа быць разумна пачаць з консерватыўных праград і чашчэ ўскладнюваць задачы, што падымае вартасці. Дадаўшы дыялогавую структуру з недорогімі мадэлямі да калькулятара, можна досягнуць эканоміі апошніх 50%, як толькі для дзеяных запытанняў будуць патрэбны большыя мадэлі.
Дазволаць падагентам
Падагенты дазволяюць работу ізольаваным агентам, іноды выкорыстоўваючы маленькія мадэлі, таму гэта таксама ўжо адна з форм маршрутацыі. Эканомія тут меньшая. Корыста таксама крыўдзіцца ў чыстым падтрыманні кантэксту, каб кожны агент могаў абсалютна сфокусавацца на сваёй задачы.
Claude Code выклікаецца з вбудованымі сабагентамі. Сабагент Explore ў працэзнасці являе сабою працоўніка Haiku, які вікорыстоўваецца для аналізу і пошуку ў кодавой базе, пры чым застосоўваецца ідэя вікорыстання дэшавейшых модэляў для простыяй работы. Галоўная сесія таксама дэлегуе задачы праз падбор апісанняў, непазірна, і корыстнік бачыць толькі меньшую загальную суму рахунку. Паколькі оркестрактар зазвычай узяты ў усіх аспектах планавання, сінтэзы і повторных спроб, економія застаецца меншай, чым тая, яку даёт механізм направлення задач.
За данымі калькулятара, сабагенты дапамагаюць заўсёды зменшыць вартасць прыблізна на 11% пахамоў у порываў з варыянтом без направлення задач, таму яны не ёсць галоўным засобам для скорачэння віткоў самае по сабе.
Зберагачыце кантэкст чыстым
Хорашая праця з кантэкстам у большайшай меры стосуецца эфектыўнасці, але яна таксама можа паўтарыцца на цэны. З часам агенты накапліваюць зайвыя даны: застарэлыя спробы, старыя планы, дублюючыся даныя стану, логі, паўтаручыяся спазыраманні і необработанные выходы з адзінакоў. Тыя, хто першы раз стварае агентов, особа ўразлівыя да гэтага, адколі яны продовжваюць дадаваць рэзультаты ў рабочы стан галоўнага агента.
Гэта трапляецца всюды. Карыстувальнікі OpenClaw скаржацца на накопленне кантэксту, як і карыстувальнікі Claude Code, адтолькі ўскладненне полягае у тым, што дадаваць новыя даны лёгкае, а чыставаць іх — няўпрыемнае завада.
Складная частка — гэта канвейер стану
Гэта проблема двухаспектовая. Хоць ідзе не толькі про стысненне чату. Новыя даны таксама павінны заставацца чыстымі, калі яны прабываюць у рабочым стане, а гэта вялікая інжынерная задача. Неправільны падход выглядае так: агент продовжвае дадаваць необработанные выходы ў кантэкст:
bad state:
agent does work
→ dumps tool output into context
→ reads files
→ dumps files into context
→ runs tests
→ dumps logs into context
→ retries
→ keeps everything
Асалівая задача — зберагчы правы стан, выканаляючы непатрэбныя элементы па дарозе. Неапдэтаваны выходны матэрыял можа пацягнуцца ў архіў, а толькі тое, што трэба, застаецца ў актыўным кантэксце. Ворам зазвычай являецца занадто большы выхід ад інструментаў, таму частка работы — зменшыць ўшыранасць інструментаў за замовчаннем. Болей здаровы актыўны кантэкст выглядае так:
Good active context
[system rules]
[project rules]
[user task]
[current working state]
Keep:
+ auth flow lives in auth.ts + session.ts
+ bug only happens on refresh path
+ failing test: session_refresh_keeps_user
+ likely overwrite during refresh
+ files in scope: auth.ts, session.ts, auth.test.ts
Drop:
- raw grep results
- full test logs
- duplicate file dumps
- dead-end retries
Дзеяны элементы кантэксту таксама можу мець певны трымчасовы перыод існавання або дату заканчэння дзеяння. Калі стае неабходным стысненне, тады лёгкая ўзначыць, калі на самай працэ LLM фактычна патрэбны даны.
У заўважэннях Anthropic па задачах далёкага тэрміну сказана, што стысненне павінна захаваць архітэктурныя рашэння, нераспрацаваныя багі і дэталі рэалізацыі. Автонамна сістэма сціскання LangChain дазволяе агенту самам вяршыць выбор, калі стыскаць даны, і не чакае, пакуль кантэкст вяліка, што, як выглядае, ўзначае падход Anthropic. Команды пачынаюць спрыяць стысненню як проблеме сістэмы, з стандартамі і правіламі, спецыяльнымі для агентаў, і вучора як звычнам труку для стварэння апусцоў.
У няўзабаве опублікованай студыі Jia і саўецоў утварждаецца, што пры стысненні у 6 разоў было досягнуто змены бюджэту токенав на 51,8–71,3%, а таксама падышчы карэнтнасці рашэння проблем на 5,0–9,2% у тэстах SWE-bench Verified. Такім чынам, мова йдэ не толькі пра косты; стысненне таксама паспрыява падышчы якосты працы.
Адзьякуляцыя непатрэбных дадзеных можа чыста паветраць 30–70% кантэкста, што дапамагае заэканаміць прыблізна столькі ж грошаў. Для кантэкстнага вікна па 10 тысяч элементаў чыстка 30–50% дадзеных пад час 100 тысяч запускаў можа заэканаміць аж 1 500 долераў, а пры 40 тысячах — 6 000 долераў. Компрэсуючыя агенты, якія вжываюць вельмі маленькія, дышчыя мадэлі, можа коштаць больш, чым дапамагаюць заэканаміць. Тым не менш, чысты кантэкст не паслабляе якосці, на вядзіманне з сэмантычным кэшаваннем чы рутаваннем, таму, якшто гэта зрабіць правільна, гэта явны прыбытак. Але ёсць проблема — неабходнасць дакладаць зусілля для гэтага.
Выбір сярод іх
Існуе чатыры спосабы зменшыць вітраты на токены, і правыя способы залежаць ад сцэнарыю вжыцтва:
- Вжываць кэшаванне запросаў з большымі сістэмнымі запросамі, якія застаюцца незменнымі пад час павтаральных вызоваў LLM.
- Вжываць сэмантычнае кэшаванне для універсальнага бота для запытань і адпаведзей, які павінен застацца дышчым.
- Тэставаць рутаванне, калі агент павінен развяляваць як простыя, так і складныя запытанні.