Практычныя нататкі: кэш для AI-агентаў і яго эксплуатацыя ў прадакшне
Практычны разбор тэмы «кэш для AI-агентаў і яго эксплуатацыя ў прадакшне»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.
Крыніцы: Designing a Cache for AI Agents: Running It in Production
Існавайце гэта як перапрацоўаны варыянт ідэй з кнігі «Праектыраванне кеша для AI-агентаў: яго аператыўнае выкананне» для працавальнікаў: чыстыя этапы, аранжаваныя блакі коду і прыметкі з вяселення, якія застаюцца пасля перадачы задання. Этап Аналізу работае найкрашча, калі яго спрыяваць як мерыемую плошчу. Запісайце адну ідэальную транскрыпцыю, адзін прыклад неудачы і прыметкі з вяселення перад тым, як расшырваць масштабы. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якісьце крок не выйшла, прычына неудачы павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцюг заданняў.
Запісуйце стандартныя цыфры
Для этапы стандартных чыслаў у журнале неабходна пазначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры змены коду. Аперацыйныя працавнікі должны магчымае перайсці на гэты крок з вядомага пункту контролю, не спрабоўваючы здогадвацца пра схованы стан. Спрыяйце гэтай этапы як даговору межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, пазначыце крэтырыі успеху і не прымайце тыхню частковую завершэннасць. Заставіце людзкую апраўду для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны для працы. Компіляцыйныя налашчэнні не ўзроўнаўцяюцца з пачатковай цэласнасцю бізнес-процэса.
Едынны правіл, якое тыха разрушае расчытанні костаў
Едынзі правілле, якое трэба сяглаць на гэтым этапе, — гэта адзначыць вхідныя даныя, адпаведальнага за крок і крытэрыя завершэння пры змены коду. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомага пункта контролю, не прыпускаючы стану, які застаецца незрозумелым. Запісваюць час выканання і кост токена або запыту разам з функцыйнальнымі рэзултатамі. Відразувыя даныя пра косцы запобегаюць неспакоўным рахункам, калі працэс пераходзіць з дэмовай асяроддзя ў спяльнаваныя сераўеры. Пры кроках, якіе вітрачаюць грошы або зменяюць даныя ў працоўный сервіс, неабходна людзкая апраўка. Прыеднанне элементаў у час компіляцыі не значыць, што працэс ўжо завершаны з пункту зору бізнеса.
Anthropic / Bedrock : total_input = base + cache_read + cache_write
OpenAI / Gemini / Azure : total_input = base
uncached = base − cache_read − cache_write
Чатыры інварыянты, якіе выловляюць багі, якія не даюць сябе пазнакаць
Для чатырох інварыянтав, які контролююць стадыю, неабяжна практыка з’явіць вхідныя даны, абавесніка крока і крэтырыя выходу пры перадзеіснавленні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю без адгадвання захаванага стану. Конфігурацыю трэба знаходзіць за межамі коду прыкладнення. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцый належаць у аднам месца, якое аператары можаць пераглядаць без чытання всіх элементаў сістэмы. Неабяжна прысваяць людскія апраўды для рэшта, якіе выкарыстоўваюць грошы або зменяюць даны у працэсе. Компіляцыйныя налашчанні не ўзначаюць павнае адпрацоўванне бізнес-процэсаў. Для чатырох інварыянтав, які контролююць стадыю, неабяжна практыка з’явіць вхідныя даны, абавесніка крока і крэтырыя выходу пры перадзеіснавленні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю без адгадвання захаванага стану. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына нехтарактару должна вказываць на адну конкрэтную абавесніка, а не на множыцю фактораў.
Этап практычнае рэалізацыі.
Цыфры на панелі керування
Калі працюеце над даным этапам, спачатку запісайце умовы контракту: неабяжлівыя даныя, сігнал успеху і тое, што выканаецца у разы ў частковай нявыполненасці. Такі спіс пераканае ў тым, што пазнейшыя змены коду буду чыстымі. Спрэцьвачаеце гэты этап як контракт межу вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце крытэрыя успеху і не падзволяйце частковай завершэнню без адпаведных падтверджэнняў. Зробіце перапытку пасля дорогіх крокаў. Сістэма вярнення не павінна зноў ставіць плату за той самы вызов LLM, калі аператар пракушае працу з наступным вузлам.
Тры апавешчэння, якія павінны паставіць вас у ведамасць
Калі працюеце над трыма сігналамі абяронення, якія павінны быць выдааныя, спачатку запісайце умовы контракту: неабяжныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс контроля дапамагае заліцвачыць змяны ў кодзе правядама.
Тэлеметрыя прыгадвае, а рахунак фіксуе
Калі працюеце над тым, каб Telemetry прагнозавала стадыю вырачунку рахунка, спачатку запісайце умовы дагавору: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага абякання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Зберагайце настройкі параду ўнутрь коду прыемленае. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аўдыт без неабяжлівага чытання всей структуры. Ставьце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення працы не должна знову вырачунваты кашт за той самы вызов LLM, калі аператар перапрыямляе працу да наступнага элемента. Калі працюеце над тым, каб Telemetry прагнозавала стадыю вырачунку рахунка, спачатку запісайце умовы дагавору: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага абякання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Валічыце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок абякае, прычына абякання должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаную ланцюгову структуру.
Калі кэш не працюе, продовжыце аддачу
Этап «Калі кэш не працюе» работае наяўней, калі яго спрыяваць як мерыемую структуру. Запісаце адны ідэальны прыклад, адну сітуацыю абярошчэння і прыметкі па поверненню да пачатковага стану пры расшырэнні масштаба. Спрыявайце этап як даговор между вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце крытэрыя успеху і не прымайце часткова завершаныя рэзультаты без паведамлення. Зберагачыце стан графа ў простам і тыпаванам фармаце. Вярнутыя структуры дадзення маскуюць інфармацыю пра тое, які вузел запісаў кожны поле, і спакшуюць возз'яджанне пасля перарываў.
Безпека — частка дызайну, а не дадатковая элемент
Безпека ў рамках працы на этапах працюе найкрашча, калі яе розглядаюць як вімерную характэрыстыку. Запісайце адны «золаты» прыклад работы, адну справу аб неудачы і прыметкі па поверненню да попярэдня стану пры расшырэнні масштаба. Запісвайце часы выканання і косты токеноў аб запытак праза функцыйнае рэзультат. Відкрытыя даныя пра косты заранее запобегаюць неспакоўным рахункам, калі працэс пераходзіць з дэмовай асяроддзя ў спяльнаныя сераўеры. Храніце стан графаў у простам і тыпаваным фармаце. Вкладзеныя блокі маскуюць інфармацыю пра тое, які вузел запісаў які поле, і спакшваюць продажчэй вярнуцца да працы пасля перарываў.
Шаблоны дызайну
Этап шаблонаў дызайну працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зберагуце адны ідэальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба. Размешчайце настройкі за межамі коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх элементаў. Дзеянне графа должна быць простай і тыпаванай. Вярнутыя структуры маскуюць інфармацію пра тое, які вузел запісаў які поле, і спакоююць продажчыку пасля перэрываў. Этап шаблонаў дызайну працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зберагуце адны ідэальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісьце крока не выходзіць, неудача должна адносіцца да адной відпаведальнасці, а не да заплутанага ланцоўка дзеянняў.
Анты-шаблоны
У стадыі анты-шаблонам неабяжна ўскладнення: паказваць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы схованы стан. Спрыяць гэтую стадыю як даговор межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, паказваць крытэрыя успеху і адмовіцца ад тыхнага частковага завершэння без паведамлення. Заставіць людзкую апраўду ў тых моментах, калі выконваюцца вітраты або зміняюцыся даны для працы. Компіляцыйныя налашчэння не ўзроўнаўцуюцься з пачатковым станом бізнесу.
Вывад
Для этапы вынесення на вікорыстоўванне неабходна перад змянай коду вызначыць параметры вхідных дадзеных, адпаведальнага за крок і крытэрыя завершэння. Аператары должны магчымае перадзваніць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць трэба час выканання і вартасць токенаў або запытак праза функцыйнае рэзультат. Відкрытая візуалізацыя вартасцей запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя асяроддзя. Неабходна людская апрацоўка тых крокаў, якія выкорыстоўваюць грошы або зміняюць даны ў працэсе. Працэс складання коду не ёсць гарантыяй яго повнай адпаведнасці выкананню бізнес-трэбаванняў.
Чэк-ліст для эксплуатацыі
Працюючы над чэк-лістам для эксплуатацыі, спачатку запісваюць умовы: неабходныя вхідныя даны, сігнал успеху і тое, што выканаецца у разе частковай нявыполненасці. Такі чэк-ліст дапамагае заставаць пасляэтапныя змены коду чыстымі і працэсабельнымі.
Запісвайце адно часовы шлях і шлях вярнення ў нормальны стан. Практыкі перапрыбутку, людзкія контралеры і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней.
Зробіце контрольны пункт пасля дорогіх крокаў. Функцыя продазвучання не должна знову нараховваць плата за той самы вызыв LLM, калі аператар перапрыбуе пазнейшы вузел.
Зафіксавайце версіі залежнасцяў і запісвайце хэш адпаведнага зображэння, якое вікорыстоўвалася для дэманстрацыі. Возможнасць перадарабаткі важлівейшая за традыцыйныя знання.
Валічыце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок збягае, прычына бягу должна быць відносаваная да адной конкрэтнай адпаведальнасці, а не да заплутанага ланцоўка дзеянняў.
Зробіце контрольны пункт пасля дорогіх крокаў. Функцыя продазвучання не должна знову нараховваць плата за той самы вызыв LLM, калі аператар перапрыбуе пазнейшы вузел.
Перш чым запускаць апгрэйд, заморозьце версіі, зафіксавце «золаты» транскрыпты для крытычных частакаў і паверыце крокі абвяртання. У спадзеленых срэдах неабходны ліміты частоты, перакананні ў належнасці і чысты власнік для ротацыі секрэтных даных. Валіце надзейнасць працы над хітрымі разовымі дэманстрацыямі.
Прыметка для 77c55b276160: не кладзіце ключы прадаўцаў у рэпазітарый, задаце верхнюю межу токенаў на сесію і зберагачыце транскрыпты празаўсёды з фікстурамі eval, каб пазнейшыя замены модэляў заставаліся порównанневымі.