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

Практычныя нататкі: кэш для AI-агентаў — кэшаванне ўнутры цыкла

Практычны разбор тэмы «кэшаванне ўнутры цыкла AI-агента»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.

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

Крыніцы: Designing a Cache for AI Agents: Caching Inside the Loop

У гэтым карыце парадоксальны спосаб перадбудаваець шлях ад сыр'ёў да рабочай сістэмы для: Праектавання кэша для агентаў AI: Кэшаванне ўнутрь ціклу. Акцэнт ставяцца на практычныя крокі, чысткія перакананні і код, які можна прыўязаць да рэпазітарыю без неабязковасці здогадвацца пра мету. У стадыі агляду неабходна з'явіць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння пры перадзмене коду. Аперацыйныя працавнікі должны магчымае перадзначыць крок з вядомай точкі контролю, не прабуючы здагадвацца пра схованы стан. Валідзіце маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына нехацкага рэзультата должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны працэс.

Кэш 1: рэзультаты інструментаў — прыроджваеце кэшаванне ў угоду контракту

Калі працуеце з фазай рэзультатаў інструмента Cache 1, спачатку запісайце кантракт: неабяжныя вхідныя даны, сігнал успеху і тое, што выходзіць у случае частковага няўспэху. Такі спіс пераканальвае застацца чыстасцю пазнейшых змян у кодзе. Спрыятлівае ставленне да гэтай фазы як да кантракта межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце правіла пераканання успеху і не падтрымайце частковае завершэння без адпаведных падтверджэнняў. Запісвайце назву інструмента, хэш аргументаў, час адклікання і рэзультат кожнага вызову. Без такога лёгкага следу дэбагаванне можа зайняць гады.

  TOOL: get_invoice(id)   reads: yes   freshness: 60s   invalidated_by: update_invoice
  TOOL: send_email(...)   reads: NO    → never cached

Cache 2: працэс выявлення на самай працэ ў трох кэшах

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

Кэш 3: кэшавайце план, а не адпаведзь

Калі працуеце з этапамі кэшавання Cache 3, спачатку запісайце «контракт»: неабяжлівыя даны, сігнал працэздання і тое, што выходзіць на частыя неудачы. Такі спіс контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Зберагаюце настройкі за межамі коду прыемліка. Файлы сераўнавання, храненні секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аўдыт без неабяжлівага чытання всей структуры. Стварайце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення до працы не должна занова ставіць плату за той самы вызов LLM, калі аператар перапрыямляе працу да наступнага вузла. Калі працуеце з этапамі кэшавання Cache 3, спачатку запісайце «контракт»: неабяжлівыя даны, сігнал працэздання і тое, што выходзіць на частыя неудачы. Такі спіс контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына неудачы должна вказываць на адну конкрэтную абавязак, а не на заплутаную структуру працы.

Два вызовы оркестрабілера, які таямніча падыходзяць да сумы вашага рахунку

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

  keep a tool loaded   =  tool_tokens × 0.1 × turns_left
  load it mid-stream   =  (everything after the tool block + tool_tokens) × write_rate
  it pays when   turns_left  >  12.5 × tokens_after_the_cut / tokens_removed

Пад-агенты дзеляць ваш кэш

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

Што кэшаванне ў цыкле не можа зрабіць для вас

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

Шаблоны дызайну

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

Анты-шаблоны

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

Вывад

Для этапы адаптавання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Конфігурацыю трэба залічыць паза кодам прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаючы весь ланцуг задач. Неабяжна прызначыць людскія апраўдкі для рэлейнаў, якія выкарыстоўваюць грошы або зміняюць даны у працэсе. Прыўязка на час компілявання не ёсць падтверджэннем полной адпрацоўкі бізнес-процэса. Для этапы адаптавання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Валічыць маленькія, тэставальныя елементы працэсу над велікімі скрыптамі. Калі крок не выйшоў, прычына нехарактэрнага рэзультата должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцуг задач.

Чэкліст аператыўнай працы

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

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

Зберагаюце стан графа ў простам і тыпаваным фармаце. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, які вузел запісаў кожнае поле, і спакоююць продовжэнне працы пасля перарываў.

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

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

Зберагаюце стан графа ў простам і тыпаваным фармаце. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, які вузел запісаў кожнае поле, і спакоююць продовжэнне працы пасля перарываў.

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

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

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

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