Практычныя прытамулкі: Проектаванне кэша для агентаў AI: Кэшаванне ўнутрь ціклу
Практычныя прыказкі: Проектаванне кэша для агентаў AI: Кэшаванне ўнутрь ціклу: контракты, пераканання і слоты для коду для команд, якія викорыстоўваюць гэты патэрн.
У гэтым карыце парадоксальны спосаб перадбудаваець шлях ад сыр'ёў да рабочай системы для: Проектавання кэша для агентаў 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: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага зьязку, а пасля, на аднойчынай базе фіксаваных пытанняў, а не на індывідуальных прыкладах, выявіце, чы хацеце застаўіць гэтыя змены.