Практычныя прытамулі: Лепшая база дадзеных для агентав, якія кодуюць? Postgres для стану.
Практычныя прытамулкі: Які лепшы база дадзеных для стварэння агентав? Postgres для рэжыму: кантракты, перакрыцця і месца для коду для команд, якія выкарыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з артыкула “Найлепшая база дадзеных для агентаў-кодавальнікаў? Postgres для стану, Weaviate для вярнення дадзэных”: чыстыя этапы, аранжаваныя блакі для коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Этап “Агульныя відзнакі” найэфектывней працюе, калі яго розглядаць як меркаваную плошчу. Запісайце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычым расшырэння масштаба. Запісвайце часы виконання і косты токенавання або запытак праза функцыйнальныя рэзултаты. Відразувая візуабільнасць костаў запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Простае адказ: выберыце PostgreSQL як систему для зберагання дадзэных
Для адаптавання коду спачатку трэба выбраць стадію, задаць неабяжлівыя даны, адпаведнага власніка крока і критэрыя завершэння. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначальна ад коду прыкладнення. Файлы сераўнавання, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць адбавіць аудыт, не чытаючы весь ланцуг задач. Пры выконанні дзеянь, якія коштуюць грошы або зменяюць даны у працэйнай сістэме, трэба выкарыстоўваць людскія падтверджэння. Прыўязка на час компіляцыі не є гарантіяй полнай адпаведнасці з бізнес-трэбованнямі.
Чаму стан выконання агента ёсць проблемай з вазносамі
Для стадії виконання агента «Why» неабяжна практыка — з’явіць вхідныя даны, абонента крока і крэтыры завершэння прычым перад зменой коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы схованы статус. Неабяжна аддактувацыя документаў пра стандартны і альтэрнатывны падходы. Практыка перапрыбуткі, людзкія пераказы і обробка некоректных паведамленняў є часткай продукту, а не дадатковым элементам пасля його стварэння. Неабяжна людзкая апраўка тых крокаў, якія ведуць да выдаткаў грошаў або змяні дадзеных у прыемным режыме. Кампіляцыйныя налашчэнні не є гарантыяй полнай адпаведнасці продукту бізнес-трэбованням.
Іспользуйце JSONB для эвалюяцыі, а не як выправданне для адмовы ад структуры
Для выкарыстоўвання JSONB у стадзіі эвалюяцыі, перш чым зменіць код, неабходна задаць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння. Аперацыёныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес. Заставіць людзкую апраўдку для тых крокоў, якія выкарыстоўваюць грошы або зменяюць даны ў працэсе виробніцтва. Компіляцыйныя налашчэння не ўзроўнаўваюцца з повнай стопамі бізнес-процэсаў. Для выкарыстоўвання JSONB у стадзіі эвалюяцыі, перш чым зменіць код, неабходна задаць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння. Аперацыёныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісваць час выконання і вартасць токенаў аб запытоў разам з функцыйнальнымі рэзультатамі. Відкрытая візуабілізацыя вартасцей запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай версіі ў спяльнае сераўерное сэрא.
Це.
Зберагаюце логі і артыфакты па прынцыпах их доступу
Калі працуеце на стадыі зберагача логаў і артыфактав, спачатку запісайце умовы викорыстання: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список контролю дапамагае заліцвачыць змяны ў кодзе. Канфігурацыю трэба зберагаць паза кодам прыемліка. Файлы сераўнавання, хранілішчы секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабходнасці чытання всей структуры. Зрабіце контрольны пункт пасля дорогіх крокаў. Функцыя вярнення до роботы не должна занова ставіць плату за той самы вызов LLM, калі аператар перапрыяўляе роботу да наступнага элемента.
Проектуйце так, каб было можна перапрыяўляць роботу, працаваць паралельна і восстанавляць стан
Калі працюеце над стадзіяй «Дыяграма для павтаральных спроб узгадкі» (Design for retries concurrency), спачатку запісайце умовы працы: неабяжлівыя даннэ, сігнал успеху і тое, што выканаецца у разы частковага нявыпалення. Такі список контроля дапамагае заліцьварыць пасляэйшныя змены коду. Документавайце адночасна шлях успеху і шлях вяснавання. Павтаральныя спробы, людзкіе контрольныя пункты і обработка некоректных паведамленняў ёсць часткай продукту, а не элементамі пасляэйшнага дапрацоўкі. Зробіце контрольны пункт пасля дорогіх крокаў. Система вярнення не павінна знову ставіць плату за той самы вызов LLM, калі аператар павтарае спробу з пазнейшага вузла.
Дзе Weaviate становіцца найкращым шаром адзысквання дадзеных
Калі працуеце над тым, каб Where Weaviate стала сцэнай, спачатку запісацеце кантракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптов. Калі якісь крок не выйшае, нявыпанне должна паказваць на адну адпаведальнасць, а не на заплутаны ланцужок задач. Перад налаштаваннем запитоў пераканайцеся ў рэкале на фіксованым наборы пытанняў. Частае змена запитоў рэдка калі-небудзь выправляе слабую систему пошуку. Калі працуеце над тым, каб Where Weaviate стала сцэнай, спачатку запісацеце кантракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувыя данні пра косцы запобегаюць неспакойным рахункам, калі праця пераходзіць з дэмаверсіі ў спакульнаныя сераўысы.
Практычная архітектура для справак
Этап практычной архітектуры для справак працюе найкраща, калі яго розглядаюць як меруючую плошчу. Запісаўце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па анулюванні змян перад расшырэнням масштаба. Зберагачце настройкі паза кодам прыемлена. Файлы серавэра, хранільнікі секретных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць аудытуваць іх без неабяжнага чытання всіх элементаў структуры. Зберагачце стан структуры у простам і типаваным формате. Вкладныя блокі маскуюць інфармацыю пра тое, який вузел запісаў які поле, і спакоююць працэс пасля перерываў.
Што не трэба оптымізаваць занадта рано
Этап «Чаго не трэба оптымацаваць» работае наўжоўдзей, калі яго спрыятаць як мерыемую паверхню. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Храніце стан графа ў простым і типаваным формате. Вярнутыя блокі маскуюць, калькі вузел напісаў калькі поль, і спакойваюць працу пасля перарываў.
Спіс пунктав для прыняцьбы рашэння
Этап перагляду спіску рашынакоў працюе найэфектывней, калі яго спрыяваць як мерыемую паверхню. Зберагачыце адны ідеальны прыклад роботы, адзін кейс неудачы і прыметкі па адвярненню роботы пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэжым графа павінен быть простым і з адначытаемымі дадзенымі. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшуюць продовжэння роботы пасля перарываў. Этап перагляду спіску рашынакоў працюе найэфектывней, калі яго спрыяваць як мерыемую паверхню. Зберагачыце адны ідеальны прыклад роботы, адзін кейс неудачы і прыметкі па адвярненню роботы пры расшырэнні масштаба. Запісвайце часы виконання і косты токеноў або запытак праза функцыйнае рэзультаты. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Часта задаваемыя запытанні
Для раздзела з частымі запытаннямі неабяжна пазначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перадзеіснавленні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не прабуючы спадарожваць схованы стан. Конфігурацыю трэба залічыць пазначальна ад коду прыкладнення. Файлы сераўнавання, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Пры выконанні операцый, якія купуюць грошы або зменяюць даны ў працэсе, неабяжна выкарыстоўваць людскія апраўды. Прыłąчэння на этапе компілявання не ўзроўнаўваецца з повнай адпаведнасцю бізнес-процэсаў.
Чы хутчэй кодавальнаму агенту выкарыстоўваць базу дадзеных типу вектара як свой главны бэкенд?
Для кожнага этапу кодавання неабяжна ясная прызначэнне вхідных дадзеных, адпаведальнага за ўраджэнне гэтага этапу і крэатарыяў завершэння працы перад зменым коду. Аператары павінны магчымаецца перзапускаць этап з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, пераказы людзям і обробка некоректных паведамленняў є часткай продукту, а не яго пазнейшай дапрацоўкі. Неабяжна атрымаць пашчатковую згоду людзяў для тых крокаў, якія ведуць да выдаткаў грошэй або зменыння дадзеных у працы. Кампіляцыйныя налашчэння не є гарантыяй полнай адпаведнасці продукту выкананню бізнес-трэбаванняў.
Чы рэшае PostgreSQL JSONB задачу хранення метададзеных агента?
Для етапу «Is PostgreSQL JSONB enough» неабяжна ўзначэнне вхідных дадзеных, адпаведальнага за крок і крэтарыяў завершэння працы перад зменыма коду. Аперацыйныя працавнікі должны магчыма было перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптаў. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес. Заставіць людзкую апраўдку для тых крокоў, якія выкарыстоўваюць грошы або зміняюць даны ў працэсе. Працэс кампілявання не є гарантыяй полнай адпрацоўкі задачы. Для етапу «Is PostgreSQL JSONB enough» неабяжна ўзначэнне вхідных дадзеных, адпаведальнага за крок і крэтарыяў завершэння працы перад зменыма коду. Аперацыйныя працавнікі должны магчыма было перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выконання і вартасьць токенаў аб запытоў разам з функцыйнальнымі рэзультатамі. Відразлівасьць вартасцей з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльную.
Рэгламенты.
Калі трэба дадзіць Weaviate?
Калі працуеце над этапам «Калі трэба дадзіць», спачатку запісайце контракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі чэк-ліст дапамагае заставаць змяны коду чыстымі. Зберагайце настройкі параду ўнутры коду аплікацыі. Файлы сяродавішча, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць аудытаваць іх, не чытаючы весь граф. Зробіце контрольны пункт пасля дорогіх крокаў. Система вярнення не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыяўляе пазнейшы вузел.
Чаму использоваць гібрыдны пошук для логаў выканання?
Калі працюеце над этапам «Чаму выкарыстоўваць гібрыдны пошук», спачатку запісайце умовы кантракту: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковай нявыполненасці. Такі список пераканае ў тым, што пазнейшыя змены коду будуць чыстымі. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не пазнейшым дапрацоўкам. Стварайце контрольныя пункты пасля дорогіх крокаў. Система вярнення роботы не должна знову ставіць плату за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.
Апошняя рэкамендацыя
Калі працуеце на стадыі заканчальных рэкамендацый, спачатку запісайце умовы дагавору: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста.
Контрольны список для эксплуатацыі
Калі працюеце над стадзіяй Кантрольнага списку, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Шыры ўсё гэта дапамагае заліцвачваць пазнейшыя змены коду.
Спрыятліваеце гэтую стадзію як контракт межа данымі і перакананымі выходамі. Дайце назвы элементам, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Зробіце кантрольную паузу пасля дорогіх крокаў. Система вярнення не павінна зноў нарахоўваць кашты за той самы вызов LLM, калі аператар прабуе зноў запрацаваць пазнейшы вузел.
Фіксуйце версіі залежнасцяў і запісвайце хэш адобраза, які выканаў дамэ. Возможнасць павторнага стварэння результатаў лепшая за традыцыйныя знання.
Запісвайце час выконання і кашты на токены або запиты разам з функцыйнальнымі рэзултатамі. Відразы каштоўнасці з самага пачатку запобегае неспакойным нарахоўкам, калі процес пераходзіць з дамэ ў спяльныя среды.
Пауза пасля дорогіх крокаў. Система адновлення не должна занова стягуваты плата за той самы вызыв LLM, калі аператар прабуе зноў запрацаваць пазнейшы вузел.
Перад паўзачэнням на вышэйшы рывень неабходна заморазіць версіі, зафіксаваць «золаты» транскрыпт для критычнага шляху і падтвердзіць крокі для вярнення да пачатковага стану. У спільных середовісках трэба встановіць ліміты швайнаў, пераканацца ў належнасці ресурсаў і вказаць чысткага адпаведальнага за зміны секрэтных даных. Краща простая надзеянасць на стабільнасць, чым хітрыя експерыменты, якія выкалічваюцца разова.
Прымечанне для пакету 6247b44225a3: не трэба клаць ключы прадастальцаў у репазітары, встановіць ліміт токена на кожную сесію і зберагчыць транскрыпты разам з елементамі для адгукнення, ўблізу якіх будуць выкарыстоўваны моделі, каб пазнейшыя замены модэляў заставаліся пораўнанымі.