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

Практычныя нататкі: GUI для базы даных, які таксама вызначае, што можна AI-агенту

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

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

Крыніцы: A Database GUI That Also Governs What Your AI Agent Is Allowed to Touch

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

Семь баз дадзеных, адна натыўная бінарная файлавая структура

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

Праўdziвае Native, а не веб-відображэнне ў вікнах

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

Сервер MCP, пабудованы безпосерэдна ў кліент

Этап «An MCP Server Built» працюе найкрашча, калі яго розглядаць як меркавыя плошча. Зберагучы адны ідэальны прыклад працы, адны прыклад неудачы і запіс пра відкат, спачатку трэба расшырыць сферу дзеяння. Запісваючы часы выканання і вартасць токеноў або запытаў, трэба таксама фіксаваць функцыональныя рэзултаты. Візуабельнасць вартасцей з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмовай асяроддзя ў спакульную. Трэба выклікваць інструменты з вузкімі схемамі і чысткімі пазначэннямі побачных эфектаў. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны автаматычна схваляюць іх. Этап «An MCP Server Built» працюе найкрашча, калі яго розглядаць як меркавыя плошча. Зберагучы адны ідэальны прыклад працы, адны прыклад неудачы і запіс пра відкат, спачатку трэба расшырыць сферу дзеяння. Трэба адночасна задокументаваць шлях успеху і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней.

Пятнацаць інструментоў, арганізаваных у пяць рангаў дазволаў

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

connection: production-orders (read_only)
tool: execute_write_query
result: rejected — SQL sanitizer detected an UPDATE statement
        in a connection scoped to read_only mode

Слоі безпекі, якія стояць за кожным вызовам інструменту

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

Полны, можна пераглядаць ліст таго, што насправды зрабіў агент

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

sh.

AI-чат, які розумеюць асалютную структуру

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

Даны аб’явлення, якія ніколі не выходзяць за межы апарата

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

Дыяграма ER, чытаная безпосерэдна з жывага схематызму

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

Прыгожы рэдагувальнік і сетка дадзеных

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

Безпечны доступ да баз дадзеных праз сетка

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

Архіваўанне і вярнэнне да пачатковага стану: правільны спосаб для кожнага двыжка

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

Перанесенне існуючых звязей з іншых інструментаў

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

Запуск Gridex

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

git clone https://github.com/gridex/gridex.git
cd gridex
swift build
.build/debug/Gridex
./scripts/build-app.sh
open dist/Gridex.app
git clone https://github.com/gridex/gridex.git
cd gridex
cmake -S linux -B linux/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build linux/build --parallel
./linux/build/gridex

Чыстая, шаровая архітэктура ў основе

Для этапы A Clean Layered Architecture неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавайнага рэжыма ў спакульнае сераўерское сэрвіса. Заставьце людзкую апраўдку на тых кроках, якія выкарыстоўваюць грошы або зміняюць даны ў працэсе. Працэс складання коду не ўзначае повнайсткіўнасці бізнес-функцыйоналу. Для этапы A Clean Layered Architecture неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Дакументавайце як «шчаслівы» шлях, так і шлях вяснавання проблем. Перапрыбуткі, людзкія контрольныя пункты і обработка некорэктных запытаў ёсць часткай продукту, а не чымсь, што дадаецца пазней.

Заключэнне

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

Чэк-ліст для эксплуатацыі

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

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

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

Напісце кароткі путаводзік: як зменяць клучы, як спрачыслаць чэргу, як анулюваць пярэдніе змены.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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