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

Практычныя нататкі: шматагентная AI-платформа, частка 5 — пласт успрымання

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

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

Крыніцы: Engineering a Multi-Agent AI Platform — Part 5: The Perception Layer

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

Звідзе беруцца сігналы?

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

Шэсць модэляў, адна паведамленне, нуль последовных залежнасцей

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

Рэйтынг фрустрацыі

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

frustration = 0.45 × norm_sentiment + 0.55 × (anger + disgust)
frustration = 0.3 × norm_sentiment + 0.4 × (anger + disgust) + 0.3 × (1 - stt_confidence)
norm_sentiment = (-0.72 × -1 + 1) / 2 = 1.72 / 2 = 0.86
frustration = 0.3(0.86) + 0.4(0.61 + 0.23) + 0.3(1 - 0.78)
           = 0.258 + 0.336 + 0.066
           = 0.66
frustration = 0.45(0.86) + 0.55(0.61 + 0.23)
           = 0.387 + 0.462
           = 0.849
new_score = 0.7 × current_score + 0.3 × normalized_latest

Грацыязны спад: калі этапы не работаюць

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

Автаразьбійнікі па этапам

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

| Stage | Failures to open | Recovery timeout |
| ------- | ----------------- | ----------------- |
| Safety (LlamaGuard) | 3 | 30 seconds |
| Intent (DeBERTa) | 5 | 60 seconds |
| Entity extraction | 5 | 60 seconds |

Локальнае рашэння проты хмарнага: пераключальнік аналізу

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

if INFERENCE_MODE == "cloud" and HF_TOKEN exists:
    use HuggingFace Inference API URL
else:
    use local container URL
| Mode | p50 latency | p95 latency | Cost per 1K messages |
| ------ | ------------- | ------------- | --------------------- |
| Local (GPU) | 180ms | 320ms | ~$0.12 (amortized infra) |
| Cloud (HF API) | 340ms | 580ms | ~$0.08 (pay-per-call) |

Як спрыянне спраўжняе ўсё па лініі

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

Паведамленне па лініі апрацоўкі

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

norm_sentiment = (-0.38 × -1 + 1) / 2 = 1.38 / 2 = 0.69
frustration = 0.45(0.69) + 0.55(0.12 + 0.04) = 0.311 + 0.088 = 0.399
C(x) = 0.30(0.6) + 0.20(0.3) + 0.20(0.5) + 0.15(0.5) + 0.15(0.7)
     = 0.18 + 0.06 + 0.10 + 0.075 + 0.105
     = 0.52

Серыя

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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