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

Чаму AI-агенты не функціонуюць у практычным вікорыстанні: пояснення інжынерыі крэплень.

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

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

Крыніцы: Harness Engineering: Understand this will make your AI Agent performs better than 80% of others.

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

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

Тры стадзіі работы з LLM-мадэлямі

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

Першы ўрад: інжыніерыя запітаў

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

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

Другі ўрад: інжыніерыя кантэксту

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

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

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

Трэці этап: інжынерыя кантролю

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

Ментальная мадэль: агент = мадэль плюс кантрольна сістэма

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

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

  • Прампты — гэта праграма зустрочы: прывітанне, прэдставленне продукту, запітанні ўсупершце.
  • Кантэкст — гэта інформацыя па абставінах: історыя супрацоўкі з кліентам, каталог цэнаў і цілі зустрочы.
  • Інструментарыя — гэта рэшта: чак-ліст, які ўзяў з сабой колега, пераконтроль з вамі на паўшляху, аудыязапіс размовы, спосаб праверкі, калі ён адхіляецца ад плану, і крытэрыя апраўдкі звычайнага справаздачы пра зустроч.

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

Шасць слоёў зрэлага інструментарыя

Інструментарыя — гэта не адна файлавая структура чы проста хітрая обгортка. Яна складаецца з слоёў, і кожны слой адпавядае за певны тып неудач.

Слоёў 1: межы інформацыі

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

2-й шар: сістэма інструментаў

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

Сістэма керавання должна контролюваць момент выкарыстоўвання інструментаў, а не толькі тое, якія з іх існуюць. Яна павінна не дазваляць модэлю здагадвацца, калі яму трэба шукаць, і шукаты тады, калі ён вяснае адразу. І ўсё ж існуе адна правіла без выключэнняў: не падаюць сырыя рэзультаты інструментаў працоючы безпосерэдна да LLM. Адказ у фармаце JSON з 50 элементамі, які надае API, пасвячвае кантэкст. Перад тым, як модэль іх побачыць, неабходна фільтрацыя, аналіз і стварэнне кантакту.

Слой 3: оркестрацыя выкарыстоўвання

Модэлі часта не дасягаюць успеху не з-за браку адзінаковых навыкаў, а таму, што не могуць ўпорадкуваць іх у ланцюг. Яны працуюць у стылі потоку свядомасці, пералетваючы між крокамі, прахоўваючы перакананні і ствараючы адказы раней, чым маюць неабходную інфармацыю. Сістэма керавання встановляе часткавыя правіла: з’ясаваць мету, адначыць, якая інфармацыя ў наявнасці, запрашаць тое, чаго не хапяе, аналізаваць, ствараць, пераканацца, а пасля — выдаць рэзультат.

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

Слой 4: памяць і стан

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

  1. Тэкучы стан задання — які крок ў выпало, што застаецца незавершаным і што ужо падтверджана.
  2. Узлёктныя выводы з гэтай сесіі.
  3. Даўгастраўная памяць і прафілі корыстніка, такія як прыямліванні і кантэкст, які застаецца незмянным між сесіямі.

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

Слой 5: ацэнка і спостэрагальнасць

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

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

Шырокаслойнасць 6: абмежэнні, верыдабельнасць і вярненне

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

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

Трывога ў кантэксце

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

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

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

Раздзелэнне генеравання і ацэнкі

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

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

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

    Дзе насправды знаходзіцца межа

    Інтэлігэнцыя мадэлі-фундаменту задае тэорычны ліміт у рэйтынгу параграфаў. Тое, насколькі добра спраектавана сістэма падтрымкі, вялічыць, чы можа гэтая інтэлігэнцыя выжыць, восстанавіцца і прыносіць корысту ў складных рэальных умовах. Пасля певнага рэвэлю мадэль больш не ёсць вузкам местам. Разлік межа 70% і 95% рэйтынгу успеху, які таксама ёсць разлікам межа дэмаверзіяй і готоваг продукту, знаходзіцца ў самай сістэме падтрымкі.