ai-agents-for-beginners

AI агенти у продукцији: Опсервабилност и евалуација

AI агенти у продукцији

Како AI агенти прелазе из експерименталних прототипа у стварне апликације, способност разумевања њиховог понашања, праћења њиховог учинка и систематске евалуације њихових резултата постаје веома важна.

Циљеви учења

Након завршетка ове лекције, знаћете како да/разумете:

Циљ је да вас опремимо знањем које ће трансформисати ваше “црне кутије” агенте у транспарентне, управљиве и поуздане системе.

Напомена: Важно је поставити AI агенте који су безбедни и поуздани. Погледајте лекцију Изградња поузданих AI агената за више информација.

Трагови и распони

Алатке за опсервабилност као што су Langfuse или Azure AI Foundry обично представљају рад агента као трагове и распоне.

Дрво трага у Langfuse

Без опсервабилности, AI агент може изгледати као “црна кутија” - његово унутрашње стање и размишљање су непрозирни, што отежава дијагностику проблема или оптимизацију учинка. Уз опсервабилност, агенти постају “стаклене кутије,” пружајући транспарентност која је кључна за изградњу поверења и осигурање да раде како је предвиђено.

Зашто је опсервабилност важна у продукцијским окружењима

Прелазак AI агената у продукцијска окружења доноси нове изазове и захтеве. Опсервабилност више није “лепо имати,” већ критична способност:

Кључне метрике за праћење

Да бисте пратили и разумели понашање агента, треба пратити низ метрика и сигнала. Иако специфичне метрике могу варирати у зависности од сврхе агента, неке су универзално важне.

Ево неких од најчешћих метрика које алатке за опсервабилност прате:

Кашњење: Колико брзо агент одговара? Дуга времена чекања негативно утичу на корисничко искуство. Треба мерити кашњење за задатке и појединачне кораке праћењем рада агента. На пример, агент који узима 20 секунди за све позиве модела могао би се убрзати коришћењем бржег модела или паралелним извршавањем позива модела.

Трошкови: Колики је трошак по раду агента? AI агенти се ослањају на LLM позиве који се наплаћују по токену или екстерне API-је. Честа употреба алата или више упита може брзо повећати трошкове. На пример, ако агент позива LLM пет пута за маргинално побољшање квалитета, морате проценити да ли је трошак оправдан или можете смањити број позива или користити јефтинији модел. Праћење у реалном времену такође може помоћи у идентификацији неочекиваних скокова (нпр. грешке које узрокују прекомерне API петље).

Грешке у захтевима: Колико захтева је агент није успео да обради? Ово може укључивати API грешке или неуспеле позиве алата. Да бисте учинили агента робуснијим у продукцији, можете поставити резервне опције или поновне покушаје. На пример, ако је LLM провајдер A недоступан, можете се пребацити на LLM провајдера B као резерву.

Повратне информације корисника: Имплементација директних евалуација од стране корисника пружа вредне увиде. Ово може укључивати експлицитне оцене (👍палац горе/👎доле, ⭐1-5 звездица) или текстуалне коментаре. Конзистентно негативне повратне информације треба да вас упозоре јер су знак да агент не ради како се очекује.

Имплицитне повратне информације корисника: Понашања корисника пружају индиректне повратне информације чак и без експлицитних оцена. Ово може укључивати моментално преформулисање питања, поновљене упите или кликање на дугме за поновни покушај. На пример, ако видите да корисници више пута постављају исто питање, то је знак да агент не ради како се очекује.

Тачност: Колико често агент производи исправне или пожељне резултате? Дефиниције тачности варирају (нпр. исправност решавања проблема, тачност преузимања информација, задовољство корисника). Први корак је дефинисање шта успех значи за вашег агента. Можете пратити тачност путем аутоматизованих провера, евалуационих оцена или ознака завршетка задатка. На пример, означавање трагова као “успешно” или “неуспешно.”

Аутоматизоване метрике евалуације: Можете поставити и аутоматизоване евалуације. На пример, можете користити LLM за оцењивање резултата агента, нпр. да ли су корисни, тачни или не. Постоји и неколико open source библиотека које помажу у оцењивању различитих аспеката агента. На пример, RAGAS за RAG агенте или LLM Guard за откривање штетног језика или убризгавање упита.

У пракси, комбинација ових метрика пружа најбољу покривеност здравља AI агента. У примеру нотебука у овом поглављу, показаћемо вам како ове метрике изгледају у стварним примерима, али прво ћемо научити како изгледа типичан радни ток евалуације.

Инструментујте вашег агента

Да бисте прикупили податке о траговима, потребно је да инструментујете ваш код. Циљ је инструментовати код агента да емитује трагове и метрике које могу бити прикупљене, обрађене и визуализоване од стране платформе за опсервабилност.

OpenTelemetry (OTel): OpenTelemetry је постао индустријски стандард за опсервабилност LLM-а. Пружа сет API-ја, SDK-ова и алатки за генерисање, прикупљање и извоз телеметријских података.

Постоје многе библиотеке за инструментовање које обавијају постојеће оквире агената и олакшавају извоз OpenTelemetry распона у алатку за опсервабилност. Испод је пример инструментовања AutoGen агента уз OpenLit библиотеку за инструментовање:

import openlit

openlit.init(tracer = langfuse._otel_tracer, disable_batch = True)

Пример нотебука у овом поглављу демонстрираће како да инструментујете вашег AutoGen агента.

Ручно креирање распона: Док библиотеке за инструментовање пружају добру основу, често постоје случајеви када је потребно више детаљних или прилагођених информација. Можете ручно креирати распоне да додате прилагођену логичку апликацију. Још важније, можете обогатити аутоматски или ручно креиране распоне прилагођеним атрибутима (познатим као ознаке или метаподаци). Ови атрибути могу укључивати пословно специфичне податке, интермедијарне прорачуне или било који контекст који може бити користан за дебаговање или анализу, као што су user_id, session_id или model_version.

Пример креирања трагова и распона ручно уз Langfuse Python SDK:

from langfuse import get_client
 
langfuse = get_client()
 
span = langfuse.start_span(name="my-span")
 
span.end()

Евалуација агента

Опсервабилност нам даје метрике, али евалуација је процес анализе тих података (и спровођења тестова) како би се утврдило колико добро AI агент ради и како се може побољшати. Другим речима, када имате те трагове и метрике, како их користите да процените агента и донесете одлуке?

Редовна евалуација је важна јер су AI агенти често недетерминистички и могу се мењати (кроз ажурирања или промене у понашању модела) – без евалуације, не бисте знали да ли ваш “паметни агент” заиста добро обавља свој посао или је регресирао.

Постоје две категорије евалуације за AI агенте: онлајн евалуација и офлајн евалуација. Обе су вредне и допуњују једна другу. Обично почињемо са офлајн евалуацијом, јер је то минимални неопходни корак пре постављања било ког агента.

Офлајн евалуација

Ставке датасета у Langfuse

Ово укључује евалуацију агента у контролисаном окружењу, обично користећи тест датасете, а не упите уживо од корисника. Користите куриране датасете где знате шта је очекивани резултат или исправно понашање, а затим покрећете вашег агента на њима.

На пример, ако сте направили агента за решавање математичких проблема, могли бисте имати тест датасет од 100 проблема са познатим одговорима. Офлајн евалуација се често спроводи током развоја (и може бити део CI/CD процеса) да би се проверила побољшања или спречиле регресије. Предност је што је поновљива и можете добити јасне метрике тачности јер имате основну истину. Могли бисте симулирати корисничке упите и мерити одговоре агента у односу на идеалне одговоре или користити аутоматизоване метрике као што је описано горе.

Кључни изазов код офлајн евалуације је осигурање да ваш тест датасет буде свеобухватан и остане релевантан – агент може добро радити на фиксном тест сету, али наићи на веома различите упите у продукцији. Због тога би требало да ажурирате тест сетове новим граничним случајевима и примерима који одражавају сценарије из стварног света​. Микс малих “smoke test” случајева и већих сетова за евалуацију је користан: мали сетови за брзе провере и већи за шире метрике учинка​.

Онлајн евалуација

Преглед метрика опсервабилности

Ово се односи на евалуацију агента у живом, стварном окружењу, тј. током стварне употребе у продукцији. Онлајн евалуација укључује праћење учинка агента на стварним интеракцијама корисника и континуирану анализу резултата.

На пример, могли бисте пратити стопе успеха, оцене задовољства корисника или друге метрике на живом саобраћају. Предност онлајн евалуације је што ухвата ствари које можда не бисте предвидели у лабораторијском окружењу – можете посматрати промене модела током времена (ако се ефикасност агента погоршава како се обрасци улазних података мењају) и ухватити неочекиване упите или ситуације које нису биле у вашем тест датасету​. Пружа праву слику о томе како се агент понаша у стварном свету.

Онлајн евалуација често укључује прикупљање имплицитних и експлицитних повратних информација корисника, као што је већ поменуто, и могуће покретање shadow тестова или A/B тестова (где нова верзија агента ради паралелно ради поређења са старом). Изазов

Управљање перформансама

Ево неколико стратегија за решавање проблема са перформансама AI агената:

Проблеми са моделима:

Позиви алатки AI агента не раде добро:

Систем са више агената не ради конзистентно:

Многи од ових проблема могу се ефикасније идентификовати уз помоћ система за посматрање. Трагови и метрике које смо раније дискутовали помажу у прецизном одређивању где у радном процесу агента настају проблеми, чинећи отклањање грешака и оптимизацију много ефикаснијим.

Управљање трошковима

Ево неколико стратегија за управљање трошковима приликом примене AI агената у продукцији:

Коришћење мањих модела:
Мали језички модели (SLM) могу добро функционисати у одређеним случајевима употребе агената и значајно ће смањити трошкове. Као што је раније поменуто, изградња система за евалуацију ради одређивања и поређења перформанси у односу на веће моделе је најбољи начин да разумете како ће SLM функционисати у вашем случају употребе. Размотрите коришћење SLM-а за једноставније задатке као што су класификација намере или екстракција параметара, док веће моделе резервишите за сложено размишљање.

Коришћење модела за рутирање:
Слична стратегија је коришћење различитих модела и величина. Можете користити LLM/SLM или серверлес функцију за рутирање захтева на основу сложености ка моделима који најбоље одговарају. Ово ће такође помоћи у смањењу трошкова, уз обезбеђивање перформанси за одговарајуће задатке. На пример, усмерите једноставне упите ка мањим, бржим моделима, а користите скупе велике моделе само за сложене задатке размишљања.

Кеширање одговора:
Идентификовање уобичајених захтева и задатака и пружање одговора пре него што прођу кроз ваш систем агената је добар начин за смањење обима сличних захтева. Можете чак имплементирати процес за идентификацију колико је захтев сличан вашим кешираним захтевима користећи основније AI моделе. Ова стратегија може значајно смањити трошкове за често постављана питања или уобичајене радне токове.

Да видимо како ово функционише у пракси

У примеру нотебука овог одељка, видећемо примере како можемо користити алатке за посматрање ради праћења и евалуације нашег агента.

Имате још питања о AI агентима у продукцији?

Придружите се Azure AI Foundry Discord да упознате друге учеснике, присуствујете консултацијама и добијете одговоре на ваша питања о AI агентима.

Претходна лекција

Метакогнитивни дизајн шаблон

Следећа лекција

Агентички протоколи


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.