ai-agents-for-beginners

Инжењеринг контекста за AI агенте

Context Engineering

(Кликните на слику изнад да бисте погледали видео о овом часу)

Разумевање сложености апликације за коју правите AI агента је важно за прављење поузданог агента. Потребно је да изградимо AI агенте који ефикасно управљају информацијама како би одговорили на сложене потребе које превазилазе инжењеринг упита.

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

Увод

Овај час ће обухватити:

Шта је инжењеринг контекста и зашто се разликује од инжењеринга упита.

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

Често појављиване грешке у контексту које могу онемогућити вашег AI агента и како их поправити.

Циљеви учења

Након завршетка овог часа, моћи ћете да разумете како да:

Дефинишете инжењеринг контекста и разликујете га од инжењеринга упита.

Идентификујете кључне компоненте контекста у апликацијама заснованим на великим језичким моделима (LLM).

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

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

Шта је инжењеринг контекста?

За AI агенте, контекст је оно што покреће планирање AI агента да предузме одређене акције. Инжењеринг контекста представља праксу осигуравања да AI агент има исправне информације како би обавио следећи корак задатка. Величина прозора контекста је ограничена, тако да као градитељи агената морамо направити системе и процесе за управљање додавањем, уклањањем и кондензацијом информација унутар прозора контекста.

Инжењеринг упита у односу на инжењеринг контекста

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

Типови контекста

Types of Context

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

Типови контекста које AI агент може морати да управља укључују:

Упутства: Ово су као “правила” агента – упити, системске поруке, примери са мало уноса (који показују AI како да нешто уради) и описи алата које може користити. Овде се фокус инжењеринга упита спаја са инжењерингом контекста.

Знање: Ово обухвата чињенице, информације преузете из база података или дугорочна сећања која је агент акумулирао. То укључује интеграцију система за подршку у претрази (RAG) ако агент треба приступ различитим складиштима знања и базама података.

Алатке: Ово су дефиниције екстерних функција, API-ја и MCP сервера које агент може позивати, заједно са повратним информацијама (резултатима) које добија коришћењем тих алатки.

Историја разговора: Текућа дијалошка размена са корисником. Како време одмиче, ти разговори постају дужи и комплекснији, што заузима простор у прозору контекста.

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

Стратегије за ефикасан инжењеринг контекста

Стратегије планирања

Context Engineering Best Practices

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

  1. Дефинишите јасне резултате – Резултати задатака који ће бити додељени AI агентима требају бити јасно дефинисани. Одговорите на питање – “Како ће свет изгледати када AI агент заврши свој задатак?” Другим речима, каква промена, информација или одговор треба да буде доступан кориснику након интеракције са AI агентом.
  2. Картографија контекста – Када одредите резултате AI агента, потребно је одговорити на питање “Које информације AI агент треба да би завршио овај задатак?”. На тај начин можете почети да мапирате контекст где те информације могу бити лоциране.
  3. Креирајте цевоводе контекста – Сада кад знате где се информације налазе, морате одговорити на питање “Како ће агент добити те информације?”. То може бити на више начина, укључујући RAG, коришћење MCP сервера и других алата.

Практичне стратегије

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

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

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

  1. Белешке агента Ово омогућава AI агенту да прави белешке о релевантним информацијама о текућим задацима и интеракцијама са корисником током једне сесије. Оне треба да постоје ван прозора контекста, у фајлу или објекту у токуна који агент може касније да преузме током сесије ако је потребно.

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

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

  4. Системи са више агената Развој система са више агената је облик инжењеринга контекста јер сваки агент има свој прозор контекста. Како се тај контекст дели и преноси између различитих агената је још једна ствар коју треба планирати приликом изградње ових система.

  5. Песковни окружења Ако агент треба да изврши неки код или обради велике количине информација у документу, то може захтевати велики број токена за обраду резултата. Уместо да све то буде сачувано у прозору контекста, агент може користити песковно окружење које може да изврши овај код и само прочита резултате и друге релевантне информације.

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

Инспекција контекста

Након примене неке од ових стратегија, вреди проверити шта је следећи позив модела заправо примио. Корисно питање за дебаговање је:

Да ли је агент учитао превише контекста, погрешан контекст или му је недостајао контекст који је требао?

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

Циљ није задржати више контекста. Циљ је оставити довољно доказа да програмер може да утврди која је стратегија контекста коришћена и да ли је она променило следећи позив модела на предвиђени начин.

Пример инжењеринга контекста

Рецимо да желимо AI агента који ће „Резервиши ми путовање за Париз.“

• Једноставан агент који користи само инжењеринг упита би могао одговорити: „У реду, када бисте желели да идете у Париз?“ Он је обрадио само ваше директно питање у време када сте га поставили.

• Агент који користи стратегије инжењеринга контекста о којима смо говорили урадио би много више. Пре него што одговори, његов систем би могао:

  ◦ Проверити ваш календар за расположиве датуме (преузимајући реалне податке).

 ◦ Присетити се претходних преференција за путовања (из дугорочне меморије) као што су ваша омиљена авио-компанија, буџет или да ли више волите директне летове.

 ◦ Идентификовати доступне алате за резервацију летова и хотела.

Уобичајене грешке у контексту

Тровање контекста

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

Шта урадити: Уведите валидацију контекста и кварантин. Валидација информација пре него што се додају у дугорочну меморију. Ако се открије потенцијално тровање, покрените нове нити контекста како бисте спречили ширење погрешних информација.

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

Решење: Уведите корак који валидацијује постојање и руте летова помоћу API-ја у реалном времену пре него што се детаљ лета дода у радни контекст агента. Ако валидација не успе, погрешна информација се ставља у „кварантин“ и даље се не користи.

Одвраћање пажње контекстом

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

Шта урадити: Користите резимирање контекста. Периодично компримујте акумулиране информације у краће резимеје, задржавајући важне детаље и уклањајући сувишну историју. Ово помаже “ресетовању” фокуса.

Пример резервације путовања: Дуго сте разговарали о разним сновима о путовањима, укључујући детаљно описивање вашег пешачког путовања од пре две године. Када коначно затражите да вам „нађем јефтин лет за наредни месец“, агент се заглави у старим и неважним детаљима и наставља да пита о вашој опреми за пешачење или прошлостима путовања, занемарујући ваш тренутни захтев.

Решење: Након одређеног броја турнуса или када контекст постане превелик, агент би требао резимирати најновије и најрелевантније делове разговора – фокусирајући се на ваше тренутне датуме путовања и дестинацију – и користити тај кондензовани резиме за следећи позив LLM-у, одбацујући мање релевантни историјски разговор.

Конфузија контекста

Шта је: Када непотребан контекст, често у виду превише доступних алата, изазива да модел генерише погрешне одговоре или позива нерелевантне алате. Мањи модели су посебно склони овоме.

Шта урадити: Уведите управљање учитавањем алата користећи RAG технике. Чувајте описе алата у векторској бази и одаберите само најрелевантније алате за сваки конкретни задатак. Истраживања показују да је препоручљиво ограничити број одабраних алата испод 30.

Пример резервације путовања: Ваш агент има приступ деценијама алата: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations, итд. Питате, „Који је најбољи начин кретања по Паризу?“ Због великог броја алата, агент се збуни и покуша да позове book_flight унутар Париза или rent_car иако више волите јавни превоз, јер се описи алата могу преклапати или једноставно не може да издвоји најбољи.

Решење: Користите RAG над описима алата. Када питате о кретању по Паризу, систем динамички преузима само најрелевантније алате као што су rent_car или public_transport_info на основу вашег упита, представљајући фокусирани „набор“ алата LLM-у.

Судар контекста

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

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

Пример резервације путовања: У почетку кажете свом агенту, “Желим да летим у економској класи.” Касније у разговору промените мишљење и кажете, “Заправо, за ово путовање хајде да идемо у бизнис класи.” Ако обе инструкције остану у контексту, агент може добити конфликтне резултате претраге или бити збуњен око тога коју преференцу да приоритетизује.

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

Имате још питања о инжењерингу контекста?

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

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

Agentic Protocols

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

Memory for AI Agents


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