(Klõpsa ülaloleval pildil, et vaadata selle tunni videot)
Rakenduse keerukuse mõistmine, mille jaoks AI agenti ehitad, on oluline usaldusväärse agenti loomisel. Me peame looma AI agente, kes haldavad efektiivselt informatsiooni, et lahendada keerukaid vajadusi, mis ületavad pelga promptide inseneritöö.
Selles õppetükis vaatame, mis on konteksti inseneritöö ja selle roll AI agentide loomisel.
See õppetund käsitleb:
• Mis on konteksti inseneritöö ja miks see erineb promptide inseneritööst.
• Efektiivse konteksti inseneritöö strateegiaid, sealhulgas kuidas kirjutada, valida, tihendada ja isoleerida infot.
• Tavalisi konteksti tõrkeid, mis võivad AI agenti rikkuda, ja kuidas neid parandada.
Pärast selle tunni lõpetamist tead, kuidas:
• Määratleda konteksti inseneritöö ja eristada seda promptide inseneritööst.
• Tuvastada konteksti põhikomponendid suurte keelemudelite rakendustes.
• Rakendada strateegiaid kontekti kirjutamiseks, valimiseks, tihendamiseks ja isoleerimiseks agentide jõudluse parandamiseks.
• Tuvastada tavalisi kontekstitõrkeid nagu mürgitamine, tähelepanu hajumine, segadus ja vastuolu, ning rakendada leevendusmeetodeid.
AI agentide kontekst juhib AI agendi planeerimist teatud toimingute tegemiseks. Konteksti inseneritöö on praktika tagada, et AI agentil on õige info, et täita järgmine ülesande samm. Konteksti aken on piiratud suurusega, seepärast peame agendi looja rollis üles ehitama süsteeme ja protsesse, et hallata info lisamist, eemaldamist ja kokkusurumist konteksti aknas.
Promptide inseneritöö keskendub ühele komplektile staatilisi juhiseid, mis juhivad AI agente efektiivselt reeglite kogumiga. Konteksti inseneritöö käsitleb dünaamilise infokogumi haldamist, kaasa arvatud esialgne prompt, et tagada AI agendil vajalik informatsioon aja jooksul. Põhimõte on muuta see protsess korduvaks ja usaldusväärseks.
Oluline on meeles pidada, et kontekst ei ole vaid üks asi. AI agendi jaoks vajalik info võib tulla erinevatest allikatest ja meie ülesanne on tagada agendi ligipääs neile allikatele:
Konteksti tüübid, mida AI agent võib vajada haldamiseks, hõlmavad:
• Juhised: Need on agenti “reeglid” – promptid, süsteemisõnumid, mõne näite kasutamine (näitamaks, kuidas midagi teha) ja tööriistade kirjeldused, mida agent saab kasutada. Siin kattub promptide inseneritöö fookus konteksti inseneritööga.
• Teadmised: See hõlmab fakte, andmeid andmebaasidest või pikaajalisi mälestusi, mida agent on kogunud. Siia kuulub ka Retrieval Augmented Generation (RAG) süsteemi integreerimine, kui agent vajab ligipääsu erinevatele teadmusbaasidele ja andmebaasidele.
• Tööriistad: Need on väliste funktsioonide, API-de ja MCP serverite määratlused, mida agent saab kutsuda, koos tagasisidega (tulemustega), mida ta nende kasutamisest saab.
• Vestluse ajalugu: Jooksev dialoog kasutajaga. Aja jooksul pikenevad ja keerukamaks muutuvad need vestlused, võtavad ruumi konteksti aknas.
• Kasutaja eelistused: Infot, mida on kasutaja eelistuste kohta aja jooksul kogutud. Seda võib salvestada ja kasutada oluliste otsuste tegemisel kasutaja abistamiseks.
Hea konteksti inseneritöö algab heast planeerimisest. Siin on lähenemine, mis aitab alustada mõtlemist, kuidas rakendada konteksti inseneritöö mõistet:
Planeerimine on tähtis, kuid kui info hakkab voolama meie agendi konteksti aknasse, vajame praktilisi strateegiaid selle haldamiseks:
Kuigi osa infot lisatakse konteksti aknasse automaatselt, on konteksti inseneritöö aktiivsema rolli võtmine selles infosisus võimalik mitme strateegiaga:
Agendi märkmeleht See võimaldab AI agendil teha märkmeid asjakohase info kohta jooksva ülesande ja kasutajategevuste kohta ühe seansi jooksul. See peaks asuma konteksti aknast väljas, failis või tööajal objekti kujul, mida agent saab vajadusel selle seansi jooksul hiljem kasutada.
Mälestused Märkmelehed sobivad info haldamiseks ühe seansi konteksti aknast väljaspool. Mälestused võimaldavad agentidel salvestada ja taastada asjakohast infot mitme seansi jooksul. Sellesse võib kuuluda kokkuvõtteid, kasutaja eelistusi ja tagasisidet tulevikuks paremuse saavutamiseks.
Konteksti tihendamine Kui konteksti aken tuleb suureks ja hakkab oma piiri lähedale jõudma, saab kasutada selliseid tehnikaid nagu kokkuvõtete tegemine ja kärpimine. See hõlmab ainult kõige asjakohasema info hoidmist või vanemate sõnumite eemaldamist.
Mitme agendi süsteemid Mitme agendi süsteemi arendamine on konteksti inseneritöö vorm, kuna iga agendil on oma konteksti aken. Kuidas seda konteksti jagatakse ja erinevatele agentidele edasi antakse, on midagi, mida tuleb nende süsteemide ehitamisel planeerida.
Liivakasti keskkonnad Kui agent peab käivitama koodi või töötlema suuri infokoguseid dokumendis, võib see võtta palju token’e tulemuste töötlemiseks. Selle asemel, et see kõik jääks konteksti aknasse salvestatuks, saab agent kasutada liivakasti keskkonda, mis suudab koodi käivitada ning lugeda ainult tulemusi ja muud asjakohast infot.
Tööaja oleku objektid Seda tehakse info konteinerite loomisega, et hallata olukordi, kus agendil on vaja teatud infole ligi pääseda. Kompleksi ülesande puhul võimaldab see agentidel salvestada iga alamülesande tulemusi samm-sammult, hoides konteksti seotud ainult selle konkreetse alamülesandega.
Pärast ühe sellise strateegia rakendamist tasub kontrollida, mida järgmise mudelikõne ajal tegelikult vastu võeti. Kasulik silumiseks küsimus on:
Kas agent laadis liiga palju konteksti, vale konteksti või jäi kontekst puudu, mida ta vajas?
Selle küsimuse vastamiseks ei pea logima tooreid promte, tööriistade väljundeid ega mälu sisu. Tootmises eelista väikseid konteksti kontrollikirjeid, mis sisaldavad loendusi, ID-sid, räsi ja poliitikamärke:
Eesmärk ei ole hoida rohkem konteksti, vaid jätta piisavalt tõendeid, et arendaja saaks tuvastada, millisest konteksti strateegiast oli jutt ja kas see mõjutas järgmist mudelikõnet soovitud viisil.
Oletame, et tahame AI agendilt “Broneeri mulle reis Pariisi.”
• Lihtne agent, mis kasutab ainult promptide inseneritööd, vastaks näiteks: “Olgu, millal soovid Pariisi sõita?” See töötles ainult sinu otsest küsimust sellel ajal, kui kasutaja seda küsis.
• Agent, kes kasutab siin käsitletud konteksti inseneritöö strateegiaid, teeks palju enamat. Enne vastamist võib tema süsteem näiteks:
◦ Kontrollida sinu kalendrit saadaolevate kuupäevade jaoks (saades reaalajas andmeid).
◦ Meenutada varasemaid reisieelistusi (pikaajaline mälu), näiteks eelistatud lennufirma, eelarve või kas eelistad otselende.
◦ Tuua välja saadaolevad tööriistad lennupiletite ja hotellibroneeringu tegemiseks.
Mis see on: Kui hallutsinatsioon (LLMi poolt genereeritud valeinfo) või viga jõuab konteksti ja sellele viidatakse korduvalt, põhjustades agendi võimatute eesmärkide ja mittetõsiste strateegiate tekkimist.
Mida teha: Rakenda konteksti valideerimist ja karantiini. Kontrolli infot enne selle lisamist pikaajalisse mällu. Kui avastatakse võimalik mürgitamine, alusta uut konteksti lõime, et takistada halbade andmete levikut.
Reisibroneeringu näide: Agent hallutsineerib otse lennu väiksel kohalikul lennujaamal kaugesse rahvusvahelisse linna, kuhu tegelikult ei lenda rahvusvahelisi lende. See mittetegutsev lennuinfo salvestatakse konteksti. Hiljem, kui küsid agentilt broneerimist, üritab see kogu aeg leida pileteid sellele võimatule marsruudile, põhjustades korduvaid vigu.
Lahendus: Rakenda samm, mis valideerib lennu olemasolu ja marsruudid reaalajas API abil enne lennuinfo lisamist agendi töökonteksti. Kui valideerimine ebaõnnestub, pannakse valeinfo “karantiini” ega kasutata edasi.
Mis see on: Kui kontekst muutub nii suureks, et mudel keskendub liiga palju kogunenud ajaloole ja unustab kasutada treeningu käigus õpitut, põhjustades korduvaid või ebaotstarbekaid tegevusi. Mudelid hakkavad vigu tegema isegi enne, kui konteksti aken on täis.
Mida teha: Kasuta konteksti kokkusurumist. Aeg-ajalt tihenda kogutud infot lühemateks kokkuvõteteks, hoides olulisi detaile ja eemaldades liigse ajaloo. See aitab “lähtestada” fookuse.
Reisibroneeringu näide: Oled kauem arutanud mitmeid reisunumbreid, sh detailselt rääkinud oma kahe aasta tagusest matkapäevikus. Kui lõpuks palud “Leia odav lend järgmisel kuul”, muutub agent vanade, ebaoluliste detailide tõttu segadusse ja küsib korduvalt sinu matkapakki või varasemaid marsruute, ignoreerides sinu praegust küsimust.
Lahendus: Pärast teatavat arvu küsimusi või kui kontekst liiga suureks läheb, peaks agent kokku võtma vestluse kõige uuemad ja asjakohasemad osad – keskendudes sinu hetke reisikuupäevadele ja sihtkohale – ning kasutama seda tihendatud kokkuvõtet järgmiseks LLM kõneks, visates vähem olulise ajaloo kõrvale.
Mis see on: Kui mittevajalik kontekst, sageli liiga paljude saadaolevate tööriistade kujul, paneb mudeli genereerima halbu vastuseid või kutsuma sobimatuid tööriistu. Väiksemad mudelid on sellele eriti vastuvõtlikud.
Mida teha: Rakenda tööriistade valiku haldamist RAG tehnikate abil. Salvestage tööriistade kirjeldused vektoriandmebaasi ja vali iga ülesande jaoks ainult kõige asjakohasemad tööriistad. Uuringud näitavad, et tööriistade valik tuleks piirata alla 30.
Reisibroneeringu näide: Sinu agendil on ligipääs kümnetele tööriistadele: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations jne. Küsimus on, “Mis on parim viis Pariisis ringi liikumiseks?” Paljude tööriistade hulgast võib agent segadusse sattuda ja proovida kutsuda näiteks book_flight Pariisi sees või rent_car, kuigi eelistad ühistransporti, sest tööriistade kirjeldused võivad kattuda või ta ei suuda valida parimat.
Lahendus: Kasuta RAG-i üle tööriistade kirjelduste. Kui küsid Pariisis ringiliikumise kohta, saab süsteem dünaamiliselt tuua välja ainult kõige asjakohasemad tööriistad nagu rent_car või public_transport_info vastavalt sinu päringule, esitades LLM-ile fokuseeritud tööriistade komplekti.
Mis see on: Kui konfliktne info eksisteerib kontekstis, põhjustades ebajärjekindlat mõtlemist või halbu lõppvastuseid. Seda juhtub tihti, kui info saabub etapiti ja varasemad, valed eeldused jäävad konteksti.
Mida teha: Kasuta konteksti kärpimist ja väljavahetamist. Kärpimine tähendab aegunud või vastuolulise info eemaldamist uute andmete saabudes. Väljavahetamine annab mudelile eraldi “märkmelehe” tööruumi, kus infot töödelda ilma peamist konteksti ülekoormamata.
Reisibroneerimise näide: Sa ütled oma agendile algselt, “Ma tahan lennata majandusklassis.” Hiljem vestluse käigus muudad meelt ja ütled, “Tegelikult, selle reisi jaoks valime äriklassi.” Kui mõlemad juhised jäävad konteksti alles, võib agent saada vastuolulisi otsingutulemusi või jääda segadusse, millist eelistust eelistada.
Lahendus: Rakenda konteksti kärpimist. Kui uus juhis on vastuolus vana juhisega, eemaldatakse vanem juhis või asendatakse see kontekstis selgelt. Alternatiivselt võib agent kasutada märkmelehte, et lepitada vastuolulisi eelistusi enne otsuse tegemist, tagades, et ainult lõplik ja ühtne juhis juhib selle toiminguid.
Liitu Microsoft Foundry Discord-iga, et kohtuda teiste õppijatega, osaleda konsultatsioonides ja saada vastused oma AI agentide küsimustele.
Lahtiütlus: See dokument on tõlgitud kasutades AI tõlketeenust Co-op Translator. Kuigi me püüdleme täpsuse poole, palun pange tähele, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud eksimustest või valesti mõistmistest.