Az MI ügynökök készítésének egyedi előnyeiről beszélve elsősorban két dolgot szoktak megvitatni: az eszközök meghívásának képességét a feladatok elvégzéséhez, valamint az idővel történő fejlődés képességét. A memória alapja az önfejlesztő ügynök létrehozásának, amely jobb élményeket tud teremteni a felhasználóink számára.
Ebben a leckében megvizsgáljuk, hogy mi a memória az MI ügynökök számára, és hogyan kezelhetjük és használhatjuk azt alkalmazásaink előnyére.
Ez a lecke a következőket tartalmazza:
• Az MI ügynök memória megértése: Mi a memória, és miért fontos az ügynökök számára.
• A memória megvalósítása és tárolása: Gyakorlati módszerek az MI ügynökeid memóriaképességeinek bővítésére, a rövid és hosszú távú memória fókuszálásával.
• Az MI ügynökök önfejlesztővé tétele: Hogyan teszi lehetővé a memória, hogy az ügynökök tanuljanak a korábbi interakciókból és idővel fejlődjenek.
Ez a lecke két átfogó jegyzetfüzet-tananyagot tartalmaz:
• 13-agent-memory.ipynb: Mem0 és Azure AI Search használatával valósítja meg a memóriát a Microsoft Agent Framework segítségével
• 13-agent-memory-cognee.ipynb: Strukturált memóriát valósít meg Cognee segítségével, automatikusan építve egy beágyazások által támogatott tudásgráfot, megjelenítve a gráfot és intelligens visszakeresést biztosítva
A lecke elvégzése után tudni fogod, hogyan kell:
• Megkülönböztetni az MI ügynök különböző típusú memóriáit, beleértve a munkamemóriát, a rövid távú és hosszú távú memóriát, valamint a speciális formákat, mint a személyiség- és epizodikus memória.
• Megvalósítani és kezelni a rövid és hosszú távú memóriát az MI ügynökök számára a Microsoft Agent Framework használatával, kihasználva olyan eszközöket, mint a Mem0, Cognee, Whiteboard memória, és integrálva az Azure AI Search szolgáltatást.
• Megérteni az önfejlesztő MI ügynökök mögötti elveket és azt, hogy a stabil memória kezelési rendszerek hogyan járulnak hozzá a folyamatos tanuláshoz és alkalmazkodáshoz.
Lényegében az MI ügynökök memóriája az a mechanizmus, amely lehetővé teszi számukra az információk megőrzését és előhívását. Ez az információ lehet beszélgetésről szóló részletek, felhasználói preferenciák, múltbeli cselekvések vagy akár megtanult mintázatok.
Memória nélkül az MI alkalmazások gyakran állapot nélküli alkalmazások, vagyis minden interakció nulláról kezdődik. Ez ismétlődő és frusztráló felhasználói élményt eredményez, ahol az ügynök “elfelejti” a korábbi kontextust vagy preferenciákat.
Az ügynök intelligenciája mélyen kapcsolódik a korábbi információk előhívásának és felhasználásának képességéhez. A memória lehetővé teszi az ügynökök számára, hogy:
• Reflektívak legyenek: Tanuljanak a múltbeli cselekvésekből és eredményekből.
• Interaktívak legyenek: Fenntartsák a kontextust a folyamatban lévő beszélgetés során.
• Proaktívak és reaktívak legyenek: Előre jelezzék a szükségleteket vagy megfelelően reagáljanak a történelmi adatok alapján.
• Autonómok legyenek: Függetlenebben működjenek, miközben a tárolt tudásra támaszkodnak.
A memória megvalósításának célja, hogy az ügynökök megbízhatóbbak és képzettebbek legyenek.
Gondoljunk erre úgy, mint egy egyszerű jegyzetpapírra, amelyet az ügynök egyetlen, folyamatban lévő feladat vagy gondolatmenet során használ. Ez tartalmazza a következő lépéshez szükséges közvetlen információkat.
Az MI ügynökök számára a munkamemória gyakran megragadja a beszélgetés legrelevánsabb információit, még ha a teljes csevegéstörténet hosszú vagy lerövidített is. Ez kulcselemekre koncentrál, mint a követelmények, javaslatok, döntések és cselekvések.
Munkamemória példa
Egy utazási foglaló ügynöknél a munkamemória megőrizheti a felhasználó aktuális kérését, például: „Parizsba szeretnék utazást foglalni”. Ez a konkrét igény az ügynök azonnali kontextusában van ahhoz, hogy irányítsa az aktuális interakciót.
Ez a memóriatípus megőrzi az információt egyetlen beszélgetés vagy munkamenet idejére. Ez a jelenlegi csevegés kontextusa, amely lehetővé teszi az ügynöknek, hogy visszautaljon a párbeszéd korábbi köreiben elhangzottakra.
Rövid távú memória példa
Ha a felhasználó megkérdezi: „Mennyibe kerül egy repülőjegy Párizsba?”, majd azt követően: „Mi a helyzet a szállással ott?”, a rövid távú memória biztosítja, hogy az ügynök tudja, hogy az „ott” kifejezés a „Párizs”-ra vonatkozik ugyanabban a beszélgetésben.
Ez az információ több beszélgetés vagy munkamenet során fennmarad. Lehetővé teszi az ügynökök számára, hogy emlékezzenek a felhasználó preferenciáira, korábbi interakcióira vagy általános tudásra hosszabb időn keresztül. Ez fontos a személyre szabás szempontjából.
Hosszú távú memória példa
Egy hosszú távú memória tárolhatja, hogy „Ben szeret síelni és szabadban tevékenykedni, kedveli a kávét hegyi kilátással, és el akarja kerülni a nehéz sípályákat egy korábbi sérülés miatt”. Ez az információ, amelyet korábbi interakciókból tanult, befolyásolja a jövőbeni utazási tervezési ajánlásokat, így azok nagyon személyre szabottak lesznek.
Ez a speciális memória típus segíti az ügynököt, hogy kialakítson egy következetes „személyiséget” vagy „persona”-t. Lehetővé teszi az ügynök számára, hogy emlékezzen önmagára vagy szándékolt szerepére, ezáltal folyékonyabb és fókuszáltabb interakciókat teremtve.
Személyiség memória példa
Ha az utazási ügynököt „szakértő sítervezőként” tervezték, a személyiség memória erősítheti ezt a szerepet, befolyásolva válaszait, hogy azok megfeleljenek egy szakértő hangvételének és tudásának.
Ez a memória tárolja az ügynök által végrehajtott lépések sorozatát egy összetett feladat során, beleértve a sikereket és kudarcokat is. Olyan, mintha „epizódokat” vagy korábbi tapasztalatokat őrizne meg, hogy tanuljon belőlük.
Epizódikus memória példa
Ha az ügynök megpróbált egy adott járatot lefoglalni, de az nem sikerült elérhetőség hiánya miatt, az epizódikus memória rögzítheti ezt a sikertelenséget. Ez lehetővé teszi, hogy az ügynök alternatív járatokat próbáljon vagy tájékoztassa a felhasználót az ügyről tájékozottabban egy következő próbálkozás során.
Ez magában foglalja a beszélgetésekből kinyert és megjegyzett konkrét entitásokat (például embereket, helyeket vagy tárgyakat) és eseményeket. Lehetővé teszi az ügynök számára, hogy strukturáltan értelmezze a megbeszélt kulcselemeket.
Entitás memória példa
Egy múltbeli utazásról szóló beszélgetésből az ügynök kinyerheti a „Párizs”, az „Eiffel-torony” és a „vacsora a Le Chat Noir étteremben” kifejezéseket mint entitásokat. A jövőbeni interakció során az ügynök emlékezhet a „Le Chat Noir”-ra, és felajánlhatja, hogy új foglalást készít oda.
Bár a RAG egy tágabb technika, a „Strukturált RAG” kiemelt mint erőteljes memória technológia. Kivonja a tömör, strukturált információkat különböző forrásokból (beszélgetésekből, emailekből, képekből), és ezt használja válaszok pontosságának, előhívásának és sebességének javítására. Ellentétben a klasszikus RAG-gal, amely kizárólag szemantikai hasonlóságra támaszkodik, a Strukturált RAG az információk veleszületett szerkezetét használja.
Strukturált RAG példa
Kulcsszavak egyezése helyett a Strukturált RAG képes lehet kinyerni repülőjegy-adatokat (célállomás, dátum, idő, légitársaság) egy e-mailből, és strukturáltan tárolni azokat. Ez lehetővé teszi az olyan pontos lekérdezéseket, mint „Milyen járatot foglaltam Párizsba kedden?”
Az MI ügynökök memóriájának megvalósítása egy rendszerezett folyamatot jelent, azaz a memóriakezelést, amely magában foglalja az információ generálását, tárolását, előhívását, integrálását, frissítését, sőt akár az „elfelejtést” (törlést) is. Az előhívás különösen kulcsfontosságú.
Az ügynök memória tárolására és kezelésére egyik eszköz a Mem0. A Mem0 egy állandó memória rétegként működik, amely lehetővé teszi az ügynököknek, hogy előhívják a releváns interakciókat, tárolják a felhasználói preferenciákat és a tényalapú kontextust, és idővel tanuljanak a sikerekből és kudarcokból. Az ötlet az, hogy az állapot nélküli ügynökök állapottartóvá váljanak.
Ez egy kétfázisú memória-folyamatból áll: kivonás és frissítés. Először az adott ügynök szálához hozzáadott üzenetek a Mem0 szolgáltatásba kerülnek, amely egy Large Language Model (LLM) segítségével összefoglalja a beszélgetéstörténetet és kinyeri az új emlékeket. Ezt követően egy LLM által vezérelt frissítési szakasz dönt arról, hogy az emlékeket hozzáadja, módosítja vagy törli, majd ezeket egy hibrid adattárolóban tárolja, amely vektor-, gráf- és kulcs-érték adatbázisokat is tartalmazhat. Ez a rendszer különféle memória típusokat támogat, és képes gráf memóriát is beépíteni az entitások közötti kapcsolatok kezeléséhez.
Egy másik hatékony megközelítés a Cognee használata, amely egy nyílt forráskódú szemantikus memória az MI ügynökök számára, amely strukturált és strukturálatlan adatokat alakít lekérdezhető tudásgráfokká, amelyeket beágyazások támogatnak. A Cognee egy kettős tárolós architektúrát alkalmaz, amely ötvözi a vektor alapú hasonlóságkeresést és a gráf kapcsolatrendszereket, így az ügynökök nemcsak azt értik meg, hogy milyen információk hasonlóak, hanem azt is, hogy a fogalmak hogyan kapcsolódnak egymáshoz.
Kiválóan alkalmas a hibrid visszakeresésre, amely egyesíti a vektor hasonlóságot, a gráf szerkezetet és a LLM-alapú érvelést – a nyers darabok keresésétől a gráf-tudatos kérdés-megadásokig. A rendszer fenntartja az élő memóriát, amely fejlődik és növekszik, miközben egy összekapcsolt gráfként lekérdezhető marad, támogatva a rövid távú munkameneti kontextust és a hosszú távú állandó memóriát.
A Cognee jegyzetfüzet-tananyag (13-agent-memory-cognee.ipynb) bemutatja ennek az egységes memória rétegnek az építését, gyakorlati példákkal különféle adatforrások befogadására, a tudásgráf vizualizálására és különböző keresési stratégiák használatára, amelyek az adott ügynök igényeihez igazodnak.
A mem0-hoz hasonló speciális memória eszközökön túl használhatók megbízható keresési szolgáltatások, mint az Azure AI Search, amely memóriák tárolására és visszakeresésére szolgálhat, különösen a strukturált RAG esetén.
Ez lehetővé teszi, hogy az ügynök válaszai saját adataiddal legyenek alátámasztva, biztosítva a relevánsabb és pontosabb válaszokat. Az Azure AI Search használható felhasználó-specifikus utazási emlékek, termékkatalógusok vagy bármilyen más domain-specifikus tudás tárolására.
Az Azure AI Search támogat olyan képességeket, mint a Strukturált RAG, amely kiválóan alkalmas tömör, strukturált információk kinyerésére és előhívására nagy adatállományokból, mint a beszélgetések története, e-mailek vagy akár képek. Ez „emberfeletti pontosságot és előhívást” nyújt a hagyományos szövegdarabolásos és beágyazásos megközelítésekkel szemben.
Az önfejlesztő ügynököknél gyakori mintázat egy „tudás ügynök” bevezetése. Ez a különálló ügynök megfigyeli a fő beszélgetést a felhasználó és a fő ügynök között. Feladata:
Értékes információk azonosítása: Meghatározni, hogy a beszélgetés bármely része érdemes-e általános tudásként vagy specifikus felhasználói preferenciaként elmentésre.
Kinyerés és összefoglalás: Kivonatolni az alapvető tanulságokat vagy preferenciákat a beszélgetésből.
Tárolás egy tudásbázisban: Elmenteni ezt a kinyert információt, gyakran vektoralapú adatbázisba, hogy később előhívható legyen.
Jövőbeli lekérdezések kiegészítése: Amikor a felhasználó új lekérdezést indít, a tudás ügynök előhívja a releváns tárolt adatokat, és hozzáfűzi a felhasználói kérésekhez, így kritikus kontextust biztosítva a fő ügynök számára (hasonlóan a RAG-hoz).
• Késleltetés kezelése: Annak érdekében, hogy ne lassítsa le a felhasználói interakciókat, kezdetben olcsóbb, gyorsabb modell alkalmazható arra, hogy gyorsan ellenőrizze, érdemes-e tárolni vagy előhívni az információt, és csak szükség esetén hívja meg a komplexebb kivonási/visszakeresési folyamatot.
• Tudásbázis karbantartása: Egy növekvő tudásbázis esetén a kevésbé gyakran használt információk „hideg tárhelyre” mozgathatók a költségek kezelése érdekében.
Csatlakozz a Microsoft Foundry Discord csatornához, hogy találkozz más tanulókkal, részt vehess konzultációkon, és választ kapj az MI ügynökökkel kapcsolatos kérdéseidre.
Jogi nyilatkozat: Ez a dokumentum az AI fordító szolgáltatás, a Co-op Translator segítségével készült. Bár az igyekszünk pontosságra törekedni, kérjük, vegye figyelembe, hogy az automatikus fordítások tartalmazhatnak hibákat vagy pontatlanságokat. Az eredeti, anyanyelven írt dokumentum tekintendő hiteles forrásnak. Kritikus információk esetén professzionális, emberi fordítást javaslunk. Nem vállalunk felelősséget az ebből eredő félreértésekért vagy félreértelmezésekért.