Neo4j grafadatbázissal ad tartós memóriát az AI-ügynököknek

A Neo4j új, közösségi fejlesztésű csomagja tartós, munkameneteken átívelő memóriát ad a Vercel AI SDK modelljeinek. A rendszer a Neo4j Agent Memory Service tudásgráfjára épül, és a modellhívások előtt visszakeresi, utánuk pedig elmenti a releváns információkat.
- Az @neo4j-labs/nams-ai-provider tartós memóriát ad a Vercel AI SDK modelljeinek.
- A memória a hosztolt Neo4j Agent Memory Service tudásgráfjában tárolódik.
- A rendszer a modellhívás előtt keres, utána pedig elmenti az új információkat.
- A tárolt emlékek modellváltás után is megmaradnak.
- Alapesetben hat, legfeljebb tizenkét emléket ad át egy fordulóban.
Egy sor módosítással bekapcsolható a memória
A Neo4j szeptember 7-én mutatta be az @neo4j-labs/nams-ai-provider csomagot. A vállalat szerint a megoldás bármely, Vercel AI SDK-t használó modellhez hozzáadhat tartós memóriát, egyetlen API-kulccsal és a hosztolt Neo4j Agent Memory Service, röviden NAMS használatával.
A fejlesztőnek nem kell saját Neo4j-fürtöt üzemeltetnie, vektortárolót választania vagy külön beágyazási folyamatot karbantartania. A forrás példája szerint a modell deklarációját kell a NAMS szolgáltatóján keresztül meghívni. Ettől kezdve a rendszer a megadott felhasználóhoz tartozó emlékeket betölti a kérés előtt, majd a beszélgetést elmenti a későbbi munkamenetekhez.
A csomag három integrációs módot kínál egy kliensen, egy API-kulcson és egy memóriatárolón keresztül. A Neo4j ezt olyan kódoldali választásként írja le, amely meghatározza, mennyire szeretné a fejlesztő láthatóan kezelni a memória működését.
A rendszer tudásgráfban tárolja az emlékeket
A megoldás alapfeltevése, hogy az AI-memória nem egyszerű mondatlista. A Neo4j embereket, eszközöket, döntéseket és a közöttük lévő kapcsolatokat tárolja gráfként. Ez lehetővé teszi, hogy a rendszer ne csak egy korábbi mondatot keressen vissza, hanem egy entitás történetét és kapcsolatait is kezelje.
A forrás példái szerint lekérdezhető, mit tud a rendszer egy felhasználóról, kijavítható egyetlen hibás adat, visszakereshető, mikor jelent meg egy entitás különböző beszélgetésekben, és összevonhatók az ugyanahhoz a személyhez tartozó duplikált entitások. A Neo4j szerint ez azért fontos, mert a gyártási környezetben felmerülő kérdések egy része gráflekérdezésként kezelhető a legjobban.
A memória a modelltől függetlenül marad meg. Így a GPT-ről Claude-ra, majd Gemini-re váltó alkalmazás magával viheti a felhasználó előzményeit, mivel azok a központi tárolóban élnek, nem az adott modell kontextusablakában.
A releváns emlékeket a modellhívás részeként keresi ki
A rendszer a modell futtatása előtt négy memóriaforrásból, párhuzamosan gyűjt találatokat. Az eredményeket tartalom alapján deduplikálja, majd relevancia szerint rendezi, ha a háttérrendszer ilyen pontszámot biztosít. Alapesetben legfeljebb hat emléket ad át, a felső korlát pedig fordulónként tizenkettő.
A visszakeresett elemek címkézett blokként kerülnek az utolsó felhasználói üzenet elé. A rendszer a hosszú távú emlékeket, a jelenlegi beszélgetést, a munkameneteken átívelő információkat és az érvelési nyomokat is kezelheti. Utóbbi azt jelenti, hogy az ügynök korábbi gondolatmeneteire is emlékezhet, például arra, miért vetett el egy megoldást.
A Neo4j külön keresési újrapróbálkozást is beépített arra az esetre, amikor a kérdés és a tárolt tény szavai nem egyeznek. Ha a közvetlen keresés üres eredményt ad, a rendszer a kérdés fontos szavait eredeti és nagy kezdőbetűs alakban is megvizsgálja, majd az átfedés alapján rangsorolja a találatokat.
A mentés streaming és több lépéses működés mellett is folytatódik
A csomag a válasz elküldése után menti el a fordulót. Folyamatos válaszadásnál a rendszer összegyűjti a szövegrészleteket, és a stream lezárásakor írja ki a memóriát, így a felhasználó valós időben kapja a tokeneket. Strukturált kimenetnél a darabokban érkező eszközhívás-paramétereket is újra összeállítja.
A több lépéses eszközhasználati ciklusoknál ugyanaz a felhasználói üzenet több lépésen is végigmehet, a middleware mégis csak egyszer menti el fordulónként. A forrás szerint az eredeti üzenetet a memória beszúrása előtt rögzíti, így a rendszer nem kezdi el saját, korábban beillesztett emlékeit újra eltárolni.
Ez a fejlesztők számára azt jelenti, hogy a munkamenetek közötti emlékezés a meglévő Vercel AI SDK-s modellhívásokba építhető be, miközben a memória külön szolgáltatásként kezeli a felhasználókról, eszközökről és döntésekről tárolt kapcsolatokat.

