A Neo4j és a Semvec tartós memóriát adhat a többügynökös rendszereknek

A Neo4j egy egészségügyi asszisztens példáján mutatja be, hogyan tarthatják meg az AI-ügynökök a korábbi beszélgetések és vizsgálatok kontextusát. A Semvec egyetlen ügynök memóriáját kezeli, a Semvec Cortex pedig több ügynök között osztja meg ezt az állapotot, miközben az adatokat Neo4j-gráf tárolja.
- A Semvec tartós szemantikus memóriát ad az egyedi AI-ügynököknek.
- A Semvec Cortex több ügynök között osztja meg a memóriát és az állapotot.
- A Neo4j egy gráfban tárolja a domainismeretet és a beszélgetési adatokat.
- A LOCOMO teszten a Semvec 0,605-ös LLM-as-Judge pontszámot ért el.
- A rendszer a forrás szerint körülbelül 87 százalékkal csökkentheti a kontextustokenezést.
A teljes előzmények újraolvasása helyett szemantikus memória
A Neo4j szerint a nagy nyelvi modelleknek nincs natív memóriájuk. A korábbi beszélgetések kontextusát úgy őrzik meg, hogy minden új fordulóban újra beolvassák az előzményeket. Emiatt a tokenköltség a beszélgetés hosszával együtt nő, a kontextusablak pedig elérheti a korlátait.
A vállalat példája egy klinikai asszisztens: az alkalmazás egy 12 órás műszakváltás után is felidézheti a beteg teljes történetét, és azt is tudhatja, hogy egy kolléga három órával korábban már megvizsgálta ugyanazt az esetet. Több ügynök használatakor a közös memória különösen fontos, mivel a szereplőknek látniuk kell, mit vizsgáltak már meg mások.
A Semvec ezt tartós szemantikus memóriával kezeli. A Neo4j által bemutatott példában az ügynök memóriája nagyjából három sor Python-kóddal beköthető. Az ülések és állapotok újraindítás után is folytathatók, mivel a rendszer az első híváskor munkamenet-azonosítót hoz létre, amelyet a további fordulókban újra felhasznál.
Egy gráfban él a szaktudás és a beszélgetés állapota
A Neo4j architektúrájában a domainismeret és a társalgási állapot ugyanabban a gráfban kap helyet. A betegek, gyógyszerek, szolgáltatók és diagnózisok mellett az ügynöki munkamenetek, az eltérések eseményei és a klasztertagságok is megjelennek.
A központi kapcsolat az INVESTIGATED reláció, amely összeköti az ügynök által megvizsgált elemeket és a megállapításokat. Így egyetlen Cypher-lekérdezés összekapcsolhatja azt, amit az ügynök tud azzal, hogy mit, mikor és ki kérdezett. A Semvec végzi a számításokat, a Neo4j pedig tárolja az eredményeket.
A Semvec válasza több információt is tartalmaz a tömörített szövegen túl. Ilyen a drift_phase, amely a stabil, változó vagy eltérő állapotot jelzi, a 0,0 és 1,0 közötti drift_score, a legutóbbi beágyazásokhoz mért hasonlóság, valamint a short_circuit jelzés. Utóbbi akkor aktiválódik, ha a rendszer felismeri egy korábbi kérdés átfogalmazását, így az LLM-hívás kihagyható.
Benchmarkeredmények és többügynökös használat
A Neo4j által idézett, LOCOMO hosszú távú beszélgetési memória benchmarkon a Semvec a mem0-hoz közeli eredményt ért el úgy, hogy a betöltéskor nem használt generatív LLM-hívásokat. A teszt 10 beszélgetést és 1986 kérdés-válasz párt tartalmazott. Az eredmény 0,605-ös LLM-as-Judge pontszám és 0,424-es token-F1 volt, miközben egy olvasói hívás körülbelül 2000 kontextustokent használt.
A Neo4j szerint ez a teljes kontextus újrajátszásához képest körülbelül nyolcszor kevesebb token, 87 százalékos csökkenés. Egy 675 fordulós beszélgetés betöltése nagyjából három percet vett igénybe, szemben a mem0 esetében jelzett körülbelül 24,5 perccel. A Semvec dokumentációja külön mérésként 17-szeres végponttól végpontig tartó gyorsulást közöl a teljes, 1986 kérdésből álló tesztre, GPU-s referencia-környezetben és hibrid BM25-kereséssel.
A forrás szerint a frissítés fordulónként 384 dimenziós vektoroknál egy közelmúltbeli x86_64 processzoron ezredmásodperc alatti, a Rust-mag pedig a Python GIL-jén kívül fut. A bemutatott kód a nyilvános MichaelNeuberger/neo4j-agent-integrations tárhelyről származik, Semvec 0.7.0-val működik, és egy 274 tesztből álló pytest-készlettel ellenőrizték. A Neo4j ezt olyan többügynökös helyzetekhez kapcsolja, ahol egy osztály tíz specialistája műszakonként 50 lekérdezést indít.
Mit kapnak a fejlesztők?
A Semvec integrálható például PydanticAI-alapú ügynökökkel. Minden fordulóban csak az aktuális kérdéshez relevánsnak ítélt emlékek kerülnek be a rendszerutasításba. A SemvecChatProxy emellett megmutatja az adott kérés tömörített tokenmennyiségét és azt, mennyibe került volna ugyanaz a beszélgetés a teljes előzmények újrajátszásával.
A fejlesztők a domaingráfból származó információkat előre is memóriába tölthetik. A Neo4j példája szerint egy onkológiai gyógyszerész munkamenetébe a gyógyszer-ellenjavallatok kerülhetnek be hosszú távú emlékként, kulcsszavakkal és horgonyként rögzített témával.
A Semvec 0.7.0 csomagja az alapvető építőelemeket tartalmazza, de a forrás külön kiemeli, hogy a SemvecClient nem része a sima pip install semvec telepítésnek. A bemutatott példák reprodukálásához az integrációs tárhely klónozására is szükség van.


