Eszközök/RAG és keresés

Zep ismertető: ügynök-memory temporális gráfon

A Zep hostolt ügynök-memory API temporális tudásgráfon: kreditek íráskor, lekérdezés ingyen, Flex 125 dollártól havonta, a Graphiti az a rész, amit magunk üzemeltethetünk.

Típus
Agent memory
Ár
Apache-2.0 core · Cloud from $50 per month

··11 perc olvasás

  • Agent memory
  • Knowledge graph
  • Temporal graph
  • Context engineering
  • RAG
A Zep diagramja arról, hogyan jut el egy tény a promptig: az üzeneteket és tényeket felhasználónkénti entitás- és kapcsolatgráffá bontják, a lekérdezés pedig bejárja a gráfot, és kontextusblokkot ad vissza a támasztó tényekkel.

A lényeg röviden

  • A Zep hostolt ügynök-memory API, amely a tényeket temporális tudásgráfban tárolja, és azt a kontextust adja vissza, amit a következő körben a modellnek látnia kell.
  • Kredit csak íráskor jár: epizódonként egy kredit 350 bájtig, míg a lekérdezés, a tárolás, a szálak és a felhasználók ingyenesek.
  • A self-serve tarifák: Free 10 000 kredittel, Flex 125 dollárért 50 000 kreditért, Flex Plus 375 dollárért 200 000 kreditért; a SOC 2 Type II és a HIPAA BAA az Enterprise szint marad.
  • A Zep Community Editiont 2025 áprilisában megszüntették, ezért a Graphiti az egyetlen rész, amit saját magunk üzemeltethetünk.
  • A kinyerés minden írásnál modellt futtat, ami miatt a költség attól függ, mennyit beszél az ügynök, a kinyerő hibái pedig csendesen rossz kontextussá válnak.

A Zep ügynök-memory szolgáltatás: az alkalmazás üzeneteket és tényeket küld, a szolgáltatás felhasználónként temporális tudásgráfot vezet, és minden hívásnál visszaadja azt a kontextust, amit a következő körben a modellnek látnia kell. A jó vásárlás azoknak a csapatoknak, amelyeknél az ügynök azért bukik, mert elfelejt, és rossz annak, amelyik mindent maga üzemeltet, mert az egyetlen saját üzemeltethető rész a Graphiti könyvtár.

A szolgáltatás az alkalmazás és a modell közé ül, és kiváltja az otthonra szabott summary buffereket, a régi csevegésnaplókkal teli vektortárolókat, valamint a LangChain és a LlamaIndex memory segédfunkcióit. Vetélytársai a Mem0, a LangMem, egy Postgres-tábla embeddingekkel, valamint a modellszolgáltatók hosszú távú memory végpontjai; a különbség, hogy a Zep a tényeket érvényességi kezdettel és véggel tárolja, nem a múlt üzeneteinek lapos listájaként.

Mi ez

A termék egy kezelt API: user.add a tartós tényekhez, thread.create és thread.add_messages a beszélgetéshez, graph.get_user_context a lekérdezéshez. A munka a beérkezéskor történik: egy kinyerő lépés minden epizódból entitást, relációt és időbélyegzős megfigyelést csinál, a lekérdezés pedig kontextusblokkot állít össze a tényeket alátámasztó adatokkal. Az open-source fele a Graphiti, egy Apache-2.0 licencű könyvtár, amely ugyanezt a temporális gráfkarbantartást végzi, tény szintű inkrementális frissítésekkel az éjszakai teljes újraindexelés helyett.

  • Licenc és tulajdonos: a Graphiti Apache-2.0, a Zep Software gondozza; maga a Zep memory szolgáltatás zárt, hostolt termék.
  • Önálló üzemeltetés: a Zep Community Editiont 2025 áprilisában megszüntették, kódja legacy mappába került, így a gráfengine helyben fut, a teljes szolgáltatás nem.
  • Mérés: 1 kredit 350 bájtig tartó epizódra, további 350 bájtonként vagy töredékénként még 1, webhook-hívásonként 1/8 kredit.
  • Nincs mérve: lekérdezés, tárolás, szálak, felhasználók és gráftárolás ingyenes, így a sokat olvasó ügynök olcsón üzemben tartható.
  • Teljesítmény: a szolgáltató 148 ms p95-ös lekérdezési késést közöl 10 000 csomópontos gráfon és 168 ms-ot 100 milliós gráfon.
  • Benchmarkok: a szolgáltató által közölt 94,7 százalék LoCoMón és 90,2 százalék LongMemEvalen, két hosszú beszélgetéses memory benchmarkon.
  • Deployálás: felhő, ügyfél által kezelt kulcsokkal működő felhő vagy saját VPC-n belüli bring-your-own-cloud; a SOC 2 Type II és a HIPAA BAA az Enterprise tarifához tartozik.

Hogyan működik

Minden elküldött üzenet vagy tény egy epizód. A kinyerő lépés modellt kér arra, hogy ismerje fel az entitásokat és relációkat, érvényességi ablakkal írja őket a gráfba, és csak azokat a csomópontokat érinti, amelyet az epizód érint: a javítás lezárja az előző intervallumot a felülírás helyett. A lekérdezés ezután bejárja a gráfot a jelenlegi kérdés témája körül, kiveszi az még érvényes tényeket és a legfrissebb epizódokat, és tokenkereten belül kontextusstringet ad vissza.

Ahogy egy tény eljut a promptigAz alkalmazás által írt üzenetek és tények egy felhasználónkénti, érvényességi ablakkal rendelkező entitás- és kapcsolatgráffá alakulnak. Minden hívásnál a lekérdezés bejárja ezt a gráfot, kihagyja a felülírt állításokat, és a kontextusblokkot a tényeket alátámasztó adatokkal együtt adja vissza.kontextusgráfentitások és tények az időbenAliceCRM-migrációSnowflakeQ3-határidődolgozik rajtafelváltjaget_user_context
A gráf felhasználónként és szálonként készül, a lekérdezés pedig kontextusblokkot állít össze, nem hasonlóság szerint rendezett chunk-listát.

A döntő tervezési választás temporális, nem vektoros. Egy ténynek élettartama van, így a gráf meg tudja mondani, mi igaz most, mi mikor változott, és két ellentétes állítás közül melyik váltja fel a másikat. Egy összefoglaló puffer erre második rendszer nélkül nem képes, a tiszta vektoros lekérdezés pedig azt adja vissza, ami szövegileg hasonlít, beleértve a tény múlt héten javított elavult változatát.

Első lépések

A hostolt quickstart négy hívásból áll. Az alábbi kódrészlet eltárol egy tényt, létrehoz egy szálat, hozzáfűz egy üzenetet, és lekéri azt a kontextust, amit a modellnek kapnia kellene.

from zep_cloud.client import Zep

client = Zep(api_key="zep-...")

# durable facts, extracted into the context graph
client.user.add(user_id="alice", fact="Alice leads the migration off the legacy CRM")

# episodic history: writes are charged as credits by size, retrieval is free
client.thread.create(thread_id="t-1", user_id="alice")
client.thread.add_messages(
    thread_id="t-1",
    messages=[{"role": "user", "content": "Where did we stop on the CRM migration?"}],
)

# what the assistant should see on this turn
context = client.graph.get_user_context(user_id="alice", max_facts=25)
print(context.context)

Két dolog másképp működik, mint egy vektortárolónál. Első: a beírás aszinkron és fizetős, ezért a természetes minta az, hogy az üzeneteket a történéskor küldjük, a kontextust pedig körönként egyszer olvassuk ki. Másodszor: a lekérdezés szöveget ad vissza a támasztó tényekkel, nem chunk-azonosítókat, ami az összefoglalás döntését a promptból a szolgáltatás viszi át; kényelmes, de amit a modell most lát, annak minősége már a Zep kinyerési minősége is, nem csak a saját promptunké.

Teljesítmény és költség

A költség kredit, a kredit pedig bájt: egy 700 bájtos üzenet 2 kredit, a Flex havi 50 000 kredite tehát nagyjából 25 000 átlagos üzenetet bír, mielőtt jön a túlfutás 25 dollárral 10 000 kreditenként. A szokatlan rész az, hogy a lekérdezést nem mérik, pedig azt hívja az ügynök minden körben; a számláló csak íráskor pörög.

MűveletKreditköltségMikor számlázvaMire figyeljen
Epizód 350 bájtig1Minden írásnál: üzenet, tény vagy JSON payloadA beillesztett nyers eszközkimenet a szokásos túllövés
Minden további 350 bájt+1Epizódonként, felfelé kerekítveEgy 1 200 bájtos epizód már 4 kredit
Webhook-hívás1/8Ahol a webhook be van kapcsolvaA sokat beszélő automatizációk csendben összeállnak
Lekérdezés, tárolás, felhasználók0SohaA sokat olvasó ügynök olcsó marad

A self-serve tarifák: Free 10 000 kredittel havonta, Flex 125 dollárért 50 000 kreditért, Flex Plus 375 dollárért 200 000 kreditért, túlfutással 25 dollár 10 000, illetve 75 dollár 40 000 kreditenként. A késési számok szolgáltatóiak: 148 ms p95 lekérdezés 10 000 csomópontnál és 168 ms 100 milliónál, tehát nem esik vissza láthatóan a mérettel, és semmit sem mond a megelőző kinyerő lépés késéséről.

  • A tarifát írásokra méretezze, nem olvasásokra: napi üzenetek száma szorozva átlagos bájttal szorozva kreddel szorozva harminccal.
  • Távolítsa el a nyers eszköztartalmat, mielőtt epizód lenne; az összefoglalt eszközeredmény töredékébe kerül egy átiratnak.
  • Állítson be ténybudgetet a lekérdezésnél, hogy a kontextusblokk nőjön rendszerszöveggé, amit senki nem olvas el.

Ebből semmi sem szokatlan a memory-szolgáltatóknál: mindannyian az írásokat számlázzák és olcsó olvasást ígérnek. Az itteni kockázat a kinyerő lépés, mert amit a kinyerő kihagy, azt később már nem lehet lekérni: a nyers üzenetekből, ha tényekké váltak, nincs második kör.

Árazás

Az ároldal kreditalapú self-serve tarifákat és egy tárgyalt Enterprise tarifát sorol fel. A fizetős belépő a jelenlegi oldalon a Flex 125 dollárral havonta, alatta csak az ingyenes szint van; az Enterprise egyedi krediteket, garantált rate limiteket és a megfelelőségi papírokat adja.

  • Free: 10 000 kredit havonta, két projekt, egy Memory MCP szerver-ülv, változó rate limit, nincs átmentés.
  • Flex: 125 dollár havonta 50 000 kreditért, utána 25 dollár 10 000enként, 600 kérés percenként, öt projekt, 30 napos átmentés, közösségi támogatás.
  • Flex Plus: 375 dollár havonta 200 000 kreditért, utána 75 dollár 40 000enként, 1 000 kérés percenként, observations, webhookok, analitika és hét nap API-napló.
  • Enterprise: egyedi kredit és ár, SOC 2 Type II, HIPAA BAA, egy év audit- és API-napló, DPA EU-s ügyfeleknek, deployálás a saját VPC-ben.

Hol akad el

Kezdje a deployálási gyengeséggel: mióta a Community Editiont 2025 áprilisában megszüntették, a gráfengine, a Graphiti helyben fut, a termék nem, így a légzár vagy szabályozott üzemeltetés Enterprise-téma, a self-serve szinteken pedig nincs SOC 2 Type II és nincs BAA. Másodszor: a memory csak olyan jó, mint a kinyerés, a kinyerés pedig modellhívás, így a kitalált reláció vagy a kihagyott frissítés nem kérdezhető hiba, hanem csendesen rossz kontextus. Harmadszor: a kreditelszámolás attól függővé teszi a költséget, mennyit beszél az ügynök, nem attól, hány felhasználót szolgál ki. Negyedszer: a gráf más hibakeresési felület, mint a csevegésnapló: hogy a modell miért látott egy tényt, csak a gráf magyarázza meg, nem az átirat.

EszközMi azHol győzMiről mond le
ZepHostolt memory API temporális kontextusgráffalÉrvényességi ablakkal rendelkező tények és a szolgáltató szerint 170 ms alatti p95Nincs önállóan üzemeltethető termék, minden írás kreditbe kerül
Mem0Open-source memory réteg hostolt opcióvalEgyszerűbb API és saját kiszolgálóLaposabb memory-modell, kevesebb temporális könyvelés
LangMem és LangGraphMemory építőelemek egy graph frameworkbenMemory a meglévő ügynökök és tárolók mellettA tárolást, a kinyerést és a lekérdezést magának kell összeraknia
Postgres és embeddingekCsevegésnapló táblában, fölötte hasonlóságkeresésNincs új szolgáltató, teljes adatkontrollNincs temporális érvelés, a felülírt tények továbbra is kérhetők

A valódi kérdés az, hogy az elfelejtés-e a hibaforma. Ha az ügynökök megismétlik magukat, ülésről ülésre elveszítenek döntéseket, vagy nem tudják megmondani, mi változott, arra a gráf érvényességi ablakokkal közvetlenül válaszol. Ha a lekérdezés folyamatosan rossz dokumentumot hoz, a memory az egészben nem a megfelelő réteg, és ugyanannyi erőforrás a chunkingba és a rerankingbe hamarabb megtérül.

Ítélet

A Zep jó termék, egyértelmű belépőárral: az elfelejtést jól oldja meg, és az ára az, hogy az egészet nem lehet magunk üzemeltetni. Akik ügynököket visznek ki fizető felhasználókhoz, ahol a látható hiba az, hogy az ügyfél kétszer kapja meg ugyanazt a kérdést, azok vegyék. Akiknél adatmegmaradási követelmény van, azok a Graphitire építsenek, és a körülötte lévő szolgáltatást tartsák sajátban.

  1. Vegye, ha az ügynök azért bukik, mert elfelejt, és a hiba megismételt kérdésekben vagy ülések között elveszett döntésekben mutatkozik meg.
  2. Vegye, ha a memory-írások emberi üzenetek: a kreditmodell akkor a legolcsóbb, ha az epizódok rövidek és ritkák.
  3. Ne vegye önálló üzemeltetéssel, mert 2025 áprilisa óta csak a Graphiti az öné, minden más a Zep felhőjében él.
  4. Ne vegye, ha a lekérdezés minősége és nem a memory a probléma, mert egy memory réteg sem javít ki egy rossz indexet.
  5. Költségvetést készítsen a kinyerő lépésre: minden írás modellhívás, így a költség az ügynök szószátyárságát követi, nem a felhasználók számát.
Az agent memory állapotkezelési probléma AI-jelmezben: egy gráf, amely élettartamot ad a tényeknek, pontosan az, amit a summary buffer nem tud megadni, a számla pedig egy modellhívás minden megjegyezni kívánt üzenetért.

Források

  1. Zep árazás: tarifák, kreditek és korlátok
  2. Zep dokumentáció
  3. Graphiti a GitHubon
  4. Graphiti termékoldal
  5. Új irány a Zep open-source stratégiájában
  6. Graphiti: temporális tudásgráfok AI-ügynökökhöz (arXiv)

Gyakori kérdések

Hogyan számláz a Zep?

Kreddel íráskor: a 350 bájtig tartó epizód 1 kredit, a 640 bájtos 2, az 1 200 bájtos 4 kredit. A lekérdezés, a tárolás, a szálak, a felhasználók és a gráftárolás ingyenes, így a sokat olvasó ügynök olcsón fut tovább.

Üzemeltethető önmagában a Zep?

Nem termékként. A Zep Community Editiont 2025 áprilisában megszüntették, a kód legacy mappában van; a Graphiti, a temporális gráfkönyvtár Apache-2.0 alatt helyben futtatható, a teljes szolgáltatás pedig a saját VPC-ben csak az Enterprise szinten érhető el.

Mennyibe kerül a Zep?

Az ingyenes szint havonta 10 000 kreditet ad, a Flex 125 dollár havonta 50 000 kreditért, túlfutással 25 dollár 10 000 kreditenként, a Flex Plus pedig 375 dollár 200 000 kreditért. Az Enterprise árat tárgyalják, és SOC 2 Type II-t, HIPAA BAA-t és deployálási opciókat ad hozzá.

Mi a különbség a Zep és egy csevegésnaplóhoz használt vektortároló között?

A vektortároló azt adja vissza, ami szövegileg hasonlít, beleértve a felülírt tényeket is, míg a Zep entitásokat és relációkat tárol érvényességi ablakokkal, így a lekérdezés megadhatja, mi igaz most és mi változott. Az ára: minden írásnál modellhívás, és annak hibái kontextussá válnak.

Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.