A Mastra memóriarendszere már a megfigyelési ciklusokba is beavatkozik

A Mastra memóriahorgokat vezetett be, amelyekkel a fejlesztők követhetik és módosíthatják az Observer és a Reflector által feldolgozott adatokat. A megoldás a költségek naplózására, a zajos eszközkimenetek szűrésére és érzékeny adatok kitakarására is használható.
- A Mastra életciklus- és átalakítóhorgokat adott az Observational Memory rendszeréhez.
- A fejlesztők naplózhatják a ciklusokat és a tokenhasználatot.
- A memória mentése előtt szűrhetők a zajos kimenetek, a belső jegyzetek és az érzékeny adatok.
- A skillResultRedactor() helyőrzőre cseréli a Skill teljes fájltartalmát.
- A funkcióhoz az @mastra/memory 1.31.0 vagy újabb verziója szükséges.
Kétféle horog került a memóriarendszerbe
A Mastra 2026. szeptember 29-i bejelentése szerint a memóriahorgok közvetlenül a megfigyelési és reflexiós ciklusokban működnek. A fejlesztők így külsőleg figyelhetik, mi történik egy ciklus során, illetve módosíthatják azokat az adatokat, amelyeket az Observer és a Reflector lát vagy elment.
A Lifecycle hooks, vagyis életciklus-horgok a ciklusok kezdetén és végén futnak le. Ide tartozik az onObservationStart, az onObservationEnd, az onReflectionStart és az onReflectionEnd. Ezekkel például naplózható a ciklusonkénti tokenhasználat, így észlelhető egy költségugrás, vagy követhető, miért felejtett el valamit egy ügynök.
A Transform hooks, vagyis átalakítóhorgok a memória tényleges adatain dolgoznak. A beforeObservation és az afterObservation a megfigyelési adatokat, a beforeReflection és az afterReflection pedig a reflexió bemenetét vagy kimenetét módosíthatja.
Szűrhető a zajos eszközkimenet és a belső tartalom
A Mastra példája szerint egy fejlesztő még azelőtt eltávolíthat egy nagyméretű eszközkimenetet, hogy azt az Observer látná. A bemutatott konfiguráció 2000 karakteres küszöböt használ. Ha egy eszközhívás eredménye ennél hosszabb, a rendszer a teljes tartalom helyett a [search results omitted from memory] helyőrzőt adja át a memóriának.
Az átalakítóhorgokkal megfigyelések kitakarása, a Reflector által tömörített szöveg átírása, valamint a mentés előtti kimenet módosítása is megoldható. A forrás szerint így eltávolítható a zajos eszközkimenet és a belső gondolkodás, továbbá kitakarhatók a titkok és a személyes adatok.
A horgok minden végrehajtási útvonalon megvárják az eredményt. Ez vonatkozik a kézzel indított observe() és reflect() műveletekre, a fordulóval szinkronban futó megfigyelésre és az aszinkron pufferelésre is. Ha egy átalakítóhorog nem ad vissza értéket, a bemenet változatlanul halad tovább.
Kész megoldás a Skill eredményeinek kitakarására
A Mastra egy előre elkészített átalakítóhorgot, a skillResultRedactor() függvényt is mellékelte. Amikor egy ügynök Skillt használ, az eszköz eredménye a Skill teljes fájltartalmát tartalmazhatja, ezért az Observer ezt minden alkalommal látná. A redaktor a fájl tartalmát helyőrzőre cseréli, miközben az ügynök továbbra is emlékszik a Skillre.
A használathoz az @mastra/memory csomag és egy tárolóadapter telepítése szükséges. A tárolóadapter kötelező az Observational Memory használatához. A Mastra példája a @mastra/libsql csomagot és egy LibSQL-alapú tárolót alkalmaz, az Observer modelljeként pedig a google/gemini-2.5-flash szerepel.
A funkció használatához az @mastra/[email protected] vagy újabb verzió kell. A változtatást a forrás a 23167-es és a 24220-as pull requesthez köti. A teljes konfigurációról a Mastra az Observational memory hooks, a Redact skill results és az Observational Memory oldalain közöl további információkat.
Mastra: Introducing Memory Hooks | Mastra Blog


