11"""Hermes Agent memory provider integration for Vektori."""
22
3- from typing import Dict , List , Any
4- import asyncio
3+ from typing import Any
54
65# Assuming a mock BaseMemoryProvider that Hermes Agent uses
76try :
@@ -12,44 +11,45 @@ class BaseMemoryProvider:
1211
1312from vektori import Vektori
1413
14+
1515class VektoriHermesMemory (BaseMemoryProvider ):
1616 """
1717 Vektori's episodic graph memory as a Hermes Memory Provider.
1818 Provides semantic recall that feeds into Hermes' self-improvement loop.
1919 """
20-
20+
2121 def __init__ (self , vektori_instance : Vektori , user_id : str ):
2222 self .memory = vektori_instance
2323 self .user_id = user_id
24-
25- async def add_memory (self , text : str , metadata : Dict [str , Any ] = None ) -> str :
24+
25+ async def add_memory (self , text : str , metadata : dict [str , Any ] = None ) -> str :
2626 """Store a new fact/episode from the Hermes agent into Vektori."""
2727 result = await self .memory .add (
2828 messages = [{"role" : "user" , "content" : text }],
2929 user_id = self .user_id ,
3030 metadata = metadata
3131 )
3232 return result .get ('status' , 'success' )
33-
34- async def search_memory (self , query : str , limit : int = 5 ) -> List [ Dict [str , Any ]]:
33+
34+ async def search_memory (self , query : str , limit : int = 5 ) -> list [ dict [str , Any ]]:
3535 """Retrieve L1 (Facts + Episodes) depth context for Hermes prompt injection."""
3636 results = await self .memory .search (
37- query = query ,
38- user_id = self .user_id ,
37+ query = query ,
38+ user_id = self .user_id ,
3939 depth = "l1" ,
4040 top_k = limit
4141 )
42-
42+
4343 # Hermes usually expects a flat list of memory dicts
4444 memories = []
4545 for f in results .get ("facts" , []):
4646 memories .append ({"type" : "fact" , "content" : f ["text" ], "score" : f .get ("score" )})
4747 for ep in results .get ("episodes" , []):
4848 memories .append ({"type" : "episode" , "content" : ep ["text" ], "score" : 1.0 })
49-
49+
5050 return memories
5151
5252 async def clear (self ) -> None :
5353 """Clear memory for the current user."""
54- # Vektori users would need an explicit delete endpoint,
54+ # Vektori users would need an explicit delete endpoint,
5555 pass
0 commit comments