Add gfa_core/mas/memory module

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
potaser
2026-08-07 09:52:43 +08:00
co-authored by Claude Opus 5
parent c389e90e64
commit 842455dd78
8 changed files with 1177 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
from abc import ABC, abstractmethod
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Generic, TypeVar
T = TypeVar("T")
@dataclass
class MemoryEntry(Generic[T]):
key: str
value: T
created_at: datetime = field(default_factory=datetime.now)
updated_at: datetime = field(default_factory=datetime.now)
ttl: int | None = None
metadata: dict[str, Any] = field(default_factory=dict)
@dataclass
class SearchResult:
key: str
value: Any
score: float
metadata: dict[str, Any] = field(default_factory=dict)
class BaseMemory(ABC):
@abstractmethod
async def store(self, key: str, value: Any, ttl: int | None = None) -> None:
pass
@abstractmethod
async def retrieve(self, key: str) -> Any | None:
pass
@abstractmethod
async def delete(self, key: str) -> bool:
pass
@abstractmethod
async def exists(self, key: str) -> bool:
pass
@abstractmethod
async def clear(self) -> None:
pass