feat: add Memory Gateway integration with async support for memory snapshots and user management

This commit is contained in:
2026-06-04 17:00:02 +08:00
parent 236ac19789
commit d93ca62990
13 changed files with 949 additions and 2 deletions

View File

@ -14,6 +14,8 @@ from beaver.engine.session import SessionManager
from beaver.foundation.config import BeaverConfig, load_config
from beaver.integrations.mcp import MCPConnectionManager
from beaver.memory.curated.store import MemoryStore
from beaver.memory.gateway import MemoryGatewayClient, MemoryGatewayUserStore
from beaver.memory.gateway.service import GatewayAugmentedMemoryService
from beaver.memory.runs import RunMemoryStore
from beaver.memory.skills import SkillLearningStore
from beaver.services.memory_service import MemoryService
@ -206,7 +208,26 @@ class EngineLoader:
curated_root = workspace / "memory" / "curated"
curated_memory_store = self._curated_memory_store or MemoryStore(curated_root)
memory_service = self._memory_service or MemoryService(curated_root, store=curated_memory_store)
if self._memory_service is not None:
memory_service = self._memory_service
else:
local_memory_service = MemoryService(curated_root, store=curated_memory_store)
memory_cfg = self.config.memory
if memory_cfg.mode == "gateway" and memory_cfg.gateway.base_url:
gateway_store = MemoryGatewayUserStore(workspace / "memory" / "gateway" / "state.db")
gateway_client = MemoryGatewayClient(
base_url=memory_cfg.gateway.base_url,
api_key=memory_cfg.gateway.api_key,
timeout_seconds=memory_cfg.gateway.timeout_seconds,
store=gateway_store,
)
memory_service = GatewayAugmentedMemoryService(
local_service=local_memory_service,
client=gateway_client,
config=memory_cfg.gateway,
)
else:
memory_service = local_memory_service
memory_service.initialize()
run_memory_store = self._run_memory_store or RunMemoryStore(workspace / "memory" / "runs")
skill_learning_store = self._skill_learning_store or SkillLearningStore(workspace / "memory" / "skills")