Add Memory Gateway agent plugin

This commit is contained in:
2026-05-06 16:10:04 +08:00
parent e65731a273
commit c44af407d4
48 changed files with 3111 additions and 0 deletions

View File

@ -0,0 +1,50 @@
from __future__ import annotations
import os
from dataclasses import dataclass
def _env_bool(name: str, default: bool) -> bool:
value = os.environ.get(name)
if value is None:
return default
return value.strip().lower() in {"1", "true", "yes", "on"}
@dataclass(frozen=True)
class PluginConfig:
gateway_url: str = "http://127.0.0.1:1934"
api_key: str = ""
default_user_id: str = ""
default_agent_id: str = ""
default_workspace_id: str = ""
auto_search: bool = True
auto_append_episode: bool = True
auto_commit_session: bool = False
review_mode: bool = True
timeout: int = 30
@classmethod
def from_env(cls) -> "PluginConfig":
try:
timeout_val = int(os.environ.get("MEMORY_GATEWAY_TIMEOUT", "30"))
except ValueError:
timeout_val = 30
return cls(
gateway_url=os.environ.get("MEMORY_GATEWAY_URL", cls.gateway_url).rstrip("/"),
api_key=os.environ.get("MEMORY_GATEWAY_API_KEY", ""),
default_user_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_USER_ID", ""),
default_agent_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_AGENT_ID", ""),
default_workspace_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_WORKSPACE_ID", ""),
auto_search=_env_bool("MEMORY_GATEWAY_AUTO_SEARCH", True),
auto_append_episode=_env_bool("MEMORY_GATEWAY_AUTO_APPEND_EPISODE", True),
auto_commit_session=_env_bool("MEMORY_GATEWAY_AUTO_COMMIT_SESSION", False),
review_mode=_env_bool("MEMORY_GATEWAY_REVIEW_MODE", True),
timeout=timeout_val,
)
def load_config() -> PluginConfig:
return PluginConfig.from_env()