feat(memory-gateway): 引入 Memory Gateway 配置、凭据存储和服务编排
* 新增 MemoryGatewayConfig 和 MemoryConfig dataclass,用于配置管理。 * 实现 MemoryGatewayUserCredential 和 MemoryGatewayCredentialStore,用于处理用户凭据。 * 创建 MemoryGatewayService,用于管理与 Memory Gateway 的交互。 * 开发用于记忆设置的 JSON 配置文件。 * 增强单元测试,覆盖新功能,包括凭据存储和服务行为。 * 更新 entrypoint 和实例创建脚本,以初始化 Memory Gateway 用户存储。
This commit is contained in:
@ -227,6 +227,7 @@ class AgentLoop:
|
||||
session_id: str | None = None,
|
||||
source: str = "direct",
|
||||
user_id: str | None = None,
|
||||
gateway_user_id: str | None = None,
|
||||
title: str | None = None,
|
||||
execution_context: str | None = None,
|
||||
skill_selection_context: str | None = None,
|
||||
@ -279,6 +280,7 @@ class AgentLoop:
|
||||
session_id=session_id,
|
||||
source=source,
|
||||
user_id=user_id,
|
||||
gateway_user_id=gateway_user_id,
|
||||
title=title,
|
||||
execution_context=execution_context,
|
||||
skill_selection_context=skill_selection_context,
|
||||
@ -319,6 +321,7 @@ class AgentLoop:
|
||||
session_id: str | None = None,
|
||||
source: str = "direct",
|
||||
user_id: str | None = None,
|
||||
gateway_user_id: str | None = None,
|
||||
title: str | None = None,
|
||||
execution_context: str | None = None,
|
||||
skill_selection_context: str | None = None,
|
||||
@ -360,6 +363,13 @@ class AgentLoop:
|
||||
"""
|
||||
|
||||
loaded = self.boot()
|
||||
memory_gateway_service = None
|
||||
gateway_credential_store = getattr(loaded, "memory_gateway_credentials", None)
|
||||
gateway_service_factory = getattr(loaded, "memory_gateway_service_factory", None)
|
||||
if gateway_user_id and gateway_credential_store is not None and gateway_service_factory is not None:
|
||||
gateway_credential = gateway_credential_store.get(gateway_user_id)
|
||||
if gateway_credential is not None:
|
||||
memory_gateway_service = gateway_service_factory(gateway_credential)
|
||||
session_manager = self._require_loaded("session_manager")
|
||||
memory_service = self._require_loaded("memory_service")
|
||||
context_builder = self._require_loaded("context_builder")
|
||||
@ -482,7 +492,6 @@ class AgentLoop:
|
||||
final_model: str | None = resolved_model
|
||||
run_started_at = self._utc_now()
|
||||
activated_receipts: list[SkillActivationReceipt] = []
|
||||
memory_gateway_service = getattr(loaded, "memory_gateway_service", None)
|
||||
try:
|
||||
bundle = provider_bundle or make_provider_bundle(
|
||||
model=resolved_model,
|
||||
|
||||
Reference in New Issue
Block a user