模块: gateway/core/lifecycle/
module/file.py:function_nameAgent 生命周期管理,包括:
说明: Trace 元数据由 Agent 框架管理,Gateway 不维护副本
基于 Agent Core 架构(详见 ../../../agent/docs/architecture.md):
~/.gateway/workspaces/{workspace_id}/gateway/core/lifecycle/
├── trace_manager.py # Trace 注册和元数据管理
├── workspace_manager.py # Workspace 管理
└── config_watcher.py # 配置热重载
实现位置: gateway/core/lifecycle/trace_manager.py
职责:
核心接口:
class TraceManager:
def create_trace(
self,
workspace_id: str,
agent_type: str, # "personal_assistant" | "digital_employee"
metadata: dict = None
) -> str:
"""创建新 Trace,返回 trace_id"""
pass
def get_trace(self, trace_id: str) -> dict:
"""查询 Trace 信息(调用 Agent 框架)"""
pass
def list_traces(
self,
workspace_id: str = None,
agent_type: str = None
) -> list[dict]:
"""查询 Trace 列表"""
pass
def get_workspace_id(self, trace_id: str) -> str:
"""获取 Trace 对应的 workspace_id"""
pass
实现位置: gateway/core/lifecycle/workspace_manager.py
职责:
核心接口:
class WorkspaceManager:
def create_workspace(self, workspace_id: str) -> str:
"""创建 Workspace 目录,返回路径"""
pass
def get_workspace_path(self, workspace_id: str) -> str:
"""获取 Workspace 路径"""
pass
def add_trace_ref(self, workspace_id: str, trace_id: str):
"""增加 Trace 引用"""
pass
def remove_trace_ref(self, workspace_id: str, trace_id: str):
"""移除 Trace 引用"""
pass
def cleanup_workspace(self, workspace_id: str, force: bool = False):
"""清理 Workspace(检查引用计数,force=True 强制清理)"""
pass
def list_workspaces(self) -> list[dict]:
"""列出所有 Workspace 及其引用计数"""
pass
实现位置: gateway/core/lifecycle/config_watcher.py
职责:
核心接口:
class ConfigWatcher:
def watch(self, workspace_id: str, callback: callable):
"""监听指定 Workspace 的配置变化"""
pass
def stop_watch(self, workspace_id: str):
"""停止监听"""
pass
TraceManager.create_trace(workspace_id=user_id, agent_type="personal_assistant")WorkspaceManager.create_workspace(workspace_id=user_id)(如果不存在)WorkspaceManager.add_trace_ref(workspace_id=user_id, trace_id=trace_id)TraceManager.create_trace(workspace_id=主Agent的workspace_id, agent_type=...)WorkspaceManager.add_trace_ref(workspace_id, 子trace_id)WorkspaceManager.remove_trace_ref(...)WorkspaceManager.remove_trace_ref(...)