模块: gateway/core/lifecycle/
module/file.py:function_nameAgent 生命周期管理,包括:
说明: Trace 元数据由 Agent 框架管理,Gateway 不维护副本
基于 Agent Core 架构(详见 ../../../agent/docs/architecture.md):
~/.gateway/workspaces/{workspace_id}/gateway/core/lifecycle/
├── __init__.py # 聚合导出(TraceManager、WorkspaceManager 等)
├── errors.py # LifecycleError、WorkspaceDockerError
├── config_watcher.py # 配置热重载
├── workspace/
│ ├── manager.py # WorkspaceManager(目录、引用计数)
│ └── docker_runner.py # WorkspaceDockerRunner(沙箱容器)
└── trace/
├── manager.py # TraceManager(Agent API 代理与本地登记)
└── backend.py # LifecycleTraceBackend(channels.TraceBackend)
实现位置: 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(Docker 编排见同目录 docker_runner.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(...)