chore(agent-runner): remove comment-only churn

This commit is contained in:
huanghuoguoguo
2026-06-14 10:45:30 +08:00
parent c2673c2535
commit 8d32310102
2 changed files with 24 additions and 24 deletions
+21 -21
View File
@@ -30,7 +30,7 @@ class MCPSessionStatus(enum.Enum):
class RuntimeMCPSession: class RuntimeMCPSession:
"""Runtime MCP session.""" """运行时 MCP 会话"""
ap: app.Application ap: app.Application
@@ -384,12 +384,12 @@ class RuntimeMCPSession:
return info return info
async def shutdown(self): async def shutdown(self):
"""Close the session and release resources.""" """关闭会话并清理资源"""
try: try:
# Signal the lifecycle task to exit. # 设置shutdown事件,通知lifecycle任务退出
self._shutdown_event.set() self._shutdown_event.set()
# Wait for the lifecycle task with a bounded timeout. # 等待lifecycle任务完成(带超时)
if self._lifecycle_task and not self._lifecycle_task.done(): if self._lifecycle_task and not self._lifecycle_task.done():
try: try:
await asyncio.wait_for(self._lifecycle_task, timeout=5.0) await asyncio.wait_for(self._lifecycle_task, timeout=5.0)
@@ -448,9 +448,9 @@ class RuntimeMCPSession:
# @loader.loader_class('mcp') # @loader.loader_class('mcp')
class MCPLoader(loader.ToolLoader): class MCPLoader(loader.ToolLoader):
"""MCP tool loader. """MCP 工具加载器。
This loader owns all active MCP server connections. 在此加载器中管理所有与 MCP Server 的连接。
""" """
sessions: dict[str, RuntimeMCPSession] sessions: dict[str, RuntimeMCPSession]
@@ -505,14 +505,14 @@ class MCPLoader(loader.ToolLoader):
self.ap.logger.debug(f'Started MCP server {server_config["name"]}({server_config["uuid"]})') self.ap.logger.debug(f'Started MCP server {server_config["name"]}({server_config["uuid"]})')
async def load_mcp_server(self, server_config: dict) -> RuntimeMCPSession: async def load_mcp_server(self, server_config: dict) -> RuntimeMCPSession:
"""Load an MCP server into the runtime. """加载 MCP 服务器到运行时
Args: Args:
server_config: Server config dict. Must include: server_config: 服务器配置字典,必须包含:
- name: Server name. - name: 服务器名称
- mode: Connection mode (stdio/sse/http). - mode: 连接模式 (stdio/sse/http)
- enable: Whether the server is enabled. - enable: 是否启用
- extra_args: Optional extra config. - extra_args: 额外的配置参数 (可选)
""" """
uuid_ = server_config.get('uuid') uuid_ = server_config.get('uuid')
is_transient = False is_transient = False
@@ -560,7 +560,7 @@ class MCPLoader(loader.ToolLoader):
return all_functions return all_functions
async def has_tool(self, name: str) -> bool: async def has_tool(self, name: str) -> bool:
"""Return whether a loaded MCP tool exists.""" """检查工具是否存在"""
for session in self.sessions.values(): for session in self.sessions.values():
for function in session.get_tools(): for function in session.get_tools():
if function.name == name: if function.name == name:
@@ -583,7 +583,7 @@ class MCPLoader(loader.ToolLoader):
return None return None
async def invoke_tool(self, name: str, parameters: dict, query: pipeline_query.Query | None) -> typing.Any: async def invoke_tool(self, name: str, parameters: dict, query: pipeline_query.Query | None) -> typing.Any:
"""Invoke a loaded MCP tool.""" """执行工具调用"""
for session in self.sessions.values(): for session in self.sessions.values():
for function in session.get_tools(): for function in session.get_tools():
if function.name == name: if function.name == name:
@@ -599,7 +599,7 @@ class MCPLoader(loader.ToolLoader):
raise ValueError(f'Tool not found: {name}') raise ValueError(f'Tool not found: {name}')
async def remove_mcp_server(self, server_name: str): async def remove_mcp_server(self, server_name: str):
"""Remove an MCP server from the runtime.""" """移除 MCP 服务器"""
if server_name not in self.sessions: if server_name not in self.sessions:
self.ap.logger.warning(f'MCP server {server_name} not found in sessions, skipping removal') self.ap.logger.warning(f'MCP server {server_name} not found in sessions, skipping removal')
return return
@@ -609,24 +609,24 @@ class MCPLoader(loader.ToolLoader):
self.ap.logger.info(f'Removed MCP server: {server_name}') self.ap.logger.info(f'Removed MCP server: {server_name}')
def get_session(self, server_name: str) -> RuntimeMCPSession | None: def get_session(self, server_name: str) -> RuntimeMCPSession | None:
"""Get an MCP session by server name.""" """获取指定名称的 MCP 会话"""
return self.sessions.get(server_name) return self.sessions.get(server_name)
def has_session(self, server_name: str) -> bool: def has_session(self, server_name: str) -> bool:
"""Return whether a session exists for the server name.""" """检查是否存在指定名称的 MCP 会话"""
return server_name in self.sessions return server_name in self.sessions
def get_all_server_names(self) -> list[str]: def get_all_server_names(self) -> list[str]:
"""Return all loaded MCP server names.""" """获取所有已加载的 MCP 服务器名称"""
return list(self.sessions.keys()) return list(self.sessions.keys())
def get_server_tool_count(self, server_name: str) -> int: def get_server_tool_count(self, server_name: str) -> int:
"""Return the number of tools exposed by one MCP server.""" """获取指定服务器的工具数量"""
session = self.get_session(server_name) session = self.get_session(server_name)
return len(session.get_tools()) if session else 0 return len(session.get_tools()) if session else 0
def get_all_servers_info(self) -> dict[str, dict]: def get_all_servers_info(self) -> dict[str, dict]:
"""Return runtime information for all loaded MCP servers.""" """获取所有服务器的信息"""
info = {} info = {}
for server_name, session in self.sessions.items(): for server_name, session in self.sessions.items():
tools = session.get_tools() tools = session.get_tools()
@@ -640,7 +640,7 @@ class MCPLoader(loader.ToolLoader):
return info return info
async def shutdown(self): async def shutdown(self):
"""Shut down all MCP sessions.""" """关闭所有工具"""
self.ap.logger.info('Shutting down all MCP sessions...') self.ap.logger.info('Shutting down all MCP sessions...')
for server_name, session in list(self.sessions.items()): for server_name, session in list(self.sessions.items()):
try: try:
+3 -3
View File
@@ -5,10 +5,10 @@ import typing
def import_modules_in_pkg(pkg: typing.Any) -> None: def import_modules_in_pkg(pkg: typing.Any) -> None:
"""Import all Python modules inside a package. """
导入一个包内的所有模块
Args: Args:
pkg: Package object to import from. pkg: 要导入的包对象
""" """
pkg_path = os.path.dirname(pkg.__file__) pkg_path = os.path.dirname(pkg.__file__)
import_dir(pkg_path) import_dir(pkg_path)