From 8d3231010294ce277fd26676cb10d57c77d52ca8 Mon Sep 17 00:00:00 2001 From: huanghuoguoguo <60681390+huanghuoguoguo@users.noreply.github.com> Date: Sun, 14 Jun 2026 10:45:30 +0800 Subject: [PATCH] chore(agent-runner): remove comment-only churn --- src/langbot/pkg/provider/tools/loaders/mcp.py | 42 +++++++++---------- src/langbot/pkg/utils/importutil.py | 6 +-- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/langbot/pkg/provider/tools/loaders/mcp.py b/src/langbot/pkg/provider/tools/loaders/mcp.py index 269ab424..43b3be1f 100644 --- a/src/langbot/pkg/provider/tools/loaders/mcp.py +++ b/src/langbot/pkg/provider/tools/loaders/mcp.py @@ -30,7 +30,7 @@ class MCPSessionStatus(enum.Enum): class RuntimeMCPSession: - """Runtime MCP session.""" + """运行时 MCP 会话""" ap: app.Application @@ -384,12 +384,12 @@ class RuntimeMCPSession: return info async def shutdown(self): - """Close the session and release resources.""" + """关闭会话并清理资源""" try: - # Signal the lifecycle task to exit. + # 设置shutdown事件,通知lifecycle任务退出 self._shutdown_event.set() - # Wait for the lifecycle task with a bounded timeout. + # 等待lifecycle任务完成(带超时) if self._lifecycle_task and not self._lifecycle_task.done(): try: await asyncio.wait_for(self._lifecycle_task, timeout=5.0) @@ -448,9 +448,9 @@ class RuntimeMCPSession: # @loader.loader_class('mcp') class MCPLoader(loader.ToolLoader): - """MCP tool loader. + """MCP 工具加载器。 - This loader owns all active MCP server connections. + 在此加载器中管理所有与 MCP Server 的连接。 """ 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"]})') async def load_mcp_server(self, server_config: dict) -> RuntimeMCPSession: - """Load an MCP server into the runtime. + """加载 MCP 服务器到运行时 Args: - server_config: Server config dict. Must include: - - name: Server name. - - mode: Connection mode (stdio/sse/http). - - enable: Whether the server is enabled. - - extra_args: Optional extra config. + server_config: 服务器配置字典,必须包含: + - name: 服务器名称 + - mode: 连接模式 (stdio/sse/http) + - enable: 是否启用 + - extra_args: 额外的配置参数 (可选) """ uuid_ = server_config.get('uuid') is_transient = False @@ -560,7 +560,7 @@ class MCPLoader(loader.ToolLoader): return all_functions async def has_tool(self, name: str) -> bool: - """Return whether a loaded MCP tool exists.""" + """检查工具是否存在""" for session in self.sessions.values(): for function in session.get_tools(): if function.name == name: @@ -583,7 +583,7 @@ class MCPLoader(loader.ToolLoader): return None 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 function in session.get_tools(): if function.name == name: @@ -599,7 +599,7 @@ class MCPLoader(loader.ToolLoader): raise ValueError(f'Tool not found: {name}') async def remove_mcp_server(self, server_name: str): - """Remove an MCP server from the runtime.""" + """移除 MCP 服务器""" if server_name not in self.sessions: self.ap.logger.warning(f'MCP server {server_name} not found in sessions, skipping removal') return @@ -609,24 +609,24 @@ class MCPLoader(loader.ToolLoader): self.ap.logger.info(f'Removed MCP server: {server_name}') def get_session(self, server_name: str) -> RuntimeMCPSession | None: - """Get an MCP session by server name.""" + """获取指定名称的 MCP 会话""" return self.sessions.get(server_name) def has_session(self, server_name: str) -> bool: - """Return whether a session exists for the server name.""" + """检查是否存在指定名称的 MCP 会话""" return server_name in self.sessions def get_all_server_names(self) -> list[str]: - """Return all loaded MCP server names.""" + """获取所有已加载的 MCP 服务器名称""" return list(self.sessions.keys()) 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) return len(session.get_tools()) if session else 0 def get_all_servers_info(self) -> dict[str, dict]: - """Return runtime information for all loaded MCP servers.""" + """获取所有服务器的信息""" info = {} for server_name, session in self.sessions.items(): tools = session.get_tools() @@ -640,7 +640,7 @@ class MCPLoader(loader.ToolLoader): return info async def shutdown(self): - """Shut down all MCP sessions.""" + """关闭所有工具""" self.ap.logger.info('Shutting down all MCP sessions...') for server_name, session in list(self.sessions.items()): try: diff --git a/src/langbot/pkg/utils/importutil.py b/src/langbot/pkg/utils/importutil.py index a2d28c58..a35052a6 100644 --- a/src/langbot/pkg/utils/importutil.py +++ b/src/langbot/pkg/utils/importutil.py @@ -5,10 +5,10 @@ import typing def import_modules_in_pkg(pkg: typing.Any) -> None: - """Import all Python modules inside a package. - + """ + 导入一个包内的所有模块 Args: - pkg: Package object to import from. + pkg: 要导入的包对象 """ pkg_path = os.path.dirname(pkg.__file__) import_dir(pkg_path)