Update runtime.py

This commit is contained in:
SengokuCola
2026-05-09 18:38:40 +08:00
parent a556a5a8ed
commit 60b0b41e80

View File

@@ -29,6 +29,7 @@ from src.learners.jargon_miner import JargonMiner
from src.llm_models.payload_content.resp_format import RespFormat from src.llm_models.payload_content.resp_format import RespFormat
from src.llm_models.payload_content.tool_option import ToolDefinitionInput from src.llm_models.payload_content.tool_option import ToolDefinitionInput
from src.mcp_module import MCPManager from src.mcp_module import MCPManager
from src.mcp_module.config import build_mcp_server_runtime_configs
from src.mcp_module.host_llm_bridge import MCPHostLLMBridge from src.mcp_module.host_llm_bridge import MCPHostLLMBridge
from src.mcp_module.provider import MCPToolProvider from src.mcp_module.provider import MCPToolProvider
from src.plugin_runtime.tool_provider import PluginToolProvider from src.plugin_runtime.tool_provider import PluginToolProvider
@@ -682,6 +683,7 @@ class MaisakaHeartFlowChatting:
return return
if self._internal_loop_task is None or self._internal_loop_task.done(): if self._internal_loop_task is None or self._internal_loop_task.done():
is_restart = self._internal_loop_task is not None
if self._internal_loop_task is not None and not self._internal_loop_task.cancelled(): if self._internal_loop_task is not None and not self._internal_loop_task.cancelled():
try: try:
exc = self._internal_loop_task.exception() exc = self._internal_loop_task.exception()
@@ -690,7 +692,10 @@ class MaisakaHeartFlowChatting:
if exc is not None: if exc is not None:
logger.error(f"{self.log_prefix} 内部循环任务异常退出: {exc}") logger.error(f"{self.log_prefix} 内部循环任务异常退出: {exc}")
self._internal_loop_task = asyncio.create_task(self._reasoning_engine.run_loop()) self._internal_loop_task = asyncio.create_task(self._reasoning_engine.run_loop())
if is_restart:
logger.warning(f"{self.log_prefix} 已重新拉起 Maisaka 内部循环任务") logger.warning(f"{self.log_prefix} 已重新拉起 Maisaka 内部循环任务")
else:
logger.debug(f"{self.log_prefix} 已启动 Maisaka 内部循环任务")
def _register_tool_providers(self) -> None: def _register_tool_providers(self) -> None:
"""注册 Maisaka 运行时默认启用的工具 Provider。""" """注册 Maisaka 运行时默认启用的工具 Provider。"""
@@ -1197,6 +1202,10 @@ class MaisakaHeartFlowChatting:
async def _init_mcp(self) -> None: async def _init_mcp(self) -> None:
"""初始化 MCP 工具并注册到统一工具层。""" """初始化 MCP 工具并注册到统一工具层。"""
if not build_mcp_server_runtime_configs(global_config.mcp):
logger.debug(f"{self.log_prefix} 未配置可用的 MCP 服务,跳过 Maisaka MCP 初始化")
return
self._mcp_host_bridge = MCPHostLLMBridge( self._mcp_host_bridge = MCPHostLLMBridge(
sampling_task_name=global_config.mcp.client.sampling.task_name, sampling_task_name=global_config.mcp.client.sampling.task_name,
) )
@@ -1205,7 +1214,7 @@ class MaisakaHeartFlowChatting:
host_callbacks=self._mcp_host_bridge.build_callbacks(), host_callbacks=self._mcp_host_bridge.build_callbacks(),
) )
if self._mcp_manager is None: if self._mcp_manager is None:
logger.info(f"{self.log_prefix} Maisaka MCP 管理器不可用") logger.warning(f"{self.log_prefix} Maisaka MCP 管理器初始化失败MCP 工具不会注册")
return return
mcp_tool_specs = self._mcp_manager.get_tool_specs() mcp_tool_specs = self._mcp_manager.get_tool_specs()