Update runtime.py
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user