diff --git a/main/xiaozhi-server/core/handle/functionHandler.py b/main/xiaozhi-server/core/handle/functionHandler.py index bb58ead9..9650a31b 100644 --- a/main/xiaozhi-server/core/handle/functionHandler.py +++ b/main/xiaozhi-server/core/handle/functionHandler.py @@ -21,26 +21,8 @@ class FunctionHandler: self.register_nessary_functions() self.register_config_functions() self.functions_desc = self.function_registry.get_all_function_desc() - func_names = self.current_support_functions() - self.modify_plugin_loader_des(func_names) self.finish_init = True - def modify_plugin_loader_des(self, func_names): - if "plugin_loader" not in func_names: - return - # 可编辑的列表中去掉plugin_loader - surport_plugins = [func for func in func_names if func != "plugin_loader"] - func_names = ",".join(surport_plugins) - for function_desc in self.functions_desc: - if function_desc["function"]["name"] == "plugin_loader": - function_desc["function"]["description"] = function_desc["function"][ - "description" - ].replace("[plugins]", func_names) - break - - def upload_functions_desc(self): - self.functions_desc = self.function_registry.get_all_function_desc() - def current_support_functions(self): func_names = [] for func in self.functions_desc: @@ -58,7 +40,6 @@ class FunctionHandler: def register_nessary_functions(self): """注册必要的函数""" self.function_registry.register_function("handle_exit_intent") - self.function_registry.register_function("plugin_loader") self.function_registry.register_function("get_time") self.function_registry.register_function("get_lunar") diff --git a/main/xiaozhi-server/core/handle/iotHandle.py b/main/xiaozhi-server/core/handle/iotHandle.py index 5cf2d204..307922c3 100644 --- a/main/xiaozhi-server/core/handle/iotHandle.py +++ b/main/xiaozhi-server/core/handle/iotHandle.py @@ -338,7 +338,6 @@ async def handleIotDescriptors(conn, descriptors): # 如果注册了新函数,更新function描述列表 if functions_changed and hasattr(conn, "func_handler"): - conn.func_handler.upload_functions_desc() func_names = conn.func_handler.current_support_functions() conn.logger.bind(tag=TAG).info(f"设备类型: {type_id}") conn.logger.bind(tag=TAG).info( diff --git a/main/xiaozhi-server/core/mcp/manager.py b/main/xiaozhi-server/core/mcp/manager.py index dc2f9de9..9580f862 100644 --- a/main/xiaozhi-server/core/mcp/manager.py +++ b/main/xiaozhi-server/core/mcp/manager.py @@ -75,7 +75,6 @@ class MCPManager: self.conn.logger.bind(tag=TAG).error( f"Failed to initialize MCP server {name}: {e}" ) - self.conn.func_handler.upload_functions_desc() def get_all_tools(self) -> List[Dict[str, Any]]: """获取所有服务的工具function定义 diff --git a/main/xiaozhi-server/plugins_func/functions/plugin_loader.py b/main/xiaozhi-server/plugins_func/functions/plugin_loader.py deleted file mode 100644 index 7041d7a0..00000000 --- a/main/xiaozhi-server/plugins_func/functions/plugin_loader.py +++ /dev/null @@ -1,56 +0,0 @@ -from plugins_func.register import register_function, ToolType, ActionResponse, Action - -plugin_loader_function_desc = { - "type": "function", - "function": { - "name": "plugin_loader", - "description": "当用户想加载或卸载插件/function时,调用此函数:支持的插件列表为[plugins]", - "parameters": { - "type": "object", - "properties": { - "oper": {"type": "string", "description": "load or unload"}, - "name": {"type": "string", "description": "要加载或卸载的插件名字"}, - }, - "required": ["oper", "name"], - }, - }, -} - - -@register_function("plugin_loader", plugin_loader_function_desc, ToolType.SYSTEM_CTL) -def plugin_loader(conn, oper: str, name: str): - """插件加载""" - if oper not in ["load", "unload"]: - return ActionResponse( - action=Action.RESPONSE, result="插件操作失败", response="不支持的操作" - ) - - cur_support = conn.func_handler.current_support_functions() - if oper == "load": - if name in cur_support: - return ActionResponse( - action=Action.RESPONSE, - result="插件加载失败", - response=f"{name}插件已加载,无需重复加载", - ) - func = conn.func_handler.function_registry.register_function(name) - if not func: - return ActionResponse( - action=Action.RESPONSE, result="插件加载失败", response="插件未找到" - ) - res = f"{name}插件加载成功" - else: - if name not in cur_support: - return ActionResponse( - action=Action.RESPONSE, - result="插件卸载失败", - response=f"{name}插件未加载", - ) - bOK = conn.func_handler.function_registry.unregister_function(name) - if not bOK: - return ActionResponse( - action=Action.RESPONSE, result="插件卸载失败", response="插件未找到" - ) - res = f"{name}插件卸载成功" - conn.func_handler.upload_functions_desc() - return ActionResponse(action=Action.RESPONSE, result="插件操作成功", response=res)