From c23eb7d88efb4f674fd82147e3f6bf01b87da11a Mon Sep 17 00:00:00 2001 From: Foolllll-J Date: Thu, 30 Jul 2026 16:07:06 +0800 Subject: [PATCH] fix: re-apply llm tool inactivation state after plugin initialize() to prevent tools registered via add_llm_tools() from being auto-enabled on reload (#9440) --- astrbot/core/star/star_manager.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/astrbot/core/star/star_manager.py b/astrbot/core/star/star_manager.py index 41d90cd560..ac8f39a0d6 100644 --- a/astrbot/core/star/star_manager.py +++ b/astrbot/core/star/star_manager.py @@ -1417,6 +1417,14 @@ async def load( if hasattr(metadata.star_cls, "initialize") and metadata.star_cls: await metadata.star_cls.initialize() + # 在 initialize() 之后重新应用工具失活状态,以便捕获 + # 在 initialize() 内通过 add_llm_tools() 注册的工具。 + if metadata.module_path: + for ft in llm_tools.func_list: + if self._is_plugin_llm_tool(ft, metadata.module_path): + if ft.name in inactivated_llm_tools: + ft.active = False + # 触发插件加载事件 handlers = star_handlers_registry.get_handlers_by_event_type( EventType.OnPluginLoadedEvent,