From 36443f1db522a78d4373b5c6b51784ba9601d672 Mon Sep 17 00:00:00 2001 From: whatevertogo Date: Thu, 19 Mar 2026 07:18:26 +0800 Subject: [PATCH] Refactor tool call handling in SdkPluginBridge - Introduced a dictionary to map tool call IDs to tool names for better clarity and efficiency. - Enhanced the extraction of tool call information from raw results, ensuring compatibility with both dictionary and object formats. - Updated the logic to retrieve tool names based on tool call IDs, improving the robustness of the tool calls result processing. --- .../runtime/_capability_router_builtins.py | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/astrbot_sdk/runtime/_capability_router_builtins.py b/src/astrbot_sdk/runtime/_capability_router_builtins.py index 72dfe59dd..57c19283c 100644 --- a/src/astrbot_sdk/runtime/_capability_router_builtins.py +++ b/src/astrbot_sdk/runtime/_capability_router_builtins.py @@ -176,10 +176,12 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): self._register_platform_capabilities() self._register_http_capabilities() self._register_metadata_capabilities() - self._register_p0_5_capabilities() - self._register_p0_6_capabilities() - self._register_p1_2_capabilities() - self._register_p1_3_capabilities() + self._register_provider_capabilities() + self._register_agent_tool_capabilities() + self._register_session_capabilities() + self._register_persona_conversation_kb_capabilities() + self._register_provider_manager_capabilities() + self._register_platform_manager_capabilities() self._register_system_capabilities() def _builtin_descriptor( @@ -2190,7 +2192,7 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): "reasoning_signature": None, } - def _register_p0_5_capabilities(self) -> None: + def _register_provider_capabilities(self) -> None: self.register( self._builtin_descriptor("provider.get_using", "获取当前聊天 Provider"), call_handler=self._provider_get_using, @@ -2289,6 +2291,8 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): self._builtin_descriptor("provider.rerank.rerank", "文档重排序"), call_handler=self._provider_rerank_rerank, ) + + def _register_agent_tool_capabilities(self) -> None: self.register( self._builtin_descriptor("llm_tool.manager.get", "获取 LLM 工具状态"), call_handler=self._llm_tool_manager_get, @@ -2405,7 +2409,7 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): self._session_service_configs[session] = config return {} - def _register_p0_6_capabilities(self) -> None: + def _register_session_capabilities(self) -> None: self.register( self._builtin_descriptor("session.plugin.is_enabled", "获取会话级插件开关"), call_handler=self._session_plugin_is_enabled, @@ -2806,7 +2810,7 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): deleted = self._kb_store.pop(kb_id, None) is not None return {"deleted": deleted} - def _register_p1_2_capabilities(self) -> None: + def _register_persona_conversation_kb_capabilities(self) -> None: self.register( self._builtin_descriptor("persona.get", "获取人格"), call_handler=self._persona_get, @@ -2868,7 +2872,7 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): call_handler=self._kb_delete, ) - def _register_p1_3_capabilities(self) -> None: + def _register_provider_manager_capabilities(self) -> None: self.register( self._builtin_descriptor("provider.manager.set", "设置当前 Provider"), call_handler=self._provider_manager_set, @@ -2926,6 +2930,8 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): ), stream_handler=self._provider_manager_watch_changes, ) + + def _register_platform_manager_capabilities(self) -> None: self.register( self._builtin_descriptor( "platform.manager.get_by_id", @@ -2948,6 +2954,7 @@ class BuiltinCapabilityRouterMixin(_CapabilityRouterHost): call_handler=self._platform_manager_get_stats, ) + def _register_system_capabilities(self) -> None: self.register( self._builtin_descriptor("system.get_data_dir", "获取插件数据目录"),