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.
This commit is contained in:
whatevertogo
2026-03-19 07:18:26 +08:00
parent b93c2c2b0f
commit 36443f1db5

View File

@@ -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", "获取插件数据目录"),