mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-04 19:50:16 +08:00
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:
@@ -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", "获取插件数据目录"),
|
||||
|
||||
Reference in New Issue
Block a user