feat(toolmgr): add get_tool_by_name for unified tool lookup

Add unified tool lookup method that searches both plugin and MCP loaders.
Also add _get_tool method to MCPLoader for consistency with PluginToolLoader.
This commit is contained in:
huanghuoguoguo
2026-05-13 11:58:08 +08:00
parent 74b829a288
commit 1e5acb947b
3 changed files with 77 additions and 0 deletions
@@ -384,6 +384,21 @@ class MCPLoader(loader.ToolLoader):
return True
return False
async def _get_tool(self, name: str) -> resource_tool.LLMTool | None:
"""Get tool by name.
Args:
name: Tool name to find
Returns:
LLMTool if found, None otherwise
"""
for session in self.sessions.values():
for function in session.get_tools():
if function.name == name:
return function
return None
async def invoke_tool(self, name: str, parameters: dict, query: pipeline_query.Query) -> typing.Any:
"""执行工具调用"""
for session in self.sessions.values():