fix: match tool-call chunk with tool id (#11533)

This commit is contained in:
defi-failure
2025-11-28 20:46:52 +08:00
committed by GitHub
parent 4620b71aee
commit 13ac5d564a
2 changed files with 4 additions and 2 deletions

View File

@@ -212,8 +212,9 @@ export class ToolCallChunkHandler {
description: toolName,
type: 'builtin'
} as BaseTool
} else if ((mcpTool = this.mcpTools.find((t) => t.name === toolName) as MCPTool)) {
} else if ((mcpTool = this.mcpTools.find((t) => t.id === toolName) as MCPTool)) {
// 如果是客户端执行的 MCP 工具,沿用现有逻辑
// toolName is mcpTool.id (registered with id as key in convertMcpToolsToAiSdkTools)
logger.info(`[ToolCallChunkHandler] Handling client-side MCP tool: ${toolName}`)
// mcpTool = this.mcpTools.find((t) => t.name === toolName) as MCPTool
// if (!mcpTool) {

View File

@@ -90,7 +90,8 @@ export function openAIToolsToMcpTool(
return undefined
}
const tools = mcpTools.filter((mcpTool) => {
return mcpTool.id === toolName || mcpTool.name === toolName
// toolName is mcpTool.id (registered with id as function name)
return mcpTool.id === toolName
})
if (tools.length > 1) {
logger.warn(`Multiple MCP Tools found for tool call: ${toolName}`)