From 5277e4b37510b5ca1487e868d7190192ac577039 Mon Sep 17 00:00:00 2001 From: wangxiaolei Date: Fri, 24 Jul 2026 19:35:12 +0800 Subject: [PATCH] fix: fix when tool execute in progress tool_meta miss tool_provider_type (#39513) --- api/services/agent_service.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/api/services/agent_service.py b/api/services/agent_service.py index 74c2a9ae56a..e065e1f978b 100644 --- a/api/services/agent_service.py +++ b/api/services/agent_service.py @@ -9,6 +9,7 @@ import contexts from core.app.app_config.easy_ui_based_app.agent.manager import AgentConfigManager from core.plugin.impl.agent import PluginAgentClient from core.plugin.impl.exc import PluginDaemonClientSideError +from core.tools.entities.tool_entities import EmojiIconDict from core.tools.tool_manager import ToolManager from libs.login import current_user from models import Account @@ -105,11 +106,22 @@ class AgentService: tool_output = tool_outputs.get(tool_name, {}) tool_meta_data = tool_meta.get(tool_name, {}) tool_config = tool_meta_data.get("tool_config", {}) - if tool_config.get("tool_provider_type", "") != "dataset-retrieval": + tool_provider_type = tool_config.get("tool_provider_type", "") + tool_provider_id = tool_config.get("tool_provider", "") + + if not tool_provider_type: + tool_entity = find_agent_tool(tool_name) + if tool_entity: + tool_provider_type = tool_entity.provider_type + tool_provider_id = tool_provider_id or tool_entity.provider_id + + tool_icon: str | EmojiIconDict = "" + + if tool_provider_type and tool_provider_type != "dataset-retrieval": tool_icon = ToolManager.get_tool_icon( tenant_id=app_model.tenant_id, - provider_type=tool_config.get("tool_provider_type", ""), - provider_id=tool_config.get("tool_provider", ""), + provider_type=tool_provider_type, + provider_id=tool_provider_id, ) if not tool_icon: tool_entity = find_agent_tool(tool_name)