diff --git a/api/core/workflow/nodes/agent/agent_node.py b/api/core/workflow/nodes/agent/agent_node.py index 626ef1df7b..2ecde79876 100644 --- a/api/core/workflow/nodes/agent/agent_node.py +++ b/api/core/workflow/nodes/agent/agent_node.py @@ -38,6 +38,7 @@ from core.workflow.node_events import ( NodeRunResult, StreamChunkEvent, StreamCompletedEvent, + RunRetrieverResourceEvent, ) from core.workflow.nodes.agent.entities import AgentNodeData, AgentOldVersionModelFeatures, ParamsAutoGenerated from core.workflow.nodes.base.entities import BaseNodeData, RetryConfig @@ -667,7 +668,7 @@ class AgentNode(Node): dict_metadata["icon"] = icon dict_metadata["icon_dark"] = icon_dark - message.message.metadata = dict_metadata + message.message.metadata = dict_metadata agent_log = AgentLogEvent( message_id=message.message.id, node_execution_id=node_execution_id, @@ -694,6 +695,11 @@ class AgentNode(Node): agent_logs.append(agent_log) yield agent_log + elif message.type == ToolInvokeMessage.MessageType.RETRIEVER_RESOURCES: + assert isinstance(message.message, ToolInvokeMessage.RetrieverResourceMessage) + retriever_resources = message.message.retriever_resources + context_str = message.message.context + yield RunRetrieverResourceEvent(retriever_resources=retriever_resources, context=context_str) # Add agent_logs to outputs['json'] to ensure frontend can access thinking process json_output: list[dict[str, Any]] = []