From 4b5586375f1e18e1b11009f9e4878c112b89f901 Mon Sep 17 00:00:00 2001 From: Novice Lee Date: Thu, 9 Jan 2025 17:20:53 +0800 Subject: [PATCH] feat: add node id in agent log --- api/core/app/apps/workflow_app_runner.py | 1 + api/core/app/entities/queue_entities.py | 1 + api/core/app/entities/task_entities.py | 1 + api/core/app/task_pipeline/workflow_cycle_manage.py | 1 + api/core/workflow/graph_engine/entities/event.py | 1 + api/core/workflow/nodes/tool/tool_node.py | 1 + 6 files changed, 6 insertions(+) diff --git a/api/core/app/apps/workflow_app_runner.py b/api/core/app/apps/workflow_app_runner.py index 2d0bc95524..9b4a918ead 100644 --- a/api/core/app/apps/workflow_app_runner.py +++ b/api/core/app/apps/workflow_app_runner.py @@ -386,6 +386,7 @@ class WorkflowBasedAppRunner(AppRunner): status=event.status, data=event.data, metadata=event.metadata, + node_id=event.node_id, ) ) elif isinstance(event, ParallelBranchRunStartedEvent): diff --git a/api/core/app/entities/queue_entities.py b/api/core/app/entities/queue_entities.py index 334e2abf87..c0d3d9d88a 100644 --- a/api/core/app/entities/queue_entities.py +++ b/api/core/app/entities/queue_entities.py @@ -330,6 +330,7 @@ class QueueAgentLogEvent(AppQueueEvent): status: str data: Mapping[str, Any] metadata: Optional[Mapping[str, Any]] = None + node_id: str class QueueNodeRetryEvent(QueueNodeStartedEvent): diff --git a/api/core/app/entities/task_entities.py b/api/core/app/entities/task_entities.py index b5b909a3e9..7182c36fe2 100644 --- a/api/core/app/entities/task_entities.py +++ b/api/core/app/entities/task_entities.py @@ -717,6 +717,7 @@ class AgentLogStreamResponse(StreamResponse): status: str data: Mapping[str, Any] metadata: Optional[Mapping[str, Any]] = None + node_id: str event: StreamEvent = StreamEvent.AGENT_LOG data: Data diff --git a/api/core/app/task_pipeline/workflow_cycle_manage.py b/api/core/app/task_pipeline/workflow_cycle_manage.py index 31df7d2d86..309d5f1422 100644 --- a/api/core/app/task_pipeline/workflow_cycle_manage.py +++ b/api/core/app/task_pipeline/workflow_cycle_manage.py @@ -863,5 +863,6 @@ class WorkflowCycleManage: status=event.status, data=event.data, metadata=event.metadata, + node_id=event.node_id, ), ) diff --git a/api/core/workflow/graph_engine/entities/event.py b/api/core/workflow/graph_engine/entities/event.py index 9d3a3f8f9f..f1c486d761 100644 --- a/api/core/workflow/graph_engine/entities/event.py +++ b/api/core/workflow/graph_engine/entities/event.py @@ -204,6 +204,7 @@ class AgentLogEvent(BaseAgentEvent): status: str = Field(..., description="status") data: Mapping[str, Any] = Field(..., description="data") metadata: Optional[Mapping[str, Any]] = Field(default=None, description="metadata") + node_id: str = Field(..., description="agent node id") InNodeEvent = BaseNodeEvent | BaseParallelBranchEvent | BaseIterationEvent | BaseAgentEvent diff --git a/api/core/workflow/nodes/tool/tool_node.py b/api/core/workflow/nodes/tool/tool_node.py index 8518db5d80..1e31a2c324 100644 --- a/api/core/workflow/nodes/tool/tool_node.py +++ b/api/core/workflow/nodes/tool/tool_node.py @@ -338,6 +338,7 @@ class ToolNode(BaseNode[ToolNodeData]): data=message.message.data, label=message.message.label, metadata=message.message.metadata, + node_id=self.node_id, ) # check if the agent log is already in the list