mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 04:29:07 +08:00
fix: agent node can't use in parallel (#15047)
This commit is contained in:
parent
6c9d6a4d57
commit
778861f461
@ -522,6 +522,7 @@ class WorkflowBasedAppRunner(AppRunner):
|
|||||||
status=event.status,
|
status=event.status,
|
||||||
data=event.data,
|
data=event.data,
|
||||||
metadata=event.metadata,
|
metadata=event.metadata,
|
||||||
|
node_id=event.node_id,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif isinstance(event, ParallelBranchRunStartedEvent):
|
elif isinstance(event, ParallelBranchRunStartedEvent):
|
||||||
|
@ -427,6 +427,7 @@ class QueueAgentLogEvent(AppQueueEvent):
|
|||||||
status: str
|
status: str
|
||||||
data: Mapping[str, Any]
|
data: Mapping[str, Any]
|
||||||
metadata: Optional[Mapping[str, Any]] = None
|
metadata: Optional[Mapping[str, Any]] = None
|
||||||
|
node_id: str
|
||||||
|
|
||||||
|
|
||||||
class QueueNodeRetryEvent(QueueNodeStartedEvent):
|
class QueueNodeRetryEvent(QueueNodeStartedEvent):
|
||||||
|
@ -817,6 +817,7 @@ class AgentLogStreamResponse(StreamResponse):
|
|||||||
status: str
|
status: str
|
||||||
data: Mapping[str, Any]
|
data: Mapping[str, Any]
|
||||||
metadata: Optional[Mapping[str, Any]] = None
|
metadata: Optional[Mapping[str, Any]] = None
|
||||||
|
node_id: str
|
||||||
|
|
||||||
event: StreamEvent = StreamEvent.AGENT_LOG
|
event: StreamEvent = StreamEvent.AGENT_LOG
|
||||||
data: Data
|
data: Data
|
||||||
|
@ -959,5 +959,6 @@ class WorkflowCycleManage:
|
|||||||
status=event.status,
|
status=event.status,
|
||||||
data=event.data,
|
data=event.data,
|
||||||
metadata=event.metadata,
|
metadata=event.metadata,
|
||||||
|
node_id=event.node_id,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -268,6 +268,7 @@ class AgentLogEvent(BaseAgentEvent):
|
|||||||
status: str = Field(..., description="status")
|
status: str = Field(..., description="status")
|
||||||
data: Mapping[str, Any] = Field(..., description="data")
|
data: Mapping[str, Any] = Field(..., description="data")
|
||||||
metadata: Optional[Mapping[str, Any]] = Field(default=None, description="metadata")
|
metadata: Optional[Mapping[str, Any]] = Field(default=None, description="metadata")
|
||||||
|
node_id: str = Field(..., description="agent node id")
|
||||||
|
|
||||||
|
|
||||||
InNodeEvent = BaseNodeEvent | BaseParallelBranchEvent | BaseIterationEvent | BaseAgentEvent | BaseLoopEvent
|
InNodeEvent = BaseNodeEvent | BaseParallelBranchEvent | BaseIterationEvent | BaseAgentEvent | BaseLoopEvent
|
||||||
|
@ -18,6 +18,7 @@ from core.workflow.entities.node_entities import AgentNodeStrategyInit, NodeRunM
|
|||||||
from core.workflow.entities.variable_pool import VariablePool, VariableValue
|
from core.workflow.entities.variable_pool import VariablePool, VariableValue
|
||||||
from core.workflow.graph_engine.condition_handlers.condition_manager import ConditionManager
|
from core.workflow.graph_engine.condition_handlers.condition_manager import ConditionManager
|
||||||
from core.workflow.graph_engine.entities.event import (
|
from core.workflow.graph_engine.entities.event import (
|
||||||
|
BaseAgentEvent,
|
||||||
BaseIterationEvent,
|
BaseIterationEvent,
|
||||||
BaseLoopEvent,
|
BaseLoopEvent,
|
||||||
GraphEngineEvent,
|
GraphEngineEvent,
|
||||||
@ -502,7 +503,7 @@ class GraphEngine:
|
|||||||
break
|
break
|
||||||
|
|
||||||
yield event
|
yield event
|
||||||
if event.parallel_id == parallel_id:
|
if not isinstance(event, BaseAgentEvent) and event.parallel_id == parallel_id:
|
||||||
if isinstance(event, ParallelBranchRunSucceededEvent):
|
if isinstance(event, ParallelBranchRunSucceededEvent):
|
||||||
succeeded_count += 1
|
succeeded_count += 1
|
||||||
if succeeded_count == len(futures):
|
if succeeded_count == len(futures):
|
||||||
|
@ -338,6 +338,7 @@ class ToolNode(BaseNode[ToolNodeData]):
|
|||||||
data=message.message.data,
|
data=message.message.data,
|
||||||
label=message.message.label,
|
label=message.message.label,
|
||||||
metadata=message.message.metadata,
|
metadata=message.message.metadata,
|
||||||
|
node_id=self.node_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
# check if the agent log is already in the list
|
# check if the agent log is already in the list
|
||||||
|
Loading…
x
Reference in New Issue
Block a user