Flow/Crew programming paradigm and limitations

Per my understanding, Crew programming paradigm does not define the order of agent executions and there’s no dependencies between tasks. (I thought the agents/crew can figure out the order intelligently automatically, but it doesn’t seem to be the case). So, it’s good for sequential jobs. Even with Hierarchical process, within a crew, it’s still sequential.

On the other hand, Flow has order of execution. From the example, it seems Flow programming paradigm relies on the annotations (@listen) at function level, which doesn’t seem pretty to me compare with Crew’s yaml configuration approach.

Besides, @listen can only listen to 1 function and the “feedback” workflow doesn’t seem to be supported. It causes difficulties with the use case:

    AgentA --> AgentB
    AgentA --> AgentC
    (AgentA waits for AgentB and AgentC's result, then use the result to proceed with AgentD)
    AgentA --> AgentD

AgentA needs to listen to AgentB and C's response.

I’m surprised “feedback” is not supported

Please enlighten me if you have insights into the programming paradigm or workaround for the use case.

@listen can take listen to multiple functions/events. You need to use and_() and or_().

You can find this under the Flow Control section in the CrewAI docs Flows - CrewAI

You can use these to implement your feedback loop.

1 Like

As for the feedback loop, check out this awesome video.

1 Like