A flow is a high-level container that encapsulates and orchestrates an entire AI-powered workflow in ControlFlow. It provides a structured way to manage tasks, agents, tools, and shared context. A flow maintains a consistent state across all its components, allowing agents to communicate and collaborate effectively.

Flows allow developers to break down complex application logic into discrete tasks, define the dependencies and relationships between them, and assign suitable agents to execute them. By providing a high-level orchestration mechanism, flows enable developers to focus on the logic of their application while ControlFlow manages the details of agent selection, data flow, and error handling.