Every agent execution on AACFlow starts with a graph. Not a script. Not a linear pipeline. A directed acyclic graph — a DAG — where each node is a decision, a tool call, an LLM invocation, or a branch point. This is the beating heart of the platform. And we built it to handle 10 million executions every month without breaking a sweat.
Why a DAG?
The fundamental problem with linear automation is that the real world isn't linear. A support agent doesn't just "get ticket → respond." It classifies intent, checks the knowledge base, searches the CRM, decides whether to escalate, generates a response, and logs everything. Some of those steps can run in parallel. Some depend on others. Some can fail and need retry. Some need human approval.
A linear script can't model this. A DAG can.
Our DAG executor takes a visual graph — built by users in our ReactFlow-based editor — and compiles it into an optimized execution plan. Nodes are topologically sorted. Independent branches are identified for parallel execution. Dependencies are resolved. And then the engine runs it, streaming every event back in real-time.
Compilation: From Visual Graph to Execution Plan
The editor is visual, but the execution is pure code. When a workflow is triggered, the engine:
- Parses the graph — identifies all nodes, edges, and their types
- Validates — checks for cycles (must be acyclic), missing connections, type mismatches



