Think of execution steps as nodes in a graph. IFTT has pre-defined execution paths through the graph, its determinist. Agents design the execution path on the fly for the most contextually appropriate solution, it's non-deterministic. Both are state machines and DAGs.