  It is a notable trend to use Large Language Models (LLMs) to tackle complex
tasks, e.g., tasks that require a sequence of actions and dynamic interaction
with tools and external environments. In this paper, we propose StateFlow, a
novel LLM-based task-solving paradigm that conceptualizes complex task-solving
processes as state machines. In StateFlow, we distinguish between "process
grounding" (via state and state transitions) and "sub-task solving" (through
actions within a state), enhancing control and interpretability of the
task-solving procedure. A state represents the status of a running process. The
transitions between states are controlled by heuristic rules or decisions made
by the LLM, allowing for a dynamic and adaptive progression. Upon entering a
state, a series of actions is executed, involving not only calling LLMs guided
by different prompts, but also the utilization of external tools as needed. Our
results show that StateFlow significantly enhances LLMs' efficiency. For
instance, StateFlow achieves 13% and 28% higher success rates compared to ReAct
in InterCode SQL and ALFWorld benchmark, with 5x and 3x less cost respectively.
We also show that StateFlow can be combined with iterative refining methods
like Reflexion to further improve performance.
