Loop template workflow agent¶
The LoopAgent class is a template workflow agent that executes its sub-agents in a loop for a specified number of iterations or until a termination condition is met. Use the LoopAgent when your workflow involves repetition or iterative refinement, such as revising code or a document. As with other templated workflows, the execution of a LoopAgent object is not controlled by an AI model, and is deterministic in how it executes its sub-agents. The sub-agents within the defined loop may or may not utilize AI models, but the overall execution of those sub-agents is ultimately managed by the LoopAgent object you define.
Alternative: graph-based workflows
Starting in ADK 2.0 for Python and Go, templated workflows have been superseded
by more flexible workflow structures, including graph-based workflows and dynamic workflows.
Example scenario¶
You want to build an agent that can generate images of food, but sometimes when
you want to generate a specific number of items, such as bananas, the agent
generates a different number of those items in the image, such as an image of 7
bananas. You have two tools: Generate Image, Count Food Items. If your goal
is to keep generating images until it either correctly generates the specified
number of items, or after a certain number of iterations, you can build your
agent using a LoopAgent workflow.
How it Works¶
When the LoopAgent's Run Async method is called, it performs the following actions:
- Sub-Agent Execution: It iterates through the Sub Agents list in order. For each sub-agent, it calls the agent's
Run Asyncmethod. -
Termination Check:
Crucially, the
LoopAgentitself does not inherently decide when to stop looping. You must implement a termination mechanism to prevent infinite loops. Common strategies include:- Max Iterations: Set a maximum number of iterations in the
LoopAgent. The loop will terminate after that many iterations.
- Max Iterations: Set a maximum number of iterations in the