Overview
Design step-based workflows visually in AgentOS Studio.
Studio provides a drag-and-drop Workflow Builder for designing multi-step workflows visually. Create complex automation pipelines without writing code by dragging components onto the canvas and connecting them together.
Creating Steps
Drag a step onto the canvas and configure its executor type in the properties panel. Each step can use one of the following executors:
| Executor Type | Description |
|---|---|
| Agent | Execute the step using a registered agent from your OS |
| Team | Delegate the step to a multi-agent team for collaborative execution |
| Custom Executor | Use a custom function |
Step Types
Beyond basic steps, you can build complex workflows using these step types:
| Step Type | Description |
|---|---|
Step | Single agent, team, or custom executor execution |
Steps | Group of steps executed sequentially |
Condition | Branch based on an evaluator function or CEL expression |
Loop | Repeat steps until an end condition is met |
Router | Select a step based on a selector function or CEL expression |
Parallel | Execute multiple steps concurrently |
These step types can be nested and composed together to build sophisticated automation pipelines while maintaining visual clarity.
Configuring Complex Steps
Step types like Condition, Router, and Loop require logic to control their behavior: either a Python function or a CEL expression. For example, you can use a CEL expression to evaluate if the input contains the word "apple":
from agno.workflow import Condition, Step
condition = Condition(
name="apple_condition",
evaluator="input.contains('apple')",
steps=[Step(name="apple_step", agent=apple_agent)],
)Alternatively, you can use a function to evaluate the condition.
from agno.workflow import Condition, Step
def is_apple(step_input) -> bool:
return "apple" in step_input.input
condition = Condition(
name="apple_condition",
evaluator=is_apple,
steps=[Step(name="apple_step", agent=apple_agent)],
)
CEL Expressions
Workflow steps support CEL (Common Expression Language) as an alternative to Python functions for evaluators, end conditions, and selectors. CEL expressions are strings that can be serialized and edited directly in Studio without code.
See CEL Expressions for full usage, context variables, and examples.