Step-Based Workflows

Named steps for better logging and support on the AgentOS chat page

You can name your steps for better logging and step tracking on the AgentOS chat page. The name is also the key for that step's output in StepInput.previous_step_outputs.

Example

from agno.workflow import Step, StepInput, StepOutput, Workflow


def research(step_input: StepInput) -> StepOutput:
    return StepOutput(content=f"Research for {step_input.input}")


def analyze(step_input: StepInput) -> StepOutput:
    return StepOutput(content=f"Analysis:\n{step_input.previous_step_content}")


def write(step_input: StepInput) -> StepOutput:
    return StepOutput(content=f"Draft:\n{step_input.previous_step_content}")

workflow = Workflow(
    name="Content Creation Pipeline",
    steps=[
        Step(name="Research Phase", executor=research),
        Step(name="Analysis Phase", executor=analyze),
        Step(name="Writing Phase", executor=write),
    ],
)

workflow.print_response(
    "AI trends in 2026",
    markdown=True,
)

Developer Resources

Reference

For complete API documentation, see Step Reference.