This example demonstrates how to use named steps in a workflow.
This example demonstrates Workflows 2.0 using named Step objects for better tracking
and organization. This pattern provides clear step identification and enhanced logging
while maintaining simple sequential execution.
When to use: Linear processes where you want clear step identification, better logging,
and future platform support. Ideal when you have distinct phases that benefit from naming.
sequence_of_steps.py
Copy
Ask AI
from agno.agent import Agentfrom agno.models.openai import OpenAIChatfrom agno.storage.sqlite import SqliteStoragefrom agno.team import Teamfrom agno.tools.duckduckgo import DuckDuckGoToolsfrom agno.tools.hackernews import HackerNewsToolsfrom agno.workflow.v2.step import Stepfrom agno.workflow.v2.workflow import Workflow# Define agentshackernews_agent = Agent( name="Hackernews Agent", model=OpenAIChat(id="gpt-4o-mini"), tools=[HackerNewsTools()], role="Extract key insights and content from Hackernews posts",)web_agent = Agent( name="Web Agent", model=OpenAIChat(id="gpt-4o-mini"), tools=[DuckDuckGoTools()], role="Search the web for the latest news and trends",)# Define research team for complex analysisresearch_team = Team( name="Research Team", mode="coordinate", members=[hackernews_agent, web_agent], instructions="Research tech topics from Hackernews and the web",)content_planner = Agent( name="Content Planner", model=OpenAIChat(id="gpt-4o"), instructions=[ "Plan a content schedule over 4 weeks for the provided topic and research content", "Ensure that I have posts for 3 posts per week", ],)# Define stepsresearch_step = Step( name="Research Step", team=research_team,)content_planning_step = Step( name="Content Planning Step", agent=content_planner,)# Create and use workflowif __name__ == "__main__": content_creation_workflow = Workflow( name="Content Creation Workflow", description="Automated content creation from blog posts to social media", storage=SqliteStorage( table_name="workflow_v2", db_file="tmp/workflow_v2.db", mode="workflow_v2", ), steps=[research_step, content_planning_step], ) content_creation_workflow.print_response( message="AI trends in 2024", markdown=True, )
This was a synchronous non-streaming example of this pattern. To checkout async and streaming versions, see the cookbooks-