Auto-Wrap
Pass a `Workflow` directly in the `steps` list without wrapping in `Step()`.
1from kern.agent import Agent2from kern.models.openai import OpenAIChat3from kern.workflow.step import Step4from kern.workflow.types import StepInput, StepOutput5from kern.workflow.workflow import Workflow678def summarize(step_input: StepInput) -> StepOutput:9 prev = step_input.previous_step_content or ""10 return StepOutput(content=f"Summary: {prev[:200]}")111213# Inner workflow14researcher = Agent(15 name="Researcher",16 model=OpenAIChat(id="gpt-4o-mini"),17 instructions="You are a research assistant. Be concise (2-3 sentences).",18)1920inner_workflow = Workflow(21 name="Research Workflow",22 description="Researches a topic and summarizes",23 steps=[24 Step(name="research", agent=researcher),25 Step(name="summarize", executor=summarize),26 ],27)2829# Outer workflow: pass inner_workflow directly (no Step wrapper)30writer = Agent(31 name="Writer",32 model=OpenAIChat(id="gpt-4o-mini"),33 instructions="Write a polished paragraph from the research provided.",34)3536outer_workflow = Workflow(37 name="Auto-Wrap Example",38 description="Inner workflow passed directly in steps list",39 steps=[40 inner_workflow, # Auto-wrapped into Step(name="Research Workflow", workflow=inner_workflow)41 Step(name="write", agent=writer),42 ],43)444546if __name__ == "__main__":47 outer_workflow.print_response(48 input="What are the benefits of open source software?",49 stream=True,50 )Run the Example
1git clone https://github.com/kern-ai/kern.git2cd kern/cookbook/04_workflows/06_advanced_concepts/workflow_as_a_step34pip install kern-ai openai56python nested_workflow_pass_direct_workflow.py