from praisonaiagents import Workflow, WorkflowContext, StepResult
from praisonaiagents.workflows import route
# Decision maker - determines which route to take
def classify_request(ctx: WorkflowContext) -> StepResult:
input_lower = ctx.input.lower()
if "urgent" in input_lower:
return StepResult(output="priority: high")
elif "question" in input_lower:
return StepResult(output="priority: support")
return StepResult(output="priority: normal")
# Route handlers
def handle_high(ctx: WorkflowContext) -> StepResult:
return StepResult(output="🚨 Escalating to senior team!")
def handle_support(ctx: WorkflowContext) -> StepResult:
return StepResult(output="💬 Routing to help desk")
def handle_normal(ctx: WorkflowContext) -> StepResult:
return StepResult(output="📋 Added to queue")
# Create workflow with routing
workflow = Workflow(steps=[
classify_request,
route({
"high": [handle_high],
"support": [handle_support],
"normal": [handle_normal],
"default": [handle_normal]
})
])
result = workflow.start("This is URGENT!", verbose=True)
print(result["output"]) # "🚨 Escalating to senior team!"