Spaces:
Running
Running
| from typing import Any, List | |
| from workflows.base_workflow import BaseWorkflow | |
| from agents.base_agent import AgentContext, AgentResult | |
| from utils.logger import get_logger | |
| logger = get_logger("sequential_workflow") | |
| class SequentialWorkflow(BaseWorkflow): | |
| """Run agents one by one in order.""" | |
| name = "sequential" | |
| async def execute(self, agents: List[Any], ctx: AgentContext) -> List[AgentResult]: | |
| results = [] | |
| for agent in agents: | |
| result = await agent.run(ctx) | |
| results.append(result) | |
| if result.status.value == "failed" and agent.critical: | |
| logger.error(f"Critical agent '{agent.name}' failed. Aborting.") | |
| break | |
| return results | |