# workflows/engine.py import logging from browser.manager import BrowserManager from agent.brain import AgentBrain logger = logging.getLogger(__name__) class WorkflowEngine: def __init__(self): self.browser_manager = BrowserManager() async def start(self): await self.browser_manager.initialize() logger.info("WorkflowEngine gestartet.") async def stop(self): await self.browser_manager.close_all() logger.info("WorkflowEngine gestoppt.") async def run_task(self, task_description: str, use_persistent_session: str = None) -> str: """ Führt einen Task mithilfe des AgentBrain in einem Browser-Kontext aus. """ if use_persistent_session: context = await self.browser_manager.get_persistent_context(use_persistent_session) else: context = await self.browser_manager.get_ephemeral_context() page = await context.new_page() brain = AgentBrain() try: result = await brain.run(task_description, page) return result except Exception as e: logger.error(f"Fehler bei Ausführung von Task '{task_description[:30]}...': {e}") return f"Fehler aufgetreten: {str(e)}" finally: await page.close() if not use_persistent_session: await context.close() await brain.close()