Luca448's picture
Savestate: Fix Dockerfile and add Browser_Agent for HF build, bump version to 1.8.334
508316a
Raw History Blame Contribute Delete
1.46 kB
# 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()