import os import sys from langchain_openai import ChatOpenAI sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio from browser_use import Agent, Browser, Controller # Video: https://preview.screen.studio/share/8Elaq9sm async def main(): # Persist the browser state across agents browser = Browser() async with await browser.new_context() as context: model = ChatOpenAI(model='gpt-4o') current_agent = None async def get_input(): return await asyncio.get_event_loop().run_in_executor( None, lambda: input('Enter task (p: pause current agent, r: resume, b: break): ') ) while True: task = await get_input() if task.lower() == 'p': # Pause the current agent if one exists if current_agent: current_agent.pause() continue elif task.lower() == 'r': # Resume the current agent if one exists if current_agent: current_agent.resume() continue elif task.lower() == 'b': # Break the current agent's execution if one exists if current_agent: current_agent.stop() current_agent = None continue # If there's a current agent running, pause it before starting new one if current_agent: current_agent.pause() # Create and run new agent with the task current_agent = Agent( task=task, llm=model, browser_context=context, ) # Run the agent asynchronously without blocking asyncio.create_task(current_agent.run()) asyncio.run(main()) # Now aad the cheapest to the cart