forked from browser-use/browser-use
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmultiple_agents_same_browser.py
More file actions
64 lines (48 loc) · 1.5 KB
/
Copy pathmultiple_agents_same_browser.py
File metadata and controls
64 lines (48 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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