取代ChatGPT Operator!支持DeepSeek+Web UI!Browser Use最强AI驱动的浏览器自动化框架,支持Roo Code轻松实现MCP Server集成到Claude桌面版

AI超元域
7 min readFeb 5, 2025

--

Browser-use是一款开源的基于AI的智能浏览器自动化工具, 而且这款开源项目分为命令行版本和web UI版本,并且支持deepseek、gpt-4o在内的开源和闭源模型。 我们可以使用这款开源项目轻松实现浏览器自动化操作,执行订机票、浏览网页、点击链接、提取信息,甚至填写表单、订机票等复杂操作。 用户可以使用自然语言来指示AI执行任务,大大降低了开发者需要编写代码的需求。 甚至可以替代OpenAI 推出的ChatGPT Operator功能,因为OpenAI 推出的ChatGPT Operator功能.

🚀🚀🚀本篇笔记所对应的视频:https://youtu.be/jsd8TpzicRQ

🚀命令和代码如下

pip install uv

uv venv myenv

source myenv/bin/activate

# webUI
git clone https://github.com/browser-use/web-ui.git

cd web-ui

pip install -r requirements.txt

cp .env.example .env

python webui.py --ip 127.0.0.1 --port 7788

### 无UI版
pip install browser-use

pip install playwright

playwright install

import os
from langchain_openai import ChatOpenAI
from browser_use import Agent, Browser, BrowserConfig
import asyncio

# 无头模式
browser = Browser(
config=BrowserConfig(
headless=False,
disable_security=True
)
)

os.environ['OPENAI_API_KEY']="sk-proj--xxxxx"

async def main():
agent = Agent(
task="搜索AI超元域的GitHub项目并进入",
llm=ChatOpenAI(model="gpt-4o-mini",),
browser=browser
)
result = await agent.run()
print(result)

asyncio.run(main())

import os
import argparse
from langchain_openai import ChatOpenAI
from browser_use import Agent, Browser, BrowserConfig
import asyncio

# 默认配置
DEFAULT_API_KEY = "sk-proj-xxxxxxxx"
DEFAULT_MODEL = "gpt-4o-mini"

async def run_agent(task: str, model: str = DEFAULT_MODEL, api_key: str = None) -> str:
"""
使用指定参数运行浏览器代理。

参数:
task (str): 代理的任务描述
model (str): 要使用的 OpenAI 模型
api_key (str): OpenAI API 密钥。如果为空,将尝试使用环境变量或默认值

返回:
str: 代理返回的结果
"
""
# API key 优先级:
# 1. 命令行参数传入的 api_key
# 2. 环境变量 OPENAI_API_KEY
# 3. 代码中的默认值 DEFAULT_API_KEY
if api_key:
os.environ['OPENAI_API_KEY'] = api_key
elif 'OPENAI_API_KEY' not in os.environ:
os.environ['OPENAI_API_KEY'] = DEFAULT_API_KEY

# Initialize the agent
agent = Agent(
task=task,
llm=ChatOpenAI(model=model),
# 无头模式
browser=Browser(
config=BrowserConfig(
headless=False,
disable_security=True
)
)
)

# Run the agent and return result
return await agent.run()

def parse_arguments():
"""解析命令行参数."""
parser = argparse.ArgumentParser(description='Browser Agent CLI')

parser.add_argument(
'--task',
type=str,
required=True,
help='Task description for the agent'
)

parser.add_argument(
'--model',
type=str,
default=DEFAULT_MODEL,
help=f'OpenAI model to use (default: {DEFAULT_MODEL})'
)

parser.add_argument(
'--api-key',
type=str,
required=False, # 不再是必需参数
help='OpenAI API key (optional, will use default if not provided)'
)

return parser.parse_args()

async def main():
"""运行代理程序的主函数,使用命令行参数。"""
# 解析命令行参数
args = parse_arguments()

try:
# Run the agent
result = await run_agent(
task=args.task,
model=args.model,
api_key=args.api_key
)
print(result)

except Exception as e:
print(f"Error occurred: {str(e)}")
exit(1)

if __name__ == "__main__":
asyncio.run(main())

### MCP Server
请用为我实现MCP Tool,并命名为browser-use,当我需要搜索相关内容的时候,请执行下面的命令进行搜索并且返回搜索结果。
需要搜索的内容请放在--task参数里:

cd /Users/charlesqin/PycharmProjects/PythonProject && \
source /Users/charlesqin/PycharmProjects/PythonProject/.venv/bin/activate && \
python app.py \
--task "Visit the blog www.aivi.fyi and summarize the content of the first post."

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response