介绍:
Browser Use是将 AI 代理与浏览器连接的最简单方法。它通过为浏览器自动化提供强大而简单的界面,使 AI 代理可以访问网站。
参考资料
github地址:
- browser-use 命令行版本:browser-use/browser-use: Make websites accessible for AI agents
- browser-use webUI版本:browser-use/web-ui: Run AI Agent in your browser.
使用文档:Introduction - Browser Use
browser-use 命令行版本使用
Quick Start
命令行版本即使用browser-use的python包,在代码demo中定义Agent,并运行。大致步骤如下:
- 使用pip安装 browser-use等依赖
- 然后在一个自定义demo中使用,调用Agent并运行
新建一个空的python项目 browser-use-demo
,本次测试使用conda的虚拟环境 miss-tols-env
进入项目目录并执行环境安装
$ cd browser-use-demo
$ conda activate miss-tols-env
$ pip install browser-use
$ playwright install
环境完成初始化之后,创建 .env
和 main.py
文件。项目结构如下:
# xuanmiss @ miss-pc in E:\code_space\pycharmSpace\local [18:13:57]
$ tree .\browser-use-demo\ /f
文件夹 PATH 列表
卷序列号为 92E2-1B92
E:\CODE_SPACE\PYCHARMSPACE\LOCAL\BROWSER-USE-DEMO
│ .env
│ agent_history.gif
│ main.py
│
├─.idea
│ │ .gitignore
│ │ browser-use-demo.iml
│ │ misc.xml
│ │ modules.xml
│ │ workspace.xml
│ │
│ └─inspectionProfiles
│ profiles_settings.xml
│ Project_Default.xml
│
└─logs
conversation_10.txt
conversation_11.txt
conversation_12.txt
conversation_2.txt
conversation_3.txt
conversation_4.txt
conversation_5.txt
conversation_6.txt
conversation_7.txt
conversation_8.txt
conversation_9.txt
(miss-tols-env )
其中 .idea
是 IDE
的工程文件夹,可以忽略,logs
是运行后的日志,后续测试过程中自动生成的。手动创建的只有 .env
和 main.py
主要代码示例:
import asyncio
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from pydantic import SecretStr
from browser_use import Agent
load_dotenv()
api_key = os.getenv('DEEPSEEK_API_KEY', '')
if not api_key:
raise ValueError('DEEPSEEK_API_KEY is not set')
llm=ChatOpenAI(base_url='https://api.siliconflow.cn/v1', model='deepseek-ai/DeepSeek-R1', api_key=SecretStr(api_key))
async def main():
agent = Agent(
task="打开 'https://xxx.xx.xxx.cn/app/xxxx/account/login' 这个地址。 使用xxxxx/xxxxx登录。找到周重点工作管理菜单并跳转,然后新增一条记录。",
llm=llm,
# planner_llm=planner_llm,
# max_failures=5, use_vision=False,
save_conversation_path="logs/conversation" # Save chat logs
# max_actions_per_step=1, )
result = await agent.run()
print(result)
asyncio.run(main())
- 模型定义:这里使用硅基流动提供的DeepSeek-R1模型。因为官网暂时关闭了充值入口,这里使用硅基流动的服务,硅基流动
关于硅基流动服务的详细的使用可以参见使用DeepSeek-R1的免费AI开发助手。更多其他模型的使用,可以参考支持的模型 - 浏览器使用 - Agent的定义:这里有很多参数,可以参考文档代理设置 - 浏览器使用 ,demo中配置记录了上下文的日志
运行过程大致如下:
实际的运行过程,会打开浏览器进行相关操作,操作过程中,对页面元素进行定位,然后让大模型根据页面元素生成 Action
,交给 Agent
执行相关操作,Function Call
过程中的截图如下:
评论区