用途
browser-use 是一个 AI 驱动的浏览器自动化工具,核心思路是让 LLM 来理解网页内容、智能决策下一步操作并自动完成任务。它面向需要浏览器交互的自动化场景,尤其是复杂交互、动态页面以及需要智能决策的操作。
与 Playwright 的对比(据资料):
- 控制方式:Playwright 为预编程脚本,browser-use 为 AI 智能决策。
- 适应性:Playwright 页面变化需重写,browser-use 可自动适应。
- Token 消耗:Playwright 较低但需调试,browser-use 智能精简。
- 复杂交互:Playwright 需精确选择器,browser-use 用自然语言描述。
- 维护成本:Playwright 高,browser-use 低。
主要能力
- 使用 LLM 理解页面并自动执行任务。
- 支持自定义 LLM 接入,包括 Anthropic 兼容格式与 OpenAI 兼容格式。
- 支持配置 Chrome 浏览器(可指定可执行路径、无头模式等)。
- 支持保存与加载登录态(storage state)。
- 支持结构化数据提取(通过 Pydantic 定义输出模型)。
- 提供 Token 消耗优化选项与调试模式。
- 资料中给出了 Polymarket 集成示例(查看市场、执行交易)。
使用方式
安装状态(据资料):已安装 browser-use 0.11.11、browser-use-sdk 2.0.15。安装命令为 pip install browser-use。
基本用法:
import asyncio
from browser_use import Agent
from langchain_openai import ChatOpenAI
async def main():
agent = Agent(
task="打开 polymarket.com,查看 Fed 利率市场",
llm=ChatOpenAI(model="gpt-4o"),
)
result = await agent.run()
print(result)
asyncio.run(main())
使用自定义 LLM(资料强调 your-provider API 为 Anthropic 格式,必须使用 ChatAnthropic):
from browser_use.llm.anthropic.chat import ChatAnthropic
llm = ChatAnthropic(
model="claude-sonnet-4-6",
base_url="https://your-anthropic-proxy.example.com", # 注意:不加 /v1
api_key="your-api-key",
)
agent = Agent(
task="你的任务",
llm=llm,
)
若使用 OpenAI 兼容 API,则用 ChatOpenAI:
from browser_use.llm.openai.chat import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
base_url="https://ai.9w7.cn/v1",
api_key="your-api-key",
)
使用 Chrome 浏览器:
from browser_use import Agent, BrowserProfile, BrowserSession
profile = BrowserProfile(
executable_path="/usr/bin/google-chrome-stable",
headless=True,
disable_security=True,
)
session = BrowserSession(browser_profile=profile)
agent = Agent(
task="任务描述",
llm=llm,
browser_session=session,
)
保存/加载登录态:
await browser_context.save_storage_state(path="polymarket_auth.json")
context = BrowserContextConfig(
storage_state="polymarket_auth.json"
)
最小化 Token 消耗:
agent = Agent(
task="任务",
llm=llm,
use_vision=False,
max_actions_per_step=3,
message_compaction=True,
)
调试模式:
agent = Agent(
task="任务",
llm=llm,
headless=False,
slow_mo=1000,
save_conversation_path="debug_log/",
)
提取结构化数据:
from pydantic import BaseModel
class MarketData(BaseModel):
question: str
yes_price: float
no_price: float
agent = Agent(
task="获取 Polymarket Fed 利率市场数据",
llm=llm,
output_model_schema=MarketData,
)
result = await agent.run()
资源清理原则(资料中标注为强制)
所有涉及浏览器的 cron 任务完成后,必须自动关闭 Chrome 进程:
import asyncio
from browser_use import Agent
async def main():
agent = Agent(task="...", llm=llm)
result = await agent.run()
if hasattr(agent, 'browser') and agent.browser:
await agent.browser.close()
import subprocess
subprocess.run(['pkill', '-f', 'chrome'], capture_output=True)
return result
资料给出的原因:避免内存泄漏和资源占用,防止 Gateway CPU 100% 过载。
适用场景
- 复杂交互、动态页面、需要智能决策的浏览器操作。
- 需要从网页提取结构化数据的任务。
- 需要复用登录态的自动化流程。
- 资料中示例的 Polymarket 市场查看与交易执行。
最佳实践(据资料)
- 任务描述要清晰,例如“打开 polymarket.com,找到 Fed 利率市场,提取 Yes/No 价格”。
- 使用结构化输出(Pydantic 模型)。
- 进行错误处理(try/except)。
- 复用登录态,避免重复登录。
Token 消耗优化(据资料)
对比(相同任务):browser tool 约 5000-10000;Playwright 约 1000-2000(需多次调试);browser-use 约 2000-4000(AI 精简决策)。
优化技巧:禁用视觉 use_vision=False;限制历史 max_history_items=10;压缩消息 message_compaction=True;减少步骤 max_actions_per_step=3;使用 Flash 模式 flash_mode=True。
资源与命令
- 官方文档:https://docs.browser-use.com
- GitHub:https://github.com/browser-use/browser-use
- 示例:~/clawd/skills/browser-use/examples/
pip install browser-use
python3 script.py
python3 -c "from browser_use import Agent; print('✅ OK')"
限制
资料未提供关于收费、价格、平台支持范围、性能上限等更多信息,暂未提供。