SuperAPI AI 工具集

browser-use

智能体与模型

查看项目

更新于 10-15 07:45

技能介绍

用途

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')"

限制

资料未提供关于收费、价格、平台支持范围、性能上限等更多信息,暂未提供。