browser-use

2026-01-26

python

力成文学:起早外出的跛子追不上。——日本谚语

browser-use:让 AI 真正“会用”浏览器,把线上琐事自动化到极致

说实话,AI 如果不会自己点网页、填表、登录、截图、下单,那就太不接地气了。browser-use 的目标就是这件事:让网站对 AI 代理真正可用。你只需要描述任务,它就能开浏览器、盯住 DOM、知道哪里能点、该怎么填,甚至把整套执行历史保存下来,像一个靠谱的“网页实习生”。

如果你不想折腾本地环境,官方云服务直接给你一套“隐身浏览器 + 代理执行”的托管环境,开箱即用。


两种用户,两条路:LLM 快速上手 vs 人类快速上手

  • LLM 快速上手
    让你喜欢的编码助理(Cursor、Claude Code 等)看这份技能说明:
    https://docs.browser-use.com/llms-full.txt
    然后直接下发任务。它会知道如何调用 browser-use。

  • 人类快速上手(本地)
    几步就能跑起来:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1) 用 uv(Python>=3.11)初始化
uv init

# 2) 安装库(官方按日迭代,建议用最新版)
uv add browser-use
uv sync

# 3) 在 .env 写入从云控制台获得的 API Key(新用户送 10 美金额度)
# .env
BROWSER_USE_API_KEY=your-key

# 4) 安装 Chromium 浏览器
uvx browser-use install

跑第一个代理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from browser_use import Agent, Browser, ChatBrowserUse
import asyncio

async def example():
browser = Browser(
# use_cloud=True, # 打开这行就会用 Browser Use Cloud 的“隐身浏览器”
)

llm = ChatBrowserUse()

agent = Agent(
task="Find the number of stars of the browser-use repo",
llm=llm,
browser=browser,
)

history = await agent.run()
return history

if __name__ == "__main__":
history = asyncio.run(example())

Sandboxes:生产化的“一键包裹环境”

官方提供沙箱装饰器,把“代理 + 浏览器 + 会话持久化 + 鉴权 + Cookies + LLM”打包在一个隔离环境里运行,代理就在浏览器旁边,延迟更低。

1
2
3
4
5
6
7
8
9
10
11
from browser_use import Browser, sandbox, ChatBrowserUse
from browser_use.agent.service import Agent
import asyncio

@sandbox()
async def my_task(browser: Browser):
agent = Agent(task="Find the top HN post", browser=browser, llm=ChatBrowserUse())
await agent.run()

# 像普通异步函数一样调用
asyncio.run(my_task())

更多部署与生产注意事项:
https://docs.browser-use.com/production


模板快速上手:直接生成“能跑的脚本”

1
2
3
uvx browser-use init --template default
# 可选:advanced / tools 三种模板
uvx browser-use init --template default --output my_agent.py
  • default:最小可用样例
  • advanced:所有配置项并带详细注释
  • tools:示范如何扩展自定义工具

CLI:命令行也能“持久化浏览器”高速交互

1
2
3
4
5
6
browser-use open https://example.com    # 打开网页
browser-use state # 查看可点击元素(带索引)
browser-use click 5 # 按索引点击元素
browser-use type "Hello" # 输入文本
browser-use screenshot page.png # 截图
browser-use close # 关闭浏览器

CLI 会把浏览器保持在会话里,连续命令之间不重启,迭代超快。完整命令列表见:
browser_use/skill_cli/README.md


Claude Code 技能安装:AI 辅助浏览器自动化

1
2
3
mkdir -p ~/.claude/skills/browser-use
curl -o ~/.claude/skills/browser-use/SKILL.md \
https://raw.githubusercontent.com/browser-use/browser-use/main/skills/browser-use/SKILL.md

这样 Claude Code 就知道怎么用 browser-use 来“操作浏览器”。


经典场景演示:表单、购物、选件助手

官方 README 里有一组 Demo,配套代码都在 examples 目录:

更多示例:
https://docs.browser-use.com/examples


扩展工具:给代理加你自己的“动作”

你可以用装饰器注册一个动作,供代理调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from browser_use import Tools

tools = Tools()

@tools.action(description='Description of what this tool does.')
def custom_tool(param: str) -> str:
return f"Result: {param}"

agent = Agent(
task="Your task",
llm=llm,
browser=browser,
tools=tools,
)

这类自定义工具很适合“和你的后端/数据库/内网系统”打通,让网页自动化和业务逻辑联动起来。


鉴权与会话:真实浏览器配置、临时邮箱、远程同步


模型与费用:为浏览器自动化优化的 ChatBrowserUse

默认的 ChatBrowserUse() 专为浏览器自动化优化,速度和完成度都挺高。官方给出价格(每百万 token):

  • 输入:$0.20
  • 缓存输入:$0.02
  • 输出:$2.00

你也可以选其他 LLM 提供商(包括本地模型),详见:
https://docs.browser-use.com/supported-models


生产环境的坑:内存、并发、代理、指纹

Chrome 很吃内存,并行很多代理时不好管。官方建议:

  • 用 Browser Use Cloud API 托管浏览器基础设施
  • 自动内存管理
  • 代理轮换
  • 隐身浏览器指纹
  • 高性能并发执行

云入口:
https://cloud.browser-use.com


Docker:30 秒快构建

项目自带优化好的 Docker 构建系统���

1
2
3
4
5
6
7
8
# 只需首次或依赖变更时构建基镜像
./docker/build-base-images.sh

# 30s 内构建主镜像
docker build -f Dockerfile.fast -t browseruse .

# 标准 Dockerfile(约 2 分钟)
docker build -t browseruse .

目录说明、构建时长对比在 docker/README.md 里都有。


代码结构观念:service / views / prompts / routers

后端结构受 Netflix Dispatch、fastapi-best-practices 启发,做了清晰分层:

1
2
3
4
5
6
7
8
9
10
src/
/<service name>/
models.py
services.py
prompts.py
views.py
utils.py
routers.py

/_<subservice name>/
  • services.py:尽量单文件,超过约 500 行再拆子服务
  • views.py:分 All / Requests / Responses 三段,过长再拆
  • prompts.py:可一文件一 prompt
  • routers.py:不建议拆分多个文件

这对你把 browser-use 扩展为“业务后台 + 网页自动化”一体的系统很有参考价值。


这类工具适合什么场景

  • 网页端重复劳作
    招聘填表、报销申请、信息录入、批量下载、数据抽取,统统丢给代理去跑

  • 运营自动化
    采集素材、发布内容、更新库存、比价与下单

  • 内部系统桥接
    把老旧的 Web 后台自动化起来,减少人工点击

  • AI 助手落地
    用户说“帮我在某站点把这些东西搞定”,你把任务丢给代理就好


总结:让“网页操作”也能自然语言编程

browser-use 很像给 AI 装上“手和眼”。你描述任务,它就能开浏览器去办事;你要稳态生产,它提供沙箱与云;你要扩展能力,它支持自定义工具与鉴权配置;你要本地迭代,它有 CLI 和模板。重点是,它把“网页自动化”这件事真正放到了工程实践里,让开发者可以一步一步地把 AI 助手落地为“可执行、可复用、可生产”的在线工作流。

告诉你的电脑要做什么,它会把事情做好。