Files
browser-use__browser-use/examples/models/browser_use_llm.py
Saurav Panda 5953df7d2f fix(llm): make bu-2-0 the default again, keep mini opt-in
0.13.8 shipped bu-2-0-mini-preview as the ChatBrowserUse default, which
means Agent(task=...) with no llm - and every bare ChatBrowserUse() -
silently moved onto a preview model on upgrade, with no code change on
the caller's side.

Two problems with that. A preview id can change behaviour or be renamed,
so it is the wrong thing to reach by omission. And per-token price is the
wrong yardstick for an agent: total cost is tokens-per-step times steps,
and steps is a function of model quality, so a cheaper-per-token model
that needs more steps to finish can cost more and take longer. We do not
yet have a per-task benchmark number for mini to say which way that goes.

bu-2-0-mini-preview stays a first-class option: still accepted, still
priced, still what the examples demonstrate. It is just opted into by
name now rather than landed on by default. Revisit once the benchmark
number exists.
2026-08-17 09:19:26 -07:00

40 lines
1.1 KiB
Python

"""
Example of the fastest + smartest LLM for browser automation.
Setup:
1. Get your API key from https://cloud.browser-use.com/new-api-key
2. Set environment variable: export BROWSER_USE_API_KEY="your-key"
"""
import asyncio
import os
from dotenv import load_dotenv
from browser_use import Agent, ChatBrowserUse
load_dotenv()
if not os.getenv('BROWSER_USE_API_KEY'):
raise ValueError('BROWSER_USE_API_KEY is not set')
async def main():
# A bare `ChatBrowserUse()` gives you `bu-2-0`, the premium default (as does 'bu-latest').
# `bu-2-0-mini-preview`, used below, is cheaper and faster per token but is in preview, so
# you opt into it by name rather than getting it by default.
# ChatBrowserUse can also route to provider-prefixed models (e.g. 'anthropic/claude-sonnet-4-6',
# 'openai/gpt-5.5', 'google/gemini-3-pro') through the same gateway - see
# browser_use_provider_models.py.
agent = Agent(
task='Find the number of stars of the browser-use repo',
llm=ChatBrowserUse(model='bu-2-0-mini-preview'),
)
# Run the agent
await agent.run()
if __name__ == '__main__':
asyncio.run(main())