5953df7d2f
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.
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""Run the Rust-backed Browser Use Agent.
|
|
|
|
Set BROWSER_USE_TERMINAL_BINARY when the terminal binary is not on PATH.
|
|
Set BU_CDP_URL or BROWSER_USE_CDP_URL to attach to a remote Browser Use cloud browser.
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
|
|
from browser_use.beta import Agent, BrowserSession, ChatBrowserUse
|
|
|
|
# from browser_use.beta import ChatOpenAI # ChatOpenAI(model='gpt-5.5')
|
|
# from browser_use.beta import ChatGoogle # ChatGoogle(model='gemini-3.1-pro-preview')
|
|
# from browser_use.beta import ChatAnthropic # ChatAnthropic(model='claude-opus-4-8')
|
|
|
|
|
|
async def main() -> None:
|
|
cdp_url = os.environ.get('BU_CDP_URL') or os.environ.get('BROWSER_USE_CDP_URL')
|
|
browser_session = BrowserSession(cdp_url=cdp_url) if cdp_url else None
|
|
task = os.environ.get('BU_TASK', 'Open https://example.com and report the page title.')
|
|
max_steps = int(os.environ.get('BU_MAX_STEPS', '20'))
|
|
|
|
agent = Agent(
|
|
task=task,
|
|
llm=ChatBrowserUse(model='openai/gpt-5.5'),
|
|
# llm=ChatBrowserUse(), # Browser Use's own optimized model (bu-2-0)
|
|
# llm=ChatOpenAI(model='gpt-5.5'),
|
|
# llm=ChatGoogle(model='gemini-3.1-pro-preview'),
|
|
# llm=ChatAnthropic(model='claude-opus-4-8'), # Sonnet also works well.
|
|
browser_session=browser_session,
|
|
)
|
|
history = await agent.run(max_steps=max_steps)
|
|
print(history.final_result() or '(no final result)')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(main())
|