diff --git a/.github/ISSUE_TEMPLATE/2_bug_report.yml b/.github/ISSUE_TEMPLATE/2_bug_report.yml index 0a0845ac3..8d64b3631 100644 --- a/.github/ISSUE_TEMPLATE/2_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/2_bug_report.yml @@ -57,7 +57,7 @@ body: attributes: label: LLM Model description: Which LLM model are you using? (Optional) - placeholder: "e.g. ChatBrowserUse, gpt-4.1-mini, gemini-flash-latest, etc." + placeholder: "e.g. ChatBrowserUse, gpt-4.1-mini, gemini-3-flash-preview, etc." - type: input id: os diff --git a/AGENTS.md b/AGENTS.md index 1d71f5d2e..d4f1fcd72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -126,7 +126,7 @@ See [Supported Models](https://docs.browser-use.com/supported-models#supported-m load_dotenv() async def main(): - llm = ChatGoogle(model="gemini-flash-latest") + llm = ChatGoogle(model="gemini-3-flash-preview") task = "Find the number 1 post on Show HN" agent = Agent(task=task, llm=llm) await agent.run() diff --git a/CLOUD.md b/CLOUD.md index 9e8ee0487..2456d3e53 100644 --- a/CLOUD.md +++ b/CLOUD.md @@ -383,6 +383,8 @@ components: - value: gemini-2.5-pro - value: gemini-flash-latest - value: gemini-flash-lite-latest + - value: gemini-3-flash-preview + - value: gemini-3-flash-preview-lite - value: claude-sonnet-4-20250514 - value: gpt-4o - value: gpt-4o-mini diff --git a/browser_use/llm/google/chat.py b/browser_use/llm/google/chat.py index 0356e1022..4ec3a5a36 100644 --- a/browser_use/llm/google/chat.py +++ b/browser_use/llm/google/chat.py @@ -35,6 +35,7 @@ VerifiedGeminiModels = Literal[ 'gemini-2.5-pro', 'gemini-3-pro-preview', 'gemini-3-flash-preview', + 'gemini-3-flash-preview-lite', 'gemma-3-27b-it', 'gemma-3-4b', 'gemma-3-12b', diff --git a/browser_use/tokens/mappings.py b/browser_use/tokens/mappings.py index 01a5970b1..d6ef75607 100644 --- a/browser_use/tokens/mappings.py +++ b/browser_use/tokens/mappings.py @@ -1,4 +1,6 @@ # Mapping from model_name to LiteLLM model name MODEL_TO_LITELLM: dict[str, str] = { 'gemini-flash-latest': 'gemini/gemini-flash-latest', + 'gemini-3-flash-preview': 'gemini/gemini-3-flash-preview', + 'gemini-3-flash-preview-lite': 'gemini/gemini-3-flash-preview-lite', } diff --git a/examples/browser/real_browser.py b/examples/browser/real_browser.py index 0405dc430..f761abe9e 100644 --- a/examples/browser/real_browser.py +++ b/examples/browser/real_browser.py @@ -37,7 +37,7 @@ async def main(): browser = Browser.from_system_chrome(profile_directory=profile) agent = Agent( - llm=ChatGoogle(model='gemini-flash-latest'), + llm=ChatGoogle(model='gemini-3-flash-preview'), task='go to amazon.com and search for pens to draw on whiteboards', browser=browser, ) diff --git a/examples/features/stop_externally.py b/examples/features/stop_externally.py index ee12e83d9..b750c7fba 100644 --- a/examples/features/stop_externally.py +++ b/examples/features/stop_externally.py @@ -13,7 +13,7 @@ load_dotenv() from browser_use import Agent -llm = ChatGoogle(model='gemini-flash-latest', temperature=1.0) +llm = ChatGoogle(model='gemini-3-flash-preview', temperature=1.0) def check_is_task_stopped(): diff --git a/examples/getting_started/05_fast_agent.py b/examples/getting_started/05_fast_agent.py index c089c1faa..8923406dc 100644 --- a/examples/getting_started/05_fast_agent.py +++ b/examples/getting_started/05_fast_agent.py @@ -31,7 +31,7 @@ async def main(): ) # from browser_use import ChatGoogle - # llm = ChatGoogle(model='gemini-flash-lite-latest') + # llm = ChatGoogle(model='gemini-3-flash-preview-lite') # 2. Create speed-optimized browser profile browser_profile = BrowserProfile( diff --git a/examples/models/gemini.py b/examples/models/gemini.py index 06b033f0a..d9c5ca053 100644 --- a/examples/models/gemini.py +++ b/examples/models/gemini.py @@ -16,7 +16,7 @@ if not api_key: async def run_search(): - llm = ChatGoogle(model='gemini-flash-latest', api_key=api_key) + llm = ChatGoogle(model='gemini-3-flash-preview', api_key=api_key) agent = Agent( llm=llm, task='How many stars does the browser-use repo have?', diff --git a/skills/cloud/references/api-v2.md b/skills/cloud/references/api-v2.md index 5be9d2c1d..f6c8f7f0d 100644 --- a/skills/cloud/references/api-v2.md +++ b/skills/cloud/references/api-v2.md @@ -302,7 +302,7 @@ Response includes: `{ items: [...], totalItems, pageNumber, pageSize }` | SessionStatus | `active`, `stopped` | | BrowserSessionStatus | `active`, `stopped` | | ProxyCountryCode | `us`, `uk`, `fr`, `it`, `jp`, `au`, `de`, `fi`, `ca`, `in` (+185 more) | -| SupportedLLMs | `browser-use-llm`, `gpt-4.1`, `gpt-4.1-mini`, `o4-mini`, `o3`, `gemini-2.5-flash`, `gemini-2.5-pro`, `gemini-flash-latest`, `gemini-flash-lite-latest`, `claude-sonnet-4-20250514`, `gpt-4o`, `gpt-4o-mini`, `llama-4-maverick-17b-128e-instruct`, `claude-3-7-sonnet-20250219` | +| SupportedLLMs | `browser-use-llm`, `gpt-4.1`, `gpt-4.1-mini`, `o4-mini`, `o3`, `gemini-2.5-flash`, `gemini-2.5-pro`, `gemini-flash-latest`, `gemini-flash-lite-latest`, `gemini-3-flash-preview`, `gemini-3-flash-preview-lite`, `claude-sonnet-4-20250514`, `gpt-4o`, `gpt-4o-mini`, `llama-4-maverick-17b-128e-instruct`, `claude-3-7-sonnet-20250219` | | UploadContentType | `image/jpg`, `image/jpeg`, `image/png`, `image/gif`, `image/webp`, `image/svg+xml`, `application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `text/plain`, `text/csv`, `text/markdown` | ## Response Schemas diff --git a/skills/open-source/references/quickstart.md b/skills/open-source/references/quickstart.md index a1af969a2..d7db46cef 100644 --- a/skills/open-source/references/quickstart.md +++ b/skills/open-source/references/quickstart.md @@ -64,7 +64,7 @@ import asyncio load_dotenv() async def main(): - llm = ChatGoogle(model="gemini-flash-latest") + llm = ChatGoogle(model="gemini-3-flash-preview") agent = Agent(task="Find the number 1 post on Show HN", llm=llm) await agent.run() diff --git a/tests/ci/evaluate_tasks.py b/tests/ci/evaluate_tasks.py index da7709357..5dd14dee3 100644 --- a/tests/ci/evaluate_tasks.py +++ b/tests/ci/evaluate_tasks.py @@ -79,7 +79,7 @@ async def run_single_task(task_file): 'explanation': 'Skipped - Google API key not available (fork PR or missing secret)', } - judge_llm = ChatGoogle(model='gemini-flash-lite-latest') + judge_llm = ChatGoogle(model='gemini-3-flash-preview-lite') print('[DEBUG] LLMs initialized', file=sys.stderr) # Each subprocess gets its own profile and session diff --git a/tests/ci/models/test_llm_google.py b/tests/ci/models/test_llm_google.py index adb6b779d..96bbb450b 100644 --- a/tests/ci/models/test_llm_google.py +++ b/tests/ci/models/test_llm_google.py @@ -4,11 +4,11 @@ from browser_use.llm.google.chat import ChatGoogle from tests.ci.models.model_test_helper import run_model_button_click_test -async def test_google_gemini_flash_latest(httpserver): - """Test Google gemini-flash-latest can click a button.""" +async def test_google_gemini_3_flash_preview(httpserver): + """Test Google gemini-3-flash-preview can click a button.""" await run_model_button_click_test( model_class=ChatGoogle, - model_name='gemini-flash-latest', + model_name='gemini-3-flash-preview', api_key_env='GOOGLE_API_KEY', extra_kwargs={}, httpserver=httpserver,