import asyncio import os from dotenv import load_dotenv from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContextConfig load_dotenv() api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') llm = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp', api_key=SecretStr(api_key)) browser = Browser( config=BrowserConfig( new_context_config=BrowserContextConfig(save_downloads_path=os.path.join(os.path.expanduser('~'), 'downloads')) ) ) async def run_download(): agent = Agent( task=('Go to "https://file-examples.com/" and download the smallest doc file.'), llm=llm, max_actions_per_step=8, use_vision=True, browser=browser, ) await agent.run(max_steps=25) await browser.close() if __name__ == '__main__': asyncio.run(run_download())