Browser Use + DeepSeek,我踩了哪些坑
最近在折腾 Browser Use,想着 DeepSeek 便宜就接上试试,结果坑一个接一个。记录下来,希望你别再踩一遍。
坑一:程序卡住,一动不动
第一次跑,浏览器倒是打开了,但就这么干等着,没有任何输出,也没报错,就是不动。
等了五分钟,还是没反应。
查了一圈才搞明白:我用的是deepseek-reasoner(R1),这个模型会先输出一大段<think>...</think>思考过程,Browser Use 拿到这个返回值之后解析 JSON 直接懵了,然后开始重试,然后又失败,然后又重试……死循环。
deepseek-chat(V3)。llm = ChatOpenAI(model="deepseek-chat",# 别用 reasonerapi_key="你的KEY",base_url="https://api.deepseek.com",temperature=0, )R1 的思维链对这种浏览器操作任务没什么用,反而添乱。V3 又快又稳。
如果非要用 R1,就得手动把思维链过滤掉:
importrefromlangchain_openaiimportChatOpenAIclassDeepSeekR1Chat(ChatOpenAI):def_create_chat_result(self, response, generation_info=None): result =super()._create_chat_result(response, generation_info)forgeninresult.generations: msg = gen.messageif'<think>'instr(msg.content): msg.content = re.sub(r'<think>.*?</think>','', str(msg.content), flags=re.DOTALL ).strip()returnresult坑二:任务跑飞,token 一直在烧
有次让 Agent 帮我登录一个网站,结果它开始反复点同一个按钮,停不下来。过了一会儿看账单,好几块钱没了。
加上步数限制就行,这个默认应该开的:
frombrowser_useimportAgent, AgentSettings agent = Agent( task="...", llm=llm, settings=AgentSettings( max_steps=20,# 超过 20 步强制停max_failures=3,# 失败 3 次就停) )# 再套一层总超时保险result =awaitasyncio.wait_for(agent.run(), timeout=180)坑三:登录老被风控
让 Agent 自己填账号密码登录,跑几次就触发验证码,然后就卡死了。
解法是用 Session 持久化——你手动登录一次,把状态保存下来,以后每次直接加载,Agent 上来就是已登录状态:
frombrowser_useimportBrowser, BrowserProfile# 第一次:手动登录browser = Browser(profile=BrowserProfile(path="./session"))# 会弹出真实浏览器,你手动登录,关掉后自动保存# 以后每次直接用browser = Browser(profile=BrowserProfile(path="./session"))注意 Cookie 会过期,过期了重新存一次就好。
能跑的完整代码
importasynciofrombrowser_useimportAgent, AgentSettingsfromlangchain_openaiimportChatOpenAI llm = ChatOpenAI( model="deepseek-chat", api_key="你的DEEPSEEK_KEY", base_url="https://api.deepseek.com", temperature=0, max_tokens=4096, ) agent = Agent( task="打开 baidu.com,搜索 Browser Use,截图第一条结果", llm=llm, settings=AgentSettings(max_steps=20, max_failures=3), ) asyncio.run(asyncio.wait_for(agent.run(), timeout=180))要不要用官方的 BROWSER_USE_API_KEY?
官方 Key 贵,但它帮你处理了验证码、反爬这些脏活。如果你爬的是电商、社交平台这类防护强的网站,官方 Key 值那个价。
如果只是爬一些普通页面、内部系统,DeepSeek API 完全够用,便宜十几倍。