新闻详情

新闻详情

首页 / 资讯中心 / 详情

browser-use 工程解析:让 LLM 学会“用浏览器”——把网页变成可执行的棋盘

发布时间:2026/9/28 9:40:06来源:尧图网络
browser-use 工程解析:让 LLM 学会“用浏览器”——把网页变成可执行的棋盘
1. 为什么浏览器自动化总在“最后一公里”翻车如果你写过 Selenium 或 Playwright 脚本大概率遇到过这种场景脚本昨天还能跑今天页面加了个弹窗选择器全废或者你面对一个几千节点的 DOM 树想用 LLM 直接“看懂”页面结果上下文直接爆掉。browser-use 这个项目之所以值得拆是因为它正面回答了这个问题LLM 到底怎么才能像人一样“用”浏览器而不是靠坐标去猜。它的核心思路一句话说清把网页里真正可交互的部分序列化成一段带索引的文本让模型输出“点击 [17]”这种结构化动作而不是“点击坐标 (312, 88)”。这背后靠的是 CDPChrome DevTools Protocol直连加 DOM 抽象层把浏览器变成一个 LLM Agent 可以落子的棋盘。这篇文章面向本地自动化场景不空谈架构重点给你三样能直接跑的东西一份config.toml骨架、TaoToken 统一 Key/API 通道的配置方式以及一次可复现的浏览器任务验证动作。适合已经在折腾 Agent、想让模型真正操作网页的开发者也适合被选择器折磨过、想换个思路的人。2. 前置准备TaoToken 统一 Key 与 API 通道browser-use 本身是个框架它需要一个能输出结构化 JSON 的 LLM 后端。本地跑的时候最烦的是每家模型 Key 格式不一样、base_url 换来换去。我习惯用 TaoToken 做统一通道一个 Key 打通对话和结构化输出省得在多个 provider 之间反复改配置。你需要先拿到一个 API Key。登录官网后进入控制台在 API Keys 页面创建一个新 Key复制出来备用。这个 Key 同时能用于模型对话和 coding 场景后面 browser-use 的 LLM 配置直接指向它就行。相关入口我整理成一张表按需取用用途地址官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址https://taotoken.net/api模型对话https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewriteCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite注意API 基址统一用https://taotoken.net/api不要带 UTM 参数否则部分 SDK 拼接路径时会出问题。拿到 Key 之后先别急着写 browser-use 代码用一条 curl 确认通道是通的。这一步能帮你排除掉后面 80% 的“模型没反应”问题。curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: 只回复两个字通了}] }返回里能看到choices[0].message.content是“通了”说明 Key 和通道都没问题。如果返回 401检查 Key 有没有复制全如果返回 404检查 base_url 是不是多写了/v1之外的路径。3. 可复制配置config.toml 骨架与 LLM 接入browser-use 的配置分两块一块是浏览器行为一块是 LLM 后端。我把它整理成一份config.toml骨架你可以直接抄改掉 Key 就能用。[agent] max_steps 50 use_vision auto max_clickable_elements_length 40000 max_history_items 10 [browser] headless false disable_security false window_width 1280 window_height 900 [llm] provider openai model gpt-4o-mini base_url https://taotoken.net/api/v1 api_key_env TAOTOKEN_API_KEY temperature 0.0几个参数值得单独说。use_vision auto表示只在需要时带截图能省不少 tokenmax_clickable_elements_length控制序列化后的网页文本长度太大容易爆上下文太小会漏元素40000 是个比较稳的中间值max_history_items配合历史压缩用长任务不至于把对话撑爆。环境变量这样设置别把 Key 硬编码进文件export TAOTOKEN_API_KEY你的Key然后在 Python 里加载配置并初始化 Agentimport os import tomllib from browser_use import Agent from browser_use.llm import ChatOpenAI with open(config.toml, rb) as f: cfg tomllib.load(f) llm ChatOpenAI( modelcfg[llm][model], base_urlcfg[llm][base_url], api_keyos.environ[cfg[llm][api_key_env]], temperaturecfg[llm][temperature], ) agent Agent( task打开 https://taotoken.net/doc 找到接入文档的标题并返回, llmllm, max_stepscfg[agent][max_steps], )这里的关键点是base_url指向 TaoToken 的/api/v1ChatOpenAI走的是 OpenAI 兼容协议所以结构化输出、前缀缓存这些能力都能正常吃到。如果你后面要跑长期编码类任务可以换成 Coding Plan 的通道配置方式一样只是 Key 的用途不同。4. 验证请求一次可复现的浏览器任务配置写完跑一次真实任务才算数。下面这段代码会启动浏览器、导航到目标页、让模型决定点哪里最后返回结果。import asyncio from browser_use import Agent from browser_use.llm import ChatOpenAI async def main(): llm ChatOpenAI( modelgpt-4o-mini, base_urlhttps://taotoken.net/api/v1, api_keyos.environ[TAOTOKEN_API_KEY], ) agent Agent( task打开 https://taotoken.net/doc 返回页面主标题文字, llmllm, max_steps20, ) result await agent.run() print(最终结果:, result) asyncio.run(main())跑起来之后你会看到浏览器被拉起页面加载完成后终端里会打印出模型每一步的思考、它看到的带索引的网页文本以及它选择的动作。成功的话最后会输出类似done(successTrue)和页面标题。这里有个细节值得你留意模型看到的不是原始 DOM而是类似下面这种压缩后的文本。[Start of page] [1]a href/doc 接入文档 /a [9]div rolecombobox [15]input typetext placeholder搜索... [End of page]模型说“点击 [1]”系统通过内部的selector_map[1]查到对应的backendNodeId再通过 CDP 派发真实的鼠标事件。给模型看的标记和系统执行的句柄是同一份序列化产物这就是它比“截图猜坐标”稳的地方。如果你想验证模型对话通道是否正常可以先用模型对话页面发一条消息确认如果要做长期编码或 Agent 任务Coding Plan 的通道更适合持续跑。5. 本篇常见错排查报错一401 Unauthorized。九成是 Key 没读到。先确认echo $TAOTOKEN_API_KEY有输出再确认代码里读的是同一个环境变量名。如果用的是.env文件注意 browser-use 不会自动加载得自己用python-dotenv。报错二Connection error或超时。检查base_url是不是写成了https://taotoken.net/api少了/v1。OpenAI 兼容协议需要/v1后缀少了会 404多了会拼成/v1/v1。报错三模型输出不是合法 JSON。browser-use 依赖结构化输出如果模型不支持response_formatjson_schema会解析失败。换成支持结构化输出的模型或者把temperature调到 0。报错四浏览器起不来。本地需要装 Chrome且headless false时要有图形界面。服务器上跑就设成headless true同时确认 Chrome 版本和 CDP 协议兼容。报错五任务跑一半卡住。多半是页面有弹窗或验证码。browser-use 有对应的 watchdog 处理但复杂验证码还是得人工介入。把max_steps调小一点先跑通短任务。报错六token 消耗过快。把use_vision设成automax_clickable_elements_length降到 20000 试试同时确认历史压缩有没有生效。6. 下一步把浏览器能力接进你的 Agent跑通上面这套之后你手里就有了一个能“看懂网页并操作”的 Agent 底座。接下来可以做的方向有几个把task换成你自己的业务场景比如自动填表、监控价格、跑 QA 回归或者把 browser-use 当成工具接进更大的编排框架里。如果你要长期跑编码类或 Agent 类任务建议走 Coding Plan 通道配额和稳定性更适合持续调用如果只是验证模型能力模型对话入口更轻量接入过程中遇到 Key 或通道问题直接翻接入文档里面把 base_url、鉴权、结构化输出都写清楚了。真正值得带走的判断是Agent 面对真实世界第一难的不是决策而是把世界压缩成模型能用的输入。browser-use 把这件事做成了工程而你要做的是把它接到自己的场景里让模型真的能落子。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

快速搭建网站的工具怎么选?3个方案省下5万冤枉钱 2026/9/28 9:42:31

快速搭建网站的工具怎么选?3个方案省下5万冤枉钱

快速搭建网站的工具怎么选?3个方案省下5万冤枉钱 网站做好了没人访问,这是很多老板最头疼的事。你花大价钱做的官网,设计精美、功能齐全,但打开一看,流量为零,咨询为零。这时候你才意识到,问题不在“做没做”,而在“怎么快速做出来并推向市场”。面…

阅读更多 →
昇腾910B多机分布式推理:从HCCL到MindIE的DeepSeek部署实践 2026/9/28 9:42:24

昇腾910B多机分布式推理:从HCCL到MindIE的DeepSeek部署实践

昇腾910B上跑DeepSeek多机分布式推理,很多人卡在第一眼:MindIE、HCCL、ranktable、hccn_tool,每个词都眼熟,串起来就不是那么回事。实际踩过一圈之后你会发现,真正决定能不能跑起来的不是模型代码,而是通信…

阅读更多 →
从CANoe到TSMaster:车载总线测试工具链迁移实战指南 2026/9/28 9:42:24

从CANoe到TSMaster:车载总线测试工具链迁移实战指南

搞车载总线测试的工程师,电脑里大概率都装着一套CANoe。我最早接触CANoe是刚入行那会儿,跟着前辈在项目里做网络测试,从报文发送、DBC解析到UDS诊断,基本全是靠Vector这套工具撑起来的。说实话,CANoe确实是这个行业的标…

阅读更多 →
从刷榜到用榜:GitHub Trending 的增量逻辑、项目筛选与高效落地 2026/9/28 9:42:23

从刷榜到用榜:GitHub Trending 的增量逻辑、项目筛选与高效落地

1. 日榜的"热度"到底是怎么算出来的先别急着收藏仓库。每天打开 GitHub 的 Trending 页面,你看到的是过去 24 小时内 Star 增量最高的仓库,周榜和月榜则分别看一周、一个月内的增量。官方没有公开完整排序算法,但用久了会发现&…

阅读更多 →
【Java开发MCP】SSE模式开发并集成MCP:TaoToken统一Key接入与SpringAI WebFlux配置骨架 2026/9/28 9:42:23

【Java开发MCP】SSE模式开发并集成MCP:TaoToken统一Key接入与SpringAI WebFlux配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenCompass 高效评测:Partitioner 任务切分与 Runner 执行后端实战指南 2026/9/28 9:42:23

OpenCompass 高效评测:Partitioner 任务切分与 Runner 执行后端实战指南

模型评测人工智能大模型AI 评测 【免费下载链接】opencompass OpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100 datasets covering knowledge, reasoning, coding, scie…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉