微信扫码
添加专属顾问
我要投稿
Browser Use,4天开发的开源项目,何以在AI自动化赛道上迅速崛起? 核心内容: 1. Browser Use的核心理念与AI自动化能力 2. 技术架构与市场潜力的深度解析 3. 开源策略如何助力Browser Use火速融资1700万美元
互联网的本质是什么?
有人说是信息流动,有人说是连接一切。
但如果让我给个答案,我会说:高效获取信息,自动化重复场景。
Browser Use,4天开发,1700万美元融资,生动诠释了这个第一性原理。
Browser Use由苏黎世联邦理工学院校友Magnus Müller和Gregor Zunic联手打造的开源项目,几乎是“速成”的代名词。
几个月内,GitHub星标突破5万,接着Manus的东风,风投圈争相下注,AI+浏览器自动化的Agent火爆一时。
Browser Use的核心其实很简单:让AI像人一样用浏览器。
市面也有很多自动化工具,但是还停留在机械地模拟点击或填写表单,而Browser Use却能让AI“看懂”网页,然后像真人一样思考和操作。
举个例子,你扔给它一句“帮我找三家云南大理最具性价比的酒店”,传统AI顶多丢给你个链接,敷衍了事。
但Browser Use会直接打开booking.com,翻页筛选,比较评分和价格,最后奉上一份详细报告。这种从“指令接收”到“任务执行”的闭环能力,精准击中了AI落地的痛点。
更夸张的是,它的价格和开放性。开源,MIT协议随便改随便用,还支持Claude、GPT、Gemini等多模型切换,不绑死任何一家供应商。闭源竞品OpenAI Operator要200美元!
火出圈的必备三大杀招——开源、多模型、低成本,直接让它在自动化赛道无人能及。
Browser Use的技术架构并不复杂,却聪明得让人叹服。整个系统靠四层架构撑起,从网页感知到操作执行,每一层都直戳Web自动化的核心难题。
DOM层,这是AI的眼睛。AI识别网页上的按钮和文本,智能判断“这个按钮现在能不能点”“这个元素是不是被遮住了”。
透过源码我们能看到,它用了一个扁平化的哈希映射,而不是传统的树形结构,序列化和查找效率直接拉满。
Browser层负责动手的。本质基于Playwright库。
Controller层是“翻译官”,把AI的决策变成具体动作。它的装饰器模式设计优雅到不行,想加个新功能,比如截图,只需三行代码搞定,扩展性拉满。
最后是Agent层,经典的“观察-思考-行动”循环,调用语言模型做判断,执行动作后还能根据结果调整策略。
四层环环相扣,解决了从感知到执行的全链路问题。难怪有人说,Browser Use是“用最少的代码,干了最多的事”。
当然风投从不只为技术买单,他们买的还是是市场潜力。
Browser Use的1700万美元融资,背后是对一个万亿级市场的押注。
全球6亿知识工作者,每周25%-40%的时间在重复性任务上,其中一半跟网页操作有关。如果每周能省5小时,按时薪25美元算,这是个7500亿美元/年的超级市场。
更别提企业级场景:销售线索自动抓取、竞品价格实时监控、媒体舆情跟踪、招聘简历筛选……个个都是刚需。
开源策略更是妙棋。
5万GitHub星标只是起点,随着开发者社区的涌入,代码贡献和功能迭代会指数级增长,形成技术护城河。
相比之下,闭源竞品想追赶,难度可想而知。风投看中的,正是这种“低成本起飞,高壁垒落地”的打法。
Browser Use的核心逻辑简单到可以用100行代码复现。
我参照源码准备了一个极简版。基于Playwright和OpenAI,核心是个“观察-思考-行动”循环。启动后,它会打开浏览器,抓取页面状态,交给AI决策下一步。
import asyncio from playwright.async_api import async_playwright from openai import OpenAI import json client = OpenAI()# 替换为你的AI模型客户端 async def main(): # 初始化浏览器 async with async_playwright() as p: browser = await p.chromium.launch(headless=False) page = await browser.new_page() # 导航到目标网站 await page.goto("https://example.com") # 主循环 for step in range(5):# 最多执行5步 # 1. 观察:获取页面状态 state = await get_page_state(page) # 2. 思考:让AI决策下一步 next_action = await get_ai_decision(state) print(f"AI决定: {next_action}") # 如果AI决定完成任务,退出循环 if next_action["action"] == "done": print(f"任务完成: {next_action.get('reason', '')}") break # 3. 行动:执行AI决策 await execute_action(page, next_action) await page.wait_for_load_state("networkidle") await browser.close() async def get_page_state(page): """获取当前页面状态""" # 获取页面基本信息 url = page.url title = await page.title() # 获取可交互元素 elements = await page.evaluate("""() => { const results = []; const all = document.querySelectorAll('a, button, input, select, textarea'); all.forEach((el, index) => { const rect = el.getBoundingClientRect(); // 只收集可见元素 if (rect.width > 0 && rect.height > 0) { results.push({ index: index, tag: el.tagName.toLowerCase(), text: el.innerText || el.value || '', type: el.type || '', id: el.id || '', name: el.name || '', className: el.className || '' }); } }); return results; }""") # 将元素列表格式化为易读形式 elements_text = "" for el in elements: elements_text += f"[{el['index']}] <{el['tag']}> {el['text']} {el['id']}\n" return { "url": url, "title": title, "elements": elements, "elements_text": elements_text } async def get_ai_decision(state): """使用AI决定下一步行动""" prompt = f""" 你是一个浏览器自动化助手。根据当前页面状态,决定下一步操作。 当前URL: {state['url']} 页面标题: {state['title']} 可交互元素: {state['elements_text']} 请从以下选择一个动作: 1. click - 点击元素,参数: index (整数) 2. input - 输入文本,参数: index (整数), text (字符串) 3. goto - 导航到URL,参数: url (字符串) 4. done - 完成任务,参数: reason (字符串) 以JSON格式返回决策,例如: {"action": "click", "index": 2} """ response = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": prompt}], response_format={"type": "json_object"} ) # 解析AI响应 try: return json.loads(response.choices[0].message.content) except: # 解析失败时的后备策略 return {"action": "done", "reason": "无法解析AI响应"} async def execute_action(page, action): """执行AI决定的动作""" if action["action"] == "click": # 获取元素并点击 elements = await page.evaluate("""() => { const results = []; const all = document.querySelectorAll('a, button, input, select, textarea'); all.forEach((el, index) => { const rect = el.getBoundingClientRect(); if (rect.width > 0 && rect.height > 0) { results.push({ index: index, rect: {x: rect.x, y: rect.y, width: rect.width, height: rect.height} }); } }); return results; }""") for el in elements: if el["index"] == action["index"]: # 点击元素中心 x = el["rect"]["x"] + el["rect"]["width"] / 2 y = el["rect"]["y"] + el["rect"]["height"] / 2 await page.mouse.click(x, y) return elif action["action"] == "input": # 先点击输入框,再输入文本 await execute_action(page, {"action": "click", "index": action["index"]}) await page.keyboard.type(action["text"]) elif action["action"] == "goto": # 导航到指定URL await page.goto(action["url"]) if __name__ == "__main__": asyncio.run(main())
当然,以上都只是术,在AI时代,真正的创新未必是造出新轮子,而是把现有技术拼装成解决痛点的利器,解决需求解决问题才是真正的道。
Browser Use也用4天证明:只要找准场景,简单技术也能撬动亿万市场。
或许,
下一个改变游戏规则的AI应用,就藏在你我的灵感里。等着被4天写出来。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-24
AI+SQL客户端,这款开源神器让数据库管理像聊天一样简单!
2025-04-24
效率革命!GitHub爆火的开源神器MinerU:PDF、网页、电子书一键转Markdown
2025-04-24
Suna:构建你专属“通用智能体”的开源利器
2025-04-24
开源TTS领域迎来重磅新星!Dia-1.6B:超逼真对话生成,开源2天斩获6.5K Star!
2025-04-24
仅用3周时间,就打造出Manus开源平替!贡献源代码,免费用
2025-04-23
只需6G显存,就能本地跑的AI视频算法,开源了!
2025-04-23
OpenAI Codex 使用OpenRouter上的免费模型
2025-04-23
又一个牛皮的开源的通用型智能体界面和Manus有99分相似
2024-07-25
2025-01-01
2025-01-21
2024-05-06
2024-09-20
2024-07-20
2024-07-11
2024-06-12
2024-08-13
2024-12-26
2025-04-21
2025-04-19
2025-04-17
2025-04-15
2025-04-13
2025-04-10
2025-04-07
2025-04-03