每天帮你节约 x 小时,这个浏览器 Agent 怎么做到的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
plane
V2EX    分享创造

每天帮你节约 x 小时,这个浏览器 Agent 怎么做到的

  •  
  •   plane 1 天前 1523 次点击

    昨天发了个帖子(我做了一个,可能是全世界第一个真正能用不是玩具的浏览器 agent)简单介绍了最近做的项目,收获了大家的 star 和点赞。今天再介绍一下背景,实现方案,以及未来规划。

    github 地址:https://github.com/browserwing/browserwing

    如果你喜欢或觉得有帮忙 star 一个呀

    微信图片_20251212012211_40_2683.jpg

    背景

    最近我在学习 AI 编程,尝试做出好用产品。现在使用 AI 在开发可以很大提升开发效率,产品是可以很快开发出来,但瓶颈就卡在了怎么宣传运营推广上,我想把这快也做自动化,比如让 AI 自动写 seo 文章发表,自动收集评论回复等等。然后我发现当前那些夸的很强大的所谓通用 agent 或 AI 浏览器或浏览器 agent 几乎没一个能用的。其次的方案,要么自己写自动化,但是也很麻烦,我要去针对网站写各种类似爬虫代码,还有打通 AI 大模型。于是我选择了自己开发,主要是快 2026 年,竟然还没有一个真正好用能用的浏览器 agent ,这激发了我的创作动力。我的诉求很简单,这个框架要能:

    • 支持我的日常的周期性的固定任务
    • 消耗 token 少
    • 成功率要高
    • 效率也要高

    我的定位不是高大上酷炫却没啥用的通用 agent ,而是真正能让人人用得起且能高效处理问题的垂直专用框架。

    实现

    说到实现,先回顾下现在传统的绝大多数 agent 的方案,比如 browseruse 等等。 浏览器 Agent 的难点就在于怎么把自然语言转化为能执行的具体浏览操作(点击,输入,滚动等等)。这些传统 agent 框架给出的方案就是:

    1. 视觉识别+dom 解析,把上下文(经过压缩的对话总结)丢给大模型,让他给出下一步的操作
    2. 执行具体操作
    3. 等待浏览器渲染
    4. 重复 1 ,直到大模型认为任务已完成

    这个方案有什么问题呢?

    1. 复杂的上下文造成 token 的累积,导致消耗多与费用贵
    2. 长上下文还很考验 context 工程,很容易导致任务失败,成功率降低

    上面这两点已经非常致命,直接导致这个方案其实看着很好很通用,实际上用不了,因为他过于依赖大模型和算力。 对于我这种场景更加是不能胜任。

    而 browserwing 采用的方案呢。是我们不再寻求通用方案,而是退而求其次先录制浏览器行为交给大模型调度,相当于大模型不再需要去通过复杂的上下文判断我该点击什么元素或在哪里输入元素,而是我直接告诉他执行 A 脚本就是点击这里并输入。大模型不关心背后这个任务是做了什么,他只需要在上层进行调度。 调度的动作没有特别复杂的上下文,但是输入输出会带上上下文,这个是一个优化点,也是类似 claude skills 在解决的问题,browserwing 也会跟进。

    你可以理解为这样的一个执行流程:

    1. 我告诉大模型,我要根据发一篇帖子到 V2EX ,并回复这个帖子下面用户的评论
    2. 大模型会调用我们提前录制好的发帖子任务,输入对应的参数,即可发帖
    3. 大模型监听拿到帖子下的评论,确定哪条评论需要回复
    4. 大模型调用我们录制好的回复帖子任务,进行帖子的回复

    直到这里,具体任务的完成都是没有问题的,但核心是什么呢,就是怎么去录制行为。browswerwing 采用了可视化+AI 辅助录制的方式,你可以打开网页后点开始录制,然后正常执行你的操作,然后结束即可。遇到复杂的表单或者想要转结构化的内容,可以使用 AI 自动识别生成可复用代码,完全不需要你写一行代码。

    但是你仍然觉得录制是可以需要人工的操作,很麻烦呀。其实,随着这个平台用的人越来越多,脚本越来越多,很多共用脚本你是完全不需要你写的,因为本身就可以复用。比如上面提到的 v 站发帖回复的脚本。你只要订阅导入即可。除非你的特定的平台特定的场景,那么需要你去进行录制。

    未来规划

    商业化这块,目前 browserwing 是完全开源免费的,但是为了生存发展,如果能帮到大家,后续也会考虑做在线服务和提供更高阶的收费功能。

    目前,还是非常初期的能用的状态,但是还有很多需要进行迭代,比如怎么去处理更复杂的交互,怎么可以把录制也从半自动变成全自动的行为等等。

    以及,针对不同平台做成 skill 类似的能力,比如:支持在 drawio 创建操作流程图的 skill ,在作图网站帮你作图的 skill ,执行在线文档的 excel 操作等等。这个概念就是形成一个网站的操作专家,你的任务是关于特定这个网站的,那么他可以再形成规划,在网站下去执行复杂操作。

    关于我

    我是 Glenn ,一个有编程基础的 vibe 工程师。希望做出大家喜欢好用的产品。

    我还有另外一个产品:Modern Mermaid ,一个很好看好用的 mermaid 流程图设计网站,喜欢的也可以点点赞收藏起来。

    github: https://github.com/gotoailab/modern_mermaid

    网站:https://modern-mermaid.live

    screenshot-brutalist.png

    更多信息,请关注我的社交媒体:

    7 条回复    2025-12-18 14:52:59 +08:00
    korvin
        1
    korvin  
       1 天前
    听着有些像 Function Calling/MCP 。抽空试试,加油
    plane
        2
    plane  
    OP
       1 天前
    @korvin 感谢,有问题可以反馈
    marquina
        3
    marquina  
       1 天前
    非常棒的思路, 用录制来替代 AI 操作页面元素, 解决了效率和可控性问题.

    当然从长期来看, 我觉得端到端才是唯一答案, 录制没法解决泛化性的问题.
    plane
        4
    plane  
    OP
       1 天前
    @marquina 我同意,但端到端真正能用好用还要等等
    kevan
        5
    kevan  
       22 小时 48 分钟前
    感觉是个好东西。试试看,已 star 和推荐朋友
    kevan
        6
    kevan  
       22 小时 39 分钟前
    有没有 demo 脚本,可以快速学习啊
    plane
        7
    plane  
    OP
       22 小时 31 分钟前
    @kevan 我有录了简单的视频,还没发出来,晚点我上传后这里发给你,不介意也可以加我我直接先发你
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3804 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:24 PVG 13:24 LAX 21:24 JFK 00:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86