基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-10-29 16:33

人机共用浏览器时,智能体为何反复清空表单

dev.to · AI#浏览器自动化#智能体#人机协作
Editor brief · 编辑速览

作者记录了多个智能体操作真实浏览器时反复重载页面、清空人工填写内容及覆盖已提交页面的问题。摘录将故障指向隐藏页面与可见页面状态不同步,以及遇到异常便重新加载的恢复习惯。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

让 AI 代理操作你已经登录的浏览器,遇到验证码时再由你接手,听起来很顺。作者却发现,代理会反复重开页面,把人刚填的表单、刚过的验证码一起清掉,多个代理还可能争抢同一个标签页。

作者给出的解法,是在真实浏览器前面加一层 broker,约束标签页归属和危险操作,再要求代理每次行动前重新读取页面。它值得关注的地方,是把「人和多个代理怎么共用浏览器」拆成了具体规则;但这些规则的实际效果,原文没有给出量化验证。

为什么你刚填完,代理又把页面重开了

10 月 22 日晚,作者让 AI 代理帮忙退出数据经纪商和人员搜索网站的信息收录。代理运行在作者日常使用的 Brave 中,里面已有各种账号的登录状态。作者也在旁边使用同一个浏览器,准备处理验证码或必须由真人完成的点击。

问题出在交接过程。

代理在隐藏的工作页面和展示给人的可见页面之间切换,两份页面的状态却不互通。只要觉得情况不对,代理就重新展示页面,而展示又触发重新加载。作者刚完成的验证码和表单因此被清空。有代理还把确认链接打开在已经提交过的页面上,任务结束后也没清理标签页。

更麻烦的是,代理没有在操作前查看页面的当前状态。它依赖几步之前的观察,于是在人看来已经完成的表单,在代理的记忆里仍然等待处理。

页面状态已经变了,代理却还在执行旧计划。

多代理并发又放大了问题。原文提到,Cursor 论坛也有人反馈多个代理共用标签页、互相覆盖导航。按作者转述,Cursor 将其称为已知限制,并建议一次只让一个代理使用浏览器。这个办法能减少冲突,但也牺牲了作者想保留的并行能力。

把标签页分开,为什么还不够

作者已有一个开源项目 browser-agent,分成 agent 和 broker 两部分。agent 在作者自己的 Mac 上运行,驱动真实的 Brave;broker 位于浏览器调试端口前,负责分配和限制访问。

可以把 broker 理解为浏览器操作的门卫:每个代理拿到自己的标签页,不能查看或占用其他代理及用户的标签页,也不能把浏览器窗口强行拉到用户面前。

但当晚的故障说明,标签页隔离只解决了「谁能动哪个页面」,还需要解决「这个页面现在能怎么动」。作者随后增加了几类规则:

  • 一个任务从头到尾使用同一个标签页。需要人接手时,展示现有标签页,不再打开同一页面的副本。
  • 每次点击或输入前,重新读取页面当前状态。用户已经完成验证码或表单时,代理应从这个进度继续。
  • 任务进行中禁止重新加载或关闭页面。这条由 broker 在代码里阻止,不只依赖代理遵守提示。
  • 卡住时用一句话询问用户,不再通过重开页面重试。
  • 任务结束后关闭相关标签页。隐藏工作页在代理释放时关闭,展示给用户的页面在任务完成后关闭。

这些规则分别对应不同故障:页面复用避免状态分叉,操作前读取减少过时判断,代码拦截保护人工输入,结束清理则防止标签页持续堆积。

代理负责判断下一步,broker 负责限制哪些动作可以执行。

项目以 MIT 许可证发布,仓库名为 nicedreamzapp/browser-agent,broker 位于同一仓库的独立目录。作者称,broker 接管端口 9222 后,已有工具仍可连接原来的端口。不过,原文没有展开具体协议兼容范围,不能仅凭端口不变就认定所有工具都能直接适配。

我的判断

我认同作者把部分约束放进代码里的做法。「不要刷新用户正在填写的页面」如果只写进提示词,仍然需要代理在每次决策时记住;由 broker 拦截,才有明确的执行边界。对共享浏览器来说,这比单纯要求模型更谨慎更有说服力。

但「每步操作前读取页面」也有局限。读取与点击之间,用户仍可能继续操作,页面也可能异步更新。原文没有说明如何处理这段时间里的变化,也没有给出任务结束的判定方式。中途禁止刷新能保护输入,遇到页面确实需要刷新才能恢复时,又该如何放行,同样没讲清。

此外,文章给出了故障经历和改造规则,却没有提供改造后的成功率、冲突次数或对照实验。它是一套针对真实问题的工程经验,还不能据此判断并发协作已经稳定。

替代方案也各有位置。一次只让一个代理操作浏览器,更容易控制;给代理单独的浏览器环境,能减少与日常工作的相互干扰,但可能需要重新处理登录。作者的方案更适合「必须复用现有账号,而且需要人随时接手」的任务,这也是它最明确的使用前提。

能拿来做什么

  • 如果你正在写浏览器代理或 Node 自动化工具,可以先明确任务与标签页的对应关系,让人工接手继续使用原页面,避免为展示进度额外导航或复制页面。
  • 在表单和验证码流程中,把重新读取页面放到点击、输入之前,并识别用户已经完成的步骤,减少重复提交和从头执行。
  • 把刷新、关闭、跨标签页访问等操作集中到控制层处理,同时定义任务进行中和任务结束后的不同权限。
  • 如果现有 AI 编程工具已经出现争抢标签页,可以先限制浏览器任务串行执行;确实需要并发时,再评估标签页隔离和操作拦截是否覆盖了实际冲突。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
下一篇
长任务智能体如何保存进度与审批结果

资讯速览

dev.to · AI · 2026-10-29 16:33

AI 评分 8.0 / 10

相关标签

#浏览器自动化#智能体#人机协作

继续阅读

  • 长任务智能体如何保存进度与审批结果
  • 美团分布式存储团队的AI编程验证实践
  • 一句问候消耗17.7万Token,如何排查