浏览器 Agent 卡在登录、验证码和动态表格?用「暂停交人—完成确认—继续执行」模板实现断点续跑
本文最后更新于 2026-07-29,文章内容可能已经过时。
浏览器 Agent 卡在登录、验证码和动态表格?用「暂停交人—完成确认—继续执行」模板实现断点续跑
Agent 已经帮你打开商家后台、找到订单入口,结果一遇到登录就停了。
你手动输入账号密码,说了一句“好了,继续”,它却像失忆一样重新打开登录页;好不容易进入订单列表,表格还在加载,它就匆忙点击导出,最后得到一份空文件。
最让人抓狂的不是失败,而是:明明只差一步,却要从头再来。
但这未必是模型不够聪明。更常见的原因是,我们只告诉 Agent“要完成什么”,却没有设计清楚:
- 什么时候必须停;
- 停下后要把哪些信息交给用户;
- 用户怎样表示操作完成;
- Agent 凭什么判断可以继续;
- 页面变化后,怎样从断点恢复。
人工接管不是自动化失败,而是浏览器 Agent 工作流中必须预先设计的一部分。
Agent 为什么一到登录、验证码和动态表格就“失忆”
浏览器任务中的三个高频障碍,本质上分别对应三类问题。
登录涉及身份与授权
账号、密码、短信验证码和支付信息,都不应该由 Agent 在对话中索取或保存。即使 Agent 能识别登录框,也不代表它应该代替用户处理敏感凭证。
正确方式是:Agent 打开登录页后暂停,由用户直接在网页中完成登录。
验证码就是用来阻止自动化的
图片验证码、滑块验证和二次身份验证,不是普通弹窗,而是网站设置的安全边界。
Agent 如果反复拖动滑块、尝试识别验证码,或者持续刷新页面,不仅可能失败,还可能触发更严格的验证甚至账号风控。
动态表格一直在变化
许多后台表格使用异步加载、虚拟滚动或懒加载。屏幕上看见几行数据,不代表全部内容已经准备完成。
表头可能重绘,筛选条件可能因刷新丢失,分页数量也可能晚于表格主体出现。Agent 如果沿用几秒前记录的坐标,很可能点击到另一行、另一个按钮,甚至重复提交。
因此,问题并不是简单的“卡住”,而是任务缺少一套标准的人机交接协议。
把“卡住”改造成四态任务状态机
比起让 Agent 自由发挥,更可靠的方法是把任务明确划分为四种状态。
1. RUNNING:页面状态明确,Agent 正常执行。
2. PAUSE_REQUIRED:检测到登录、验证码、敏感授权或页面异常,立即停手。
3. WAITING_CONFIRMATION:用户已经操作,但 Agent 尚未确认结果。
4. RESUMING:Agent 重新识别页面,从最近检查点继续。
这里最容易被忽略的是:用户完成操作,不等于 Agent 可以立即恢复。
例如用户说“好了”,可能意味着:
- 已经输入账号,但还没点击登录;
- 已完成验证码,但页面仍在跳转;
- 已进入后台,但登录弹窗尚未消失;
- 表格已经出现,但筛选条件被刷新清空。
所以,Agent 暂停时不能只说一句“请手动完成”。一份合格的交接信息至少要包括:
- 当前页面;
- 暂停原因;
- 已完成步骤;
- 用户需要执行的动作;
- 操作完成的判断标准;
- 不应触碰的区域;
- 恢复后准备执行的下一步。
三套可以直接复制的交接模板
小白版:一段式 Prompt
执行浏览器任务时,如果遇到登录、密码、短信验证码、图片验证码、滑块验证、支付信息、权限确认、动态表格持续加载,或者提交、删除、发布、导出等重要操作,请立即停止点击。告诉我暂停原因、当前页面、已经完成的步骤、需要我做什么、什么状态算完成,以及恢复后你准备做什么。不要要求我在对话中发送密码或验证码。我说完成后,不要马上沿用旧坐标继续操作,请先重新检查网址、页面标题、登录状态、弹窗、关键按钮、筛选条件和表格加载状态;只有检查通过后,才能从最近的步骤继续。
它适合临时任务,优势是短、容易复制;不足是输出格式不够稳定。涉及多页面和长流程时,建议使用下面的状态机版本。
进阶版:状态机 Prompt
你正在执行一个浏览器任务。请遵守以下人机交接协议:
【正常执行】
- 在页面状态明确、操作可逆且不涉及敏感授权时,继续执行任务。
- 每完成一个关键阶段,记录当前页面、已完成事项和下一步动作。
【必须暂停的情况】
出现以下任一情况时,立即停止点击和输入:
1. 需要输入账号、密码、短信验证码、支付信息;
2. 出现图片验证码、滑块验证或二次身份验证;
3. 页面提示登录失效、权限不足或存在安全风险;
4. 动态表格持续加载、行列错位、筛选结果不稳定;
5. 即将执行提交、删除、支付、发布等不可逆操作。
【暂停时的输出格式】
状态:PAUSE_REQUIRED
暂停原因:
当前页面:
已完成步骤:
请用户完成:
完成标准:
请勿操作:
恢复后下一步:
【用户确认规则】
不要仅根据“好了”“继续”等模糊回复直接操作。
先检查:
- 当前网址或页面标题是否符合预期;
- 登录、验证码或弹窗是否已经消失;
- 页面关键元素是否可见;
- 原有筛选条件和任务上下文是否仍然保留。
检查通过后输出:
状态:RESUMING
识别到的页面状态:
准备执行的下一步:
需要再次确认的风险:
若检查不通过,保持暂停,并明确告诉用户还缺少什么。
这套模板包含四个关键模块:暂停触发器、人工操作清单、完成确认口令和恢复前页面复核。
推荐不要只回复“好了”,而是使用更明确的确认口令,例如:
已完成登录,请重新检查当前页面,确认进入订单后台后再继续。
开发者版:JSON 交接对象
复杂任务最好记录 task_id、当前步骤、页面指纹、恢复条件和下一动作。
{
"task_id": "export-orders-2025-01",
"status": "PAUSE_REQUIRED",
"reason": "LOGIN_REQUIRED",
"checkpoint": {
"step": 3,
"page_title": "商家后台登录",
"url_pattern": "/login",
"completed_steps": [
"打开商家后台",
"进入订单管理入口"
]
},
"user_action": {
"instruction": "请在当前页面自行完成登录,不要在对话中发送密码或验证码。",
"completion_criteria": "页面进入订单管理后台,且登录弹窗消失。"
},
"resume_plan": {
"verify": [
"检查页面标题",
"确认登录状态",
"确认订单菜单可见"
],
"next_action": "进入订单列表并设置日期筛选条件"
}
}
控制逻辑可以简化为:
if requires_human(page):
checkpoint = save_checkpoint(page, task)
return pause_required(checkpoint)
if user_confirmed():
current_page = inspect_page()
if resume_conditions_met(current_page, checkpoint):
return resume_from_checkpoint()
else:
return keep_waiting_and_explain()
复制模板后,建议先用不涉及真实账号和敏感数据的测试任务跑一遍。你可以前往 api.884819.xyz,根据站点当前提供的模型或 API 环境进行测试,重点观察模型能否稳定输出 PAUSE_REQUIRED、保存检查点,并在确认后重新识别页面。
一条完整任务,怎样经历两次暂停并继续
以“导出商家后台订单”为例,完整流程不是几个孤立技巧,而是一条可以断点恢复的链路。
第一次暂停:登录交给用户
Agent 打开后台并进入登录页,此时输出:
状态:PAUSE_REQUIRED
暂停原因:当前页面需要输入账号和密码
当前页面:商家后台登录页
已完成步骤:已打开后台并定位到登录入口
请用户完成:请直接在网页中自行登录
完成标准:登录页消失,页面进入商家后台
请勿操作:不要关闭当前标签页,不要在对话中发送密码
恢复后下一步:检查订单管理菜单并进入订单列表
用户完成登录后,Agent不能马上点击之前记录的坐标,而要重新检查页面标题、网址和订单菜单。确认通过后进入 RESUMING。
第二阶段:设置日期范围
Agent 进入订单列表,设置日期范围。完成后记录检查点:
- 日期条件已经生效;
- 当前筛选标签仍然可见;
- 下一步是等待表格加载并核对结果;
- 尚未点击导出。
这样即使页面刷新,也不必重新登录或重复设置所有条件。
第二次暂停:动态表格状态不稳定
此时表格主体可能已经出现,但加载图标仍在旋转,总记录数和分页尚未更新。
Agent 应暂停处理并重新读取:
- 表头是否完整;
- 加载提示是否消失;
- 日期筛选标签是否保留;
- 总记录数和分页是否出现;
- 当前表格是否存在虚拟滚动或懒加载。
如果虚拟滚动导致数据不完整,应优先寻找分页、官方导出按钮或更稳定的数据入口,而不是根据屏幕上暂时出现的几行内容下结论。
导出前再次确认
导出通常会生成文件,部分后台还可能消耗导出额度或创建异步任务。因此在点击前,Agent应展示当前参数:
状态:PAUSE_REQUIRED
暂停原因:即将执行订单导出
当前筛选条件:已识别到页面中的日期范围和订单状态
完成标准:用户明确确认按当前条件导出
恢复后下一步:点击导出,并检查是否出现成功提示或下载任务
用户确认后,Agent再次检查筛选条件没有变化,再执行导出。
这条链路的关键不是“永远不暂停”,而是每次暂停都保存现场,每次继续都重新验明现场。
最常见的错误与正确做法
| 场景 | 错误做法 | 正确做法 | | 登录 | 让用户把密码发到对话里 | 用户在网页中自行输入 | | 验证码 | Agent反复点击或尝试绕过 | 暂停并交由用户本人完成 | | 用户说“好了” | 立即沿用旧坐标操作 | 重新识别网址、标题和关键元素 | | 动态表格 | 看见几行数据就开始处理 | 检查加载状态、总条数、分页和筛选条件 | | 导出或提交 | 不确认便点击 | 展示参数并请求最终确认 | | 页面刷新 | 从头执行全部动作 | 根据检查点判断已完成步骤 | | 表单恢复 | 再次填写并提交 | 先检查是否已成功,避免重复提交 |安全提示
>
- 不要把密码、短信验证码、支付密码发送给 Agent。
- 不要尝试让 Agent 绕过验证码或平台安全机制。
- 登录、付款、删除、发布等动作应由用户明确授权。
- 恢复执行前必须重新读取页面,不能默认页面状态未变化。
- 自动化操作需遵守目标网站的服务条款、权限和数据使用要求。
从单次 Prompt 升级为可复用任务清单
小白用户不必一开始就搭建复杂系统,只要记住下面六步:
先停手 → 说清原因 → 保存现场 → 用户处理 → 检查结果 → 从断点继续。
进阶任务则建议至少保存以下字段:
task_id:任务标识;status:当前状态;step:正在执行的步骤;completed_steps:已经完成的步骤;page_fingerprint:网址、标题和关键元素;resume_conditions:恢复必须满足的条件;next_action:检查通过后的下一动作;risk_level:是否涉及提交、删除、支付或发布。
如果要为文章或团队文档准备截图,建议保留以下 5 张,并对账号、订单号和手机号打码:
1. 登录页上的 PAUSE_REQUIRED;
2. 用户登录后,Agent复核页面状态;
3. 滑块或图片验证码出现时的暂停提示;
4. 动态表格“加载中”与“加载完成”的对比;
5. 导出、提交等操作前的二次确认。
截图标注不要只圈出按钮,而要突出三件事:为什么暂停、用户要做什么、什么状态算完成。
可靠的 Agent,首先要学会停手
真正可靠的浏览器 Agent,不是遇到任何页面都硬着头皮操作,而是清楚哪些事情可以自己做、哪些必须交给人,以及用户处理后如何从正确的位置继续。
不要一上来就测试完整后台流程。可以先打开 api.884819.xyz,把本文模板交给你正在使用的模型,从“打开页面—遇到登录—暂停交人—确认后继续”这条最短链路开始验证。跑通后,再逐步加入验证码、动态表格和导出确认。
8848AI 平台使用用户名和密码即可注册,无需邮箱验证;平台内置 AI 对话功能,没有月租和订阅,采用按量付费方式,Deepseek、千问等国产模型可免费使用。
新用户注册即送体验token。暂停和恢复解决了“Agent 卡住怎么办”,但还没有解决一个更危险的问题:用户说“继续”以后,Agent怎么判断当前页面还是不是原来的页面?
下一篇将拆解浏览器 Agent 的“页面指纹与恢复校验”模板:如何利用网址、页面标题、关键按钮、表头、筛选标签和记录数量,避免页面刷新后点错位置、读取旧数据或重复提交。
本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。#浏览器Agent #AI教程 #Prompt技巧 #人工智能 #工作流自动化 #HumanInTheLoop #8848AI