04Bread Browser · 第 4 章
总进度 25 / 33把浏览器动作接成循环
ch02 点击登录链接后就结束了。若要完成登录,还需要填写、提交并检查结果:
2026-09-28约 60 分钟330 行代码难度 ★★★
如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。
1. 点击之后,还要接着做
ch02 点击登录链接后就结束了。若要完成登录,还需要填写、提交并检查结果:
任务:登录 quotes.toscrape.com(用户名 admin / 密码 1234)
需要至少 4-5 步:
- 点 Login 链接
- 填用户名
- 填密码
- 点 Submit
- 验证 Logout 出现(= 登录成功)
每一步做完之后页面会变——LLM 必须看到新页面才能决定下一步。
ch03 加的就是这个循环:
while not done:
snapshot = take_snapshot(page)
action = ask_llm(task, snapshot, history)
if action == done: break
execute(action)
这跟 Bread Agent 的 chat 循环本质相同——只不过工具变成了 click / type,结果变成了"页面快照"而不是"文件内容"。
<!-- bread-visual:start -->
<!-- bread-visual:end -->图解: 点击、输入、提交都会改变当前页面状态。 元素编号属于当前快照;不能拿首页的编号去点登录页。
2. 跑起来
cd ch03_agent_loop
python main.py
预期输出
=== 任务 ===
Log into the website with username 'admin' and password '1234'. ...
=== Agent 开始 ===
[step 0] click({'index': 1}) ← 点 Login
[step 1] type_text({'index': 2, 'text': 'admin'}) ← 填用户名
[step 2] type_text({'index': 3, 'text': '1234'}) ← 填密码
[step 3] click({'index': 4}) ← 点 Submit
[step 4] done({'answer': 'Successfully logged in...'})
=== Agent 最终回答 ===
Successfully logged in with username 'admin' and password '1234'. The "Logout" link is
visible on the page (index [1]), confirming the login was successful.
运行后对照实际步骤,最后检查右上角是否出现 Logout。模型选择的具体步数可能不同,页面上的成功信号才是检查依据。
<!-- bread-practice:start -->
实操画面对照

浏览器操作截图: 示例站登录表单中已填写 admin,密码以圆点显示。下一步点击 Login。 本图由浏览器按课程步骤实际操作采集,用于对照页面变化;不是课程 LLM 程序自动执行的证明。

试读到这里 · 后续内容已封存
关注公众号,继续把这章学完
在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。