AI Web 智能体可以浏览网页、点击按钮、填写表单、提取数据。它们几乎能完成一个人类在网上能做的任何事情......唯独不能登录。
身份认证并不只是一个小麻烦;它会直接阻止智能体完成那些对你真正有价值的任务。未经认证的智能体,无法查看你的邮箱、管理你的日历,也无法帮你处理退货。
下面介绍如何让你的智能体安全地完成账号认证,从而访问你实际在使用的各类服务。
Cookie 同步

当你登录某个网站时,浏览器会保存一组 Cookie,用来证明你已经通过认证。之后再次访问该网站时,浏览器会自动把这些 Cookie 发回服务器,这样服务器就能识别你,而无需再次登录。
Cookie 同步就是把你浏览器中的 Cookie 存储复制到智能体所使用的浏览器中。由于浏览器现在持有相同的 Cookie,因此各个网站都会把这个智能体视为"你本人"。
Browser Use 支持通过一条终端命令,将你真实的 Chrome 配置同步到云端。你也可以把 Cookie 导出为文件。
ini
# 将你的 Chrome 配置同步到 Browser Use Cloud
# export BROWSER_USE_API_KEY=your_key && curl -fsSL https://browser-use.com/profile.sh | sh
# 或者直接使用你的 Chrome 配置(开源版)
browser = Browser.from_system_chrome()
# 或者导出 cookies 以便在任意环境使用(开源版)
await browser.export_storage_state('auth.json')
browser = Browser(storage_state='auth.json')
密码管理器

像 1Password 这样的密码管理器,可以让智能体从密码库中提取凭据,并自动填写登录表单。这里还包括已保存的 TOTP 验证码------也就是身份验证器应用里每 30 秒刷新一次的 6 位数字验证码。
智能体本身永远不会看到你的真实密码,这些值会以编程方式直接填入页面中。
在 Cloud 设置中连接你的 1Password 服务账号后,智能体就可以自动提取并填写凭据。在开源库中,则可以结合 1Password SDK 和自定义工具来实现这一点。
双因素认证(2FA)

很多网站在输入密码之后,还要求提供第二重验证。最常见的一种形式是 TOTP。这类验证码由一个共享密钥和当前时间共同计算得出,并且每 30 秒刷新一次。
只要你持有这个密钥,就可以通过程序自动生成这些验证码,而不必手动打开身份验证器应用。
Browser Use 可以自动生成 TOTP 验证码。你只需使用以 bu_2fa_code 结尾的占位符,系统就会在输入时实时生成新的验证码:
bash
agent = Agent(
task='Go to example.com/login, enter x_user, x_pass, and x_bu_2fa_code',
sensitive_data={
'x_user': 'myusername',
'x_pass': 'mypassword',
'x_bu_2fa_code': 'JBSWY3DPEHPK3PXP', # TOTP secret key
},
)
智能体不会看到你的真实凭据,只会看到占位符名称。真实值会被直接注入到页面中。
在哪里找到你的 TOTP 密钥:
在开启 2FA 时,通常会有"手动输入"或"无法扫描二维码"之类的选项。在 1Password 中,也可以编辑对应条目并显示一次性密码密钥。
邮箱与短信验证
有些网站不会使用 TOTP,而是通过邮箱或短信发送验证码。你可以把这些验证码发送到一个由智能体管理的收件箱中,这样它就能自己完成验证流程。
AgentMail 是一个独立 API,用于创建由智能体管理的邮箱。你可以先创建一个收件箱,在注册或验证时使用这个邮箱地址,然后轮询检查是否收到验证码邮件。
将 AgentMail 与自定义工具配合使用,就能为智能体验证流程创建邮箱:
python
inbox = await email_client.inboxes.create()
@tools.registry.action('Get verification code from email')
async def get_verification_code():
emails = await email_client.inboxes.messages.list(inbox_id=inbox.inbox_id)
if emails.messages:
return ActionResult(extracted_content=emails.messages[0].text)
return ActionResult(error='No emails yet')
更大的背景
眼下我们正处在一个有些尴尬的阶段。智能体已经变得异常强大,但它们所运行的基础设施,原本是为人类设计的。当前还没有一种被广泛采用的、面向自治智能体的原生认证框架,因此本指南中的这些方法,本质上仍然是目前最可行的"权宜之计"。
上面提到的这些方式------Cookie 同步、密码管理器、TOTP 生成,以及持久化托管浏览器------已经能让智能体在今天访问你的账号。
而当真正面向智能体的原生认证体系到来时,Browser Use 也将会是其中的开拓者。