如何对 AI Web 智能体进行身份认证

AI Web 智能体可以浏览网页、点击按钮、填写表单、提取数据。它们几乎能完成一个人类在网上能做的任何事情......唯独不能登录

身份认证并不只是一个小麻烦;它会直接阻止智能体完成那些对你真正有价值的任务。未经认证的智能体,无法查看你的邮箱、管理你的日历,也无法帮你处理退货。

下面介绍如何让你的智能体安全地完成账号认证,从而访问你实际在使用的各类服务。

当你登录某个网站时,浏览器会保存一组 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 也将会是其中的开拓者。

相关推荐
专职17 小时前
Cline与大模型的交互协议(内涵Agent实现原理)
agent
冬奇Lab20 小时前
5种来自谷歌的Agent Skill设计模式:减少Token浪费,精准触发正确行为
人工智能·agent
竹之却1 天前
【Agent-阿程】OpenClaw 2026.4.1 版本更新与使用体验
agent·openclaw
View121381 天前
在 .NET 中使用 Moonshot Kimi + AgentFramework:从 SDK 到 Agent 的完整实践
c#·agent·kimi
flytam1 天前
Claude Agent SDK 深度入门指南
前端·aigc·agent
jerrywus1 天前
AI 写代码总翻车?我用 Harness:developer 把它管成“右侧打工人”
前端·agent·claude
行者无疆_ty1 天前
小龙虾(OpenClaw)安装教程
人工智能·agent·openclaw·小龙虾
HIT_Weston1 天前
39、【Agent】【OpenCode】本地代理分析(三)
人工智能·agent·opencode
LucaJu1 天前
一、先了解:MCP 公开服务市场
agent·智能体·spring ai·mcp·spring ai alibaba
张永清1 天前
深度解析Claude Code 51万行源码背后的设计实现
ai·大模型·agent·claude code