如何对 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 也将会是其中的开拓者。

相关推荐
云水初3 小时前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
sg_knight4 小时前
Kimi Work 科研加速器:文献综述和论文润色的完整方法
llm·agent·ai编程·kimi·月之暗面·work·kimi work
SharpCJ4 小时前
Koog(7)——模型调用的输入域输出:多模态、参数、流式与结构化
llm·agent·koog
四六的六4 小时前
一次改回去越界的沙箱复盘:配置恢复了,token 还活着,检测器漏了最关键的那条
人工智能·openai·agent·个人开发·ai编程·ai大模型·ai产品
阿里云云原生4 小时前
Agent 一直在行动,任务为何没有进展?PoS 识别并打破 Belief Trapping
agent
FlyWIHTSKY5 小时前
AI Agent 工程师进阶表
人工智能·agent
小花皮猪5 小时前
从 Prompt 到结构化 JSON:如何利用 Bright Data 快速搭建 YouTube 监测工作流?
人工智能·爬虫·agent·数据采集
hpoenixf5 小时前
让 Agent 真正学会计算:从 Python 工具到计算工作台的架构演进
agent
武子康5 小时前
同为7/8,错误样本却不同:Agent Grader 分歧复算
人工智能·后端·agent
2401_872418786 小时前
把 Ubuntu 服务器变成 AI Agent 终端:用自然语言或语音管理 Linux,任何命令都先审批(附完整 Python 源码)
linux·服务器·ubuntu·agent