2026年7月13日 2 分钟阅读

AI Agent 需要操作网页,但浏览器自动化总掉链子?Notte 用混合架构让 Agent 可靠又省钱

tinyash 0 条评论

AI 编码 Agent 越来越强,但一碰到需要操作网页的场景——登录后台、抓取数据、填写表单——就开始掉链子。不是速度慢,就是点错按钮,或者 AI 花几十步思考一个简单的三步骤流程。

Notte 是一个 Python 浏览器 Agent 框架(源码可用,SSPL-1.0 许可证),核心思路很简单:用确定性脚本处理你能写得出来的步骤,把 AI 留给需要推理的部分。这个「混合架构」让 Agent 的可靠性大幅提升,成本还降了一半。

不是所有步骤都需要 AI

大多数浏览器 Agent 框架的问题在于——它们让 LLM 决定每一步。从打开页面到输入搜索词到点击结果,全部交给模型推理。这不仅慢(Browser-Use 平均每任务 113 秒),还容易出错(Task Reliability 83.3%)。

Notte 的做法是区分两种场景:

  • 确定性步骤:打开 URL、填充输入框、滚动页面——这些用 Playwright 脚本直接执行,零推理成本
  • 推理步骤:判断搜索结果的正确性、提取特定格式的数据、处理登录失败等异常情况——交给 LLM

这种分工在 Notte 的基准测试中效果显著:Task Reliability 96.6%,平均每任务仅 47 秒,LLM Evaluation 评分 79%。

五分钟上手

安装只需两行:

pip install notte
patchright install --with-deps chromium

本地模式直接跑一个 Agent:

import notte
from dotenv import load_dotenv
load_dotenv()

with notte.Session(headless=False) as session:
    agent = notte.Agent(
        session=session,
        reasoning_model='gemini/gemini-2.5-flash',
        max_steps=30
    )
    response = agent.run(task="在 Google 图片上搜「AI agent 架构图」")

如果想要更高级的功能(隐身浏览器、CAPTCHA 自动解决、代理 IP),可以注册 Notte Console 获取免费 API Key,然后改用 SDK 模式:

from notte_sdk import NotteClient
import os

client = NotteClient(api_key=os.getenv("NOTTE_API_KEY"))

with client.Session(open_viewer=True) as session:
    agent = client.Agent(
        session=session,
        reasoning_model='gemini/gemini-2.5-flash',
        max_steps=30
    )
    response = agent.run(
        task="doom scroll cat memes on google images"
    )

结构化输出:让 Agent 返回你想要的数据

Notte 支持用 Pydantic 模型定义返回格式——Agent 爬完数据后直接给你结构化的对象,不用自己解析 HTML:

from notte_sdk import NotteClient
from pydantic import BaseModel

class HackerNewsPost(BaseModel):
    title: str
    url: str
    points: int
    author: str
    comments_count: int

class TopPosts(BaseModel):
    posts: list[HackerNewsPost]

client = NotteClient()
with client.Session(open_viewer=True) as session:
    agent = client.Agent(
        session=session,
        reasoning_model='gemini/gemini-2.5-flash',
        max_steps=15
    )
    response = agent.run(
        task="打开 Hacker News,提取前 5 条帖子的标题、链接、分数、作者和评论数",
        response_format=TopPosts,
    )
print(response.answer)

混合工作流:脚本 + Agent 的最佳实践

Notte 最实用的功能是混合工作流——把确定性步骤用 Playwright 原语执行,只在需要权衡的地方用 Agent:

from notte_sdk import NotteClient

client = NotteClient()

with client.Session(open_viewer=True) as session:
    # 第一步:确定性导航
    session.execute(type="goto", url="https://duckduckgo.com/")
    session.execute(
        type="fill",
        selector='internal:role=combobox[name="Search with DuckDuckGo"]',
        value="nottelabs"
    )
    # 第二步:让 Agent 推理接下来的操作
    agent = client.Agent(session=session, max_steps=3)
    agent.run(task="打开 nottelabs 的 GitHub 仓库")
    # 第三步:用 scraping 端点提取数据
    data = session.scrape(instructions="提取该仓库的 star 数量")

这种模式的实际效果:一个需要在多个页面间跳转、判断链接正确性、提取数据的任务,如果用纯 Agent 可能需要 15 步 + 2 分钟,用混合工作流只需要 3 步 Agent + 3 步脚本,总耗时 30 秒,LLM 调用成本减少 70%。

进阶功能一览

Agent Vault(凭据管理)

Agent 需要登录网站时,Vault 可以安全存储用户名密码,Agent 在需要时自动调用:

with client.Vault() as vault, client.Session() as session:
    vault.add_credentials(
        url="https://x.com",
        username="your-email",
        password="your-password",
    )
    agent = client.Agent(session=session, vault=vault, max_steps=10)
    response = agent.run(task="登录 Twitter 查看我的私信")

Agent Persona(数字身份)

需要注册账号的场景,Persona 提供自动生成的身份信息(邮箱、电话),自动处理 2FA:

with client.Persona() as persona:
    with client.Session() as session:
        agent = client.Agent(
            session=session,
            persona=persona,
            max_steps=15
        )
        response = agent.run(
            task="打开 Google 表单并填写 RSVP",
            url="https://forms.google.com/your-form-url",
        )

隐身浏览器与反检测

内置 CAPTCHA 自动解决、代理 IP、浏览器指纹伪装——所有特性通过 Session 参数开关:

with client.Session(
    solve_captchas=True,
    proxies=True,
    browser_type="chrome",
    open_viewer=True
) as session:
    agent = client.Agent(session=session, max_steps=5)
    response = agent.run(
        task="尝试解决 CAPTCHA",
        url="https://www.google.com/recaptcha/api2/demo"
    )

总结

Notte 的混合架构是一种务实的思路:不是让 AI 去做所有事,而是把不需要推理的部分剥离出来用脚本执行。这种分层方式让浏览器 Agent 的可靠性从 83% 提升到 96%,成本下降 50% 以上。

对于需要在工作流中加入网页操作的 AI 编码 Agent,Notte 提供了一个现成的替代方案——你可以在本地跑开源版,也可以在需要隐身、CAPTCHA 解决等功能时切换到 SDK 付费版。

唯一需要注意的是许可证差异:开源核心使用 SSPL-1.0(服务端公共许可证,非 OSI 批准的开源许可证),SDK 按量计费。如果用在商业项目中,建议先了解 SSPL 的合规要求。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。