Notte 网页自动化

面向网页操作与数据提取的 AI 自动化框架。

Star 数
★ 2.1k
最近更新
今天
License
NOASSERTION
主语言
Python

30 秒速览

运行形态
代码库 / SDK云服务 / SaaS
可在哪里用
兼容但需适配
费用
有免费版,另有付费云服务
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.11+PatchrightChromiumShell / 命令行网络访问本地文件系统
典型场景
Python 开发者需要在本机用自有 LLM 密钥完成网页导航、表单操作或图片搜索等自然语言任务。
不适合
  • 需要完全离线或数据不出本地的团队,托管会话会把浏览器与凭据放到 Notte 云端
  • 不愿使用 SSPL-1.0 许可或需宽松开源许可的商业项目
  • 只想用 JavaScript/TypeScript 且不愿引入 Python 运行环境的团队

这个 Agent 能做什么,适合哪些场景?

Notte 是一个用于构建、部署和扩展网页交互型 AI 自动化的 Python 框架与 API 服务。开源核心以 notte.Session 和 notte.Agent 运行本地浏览器会话,用户需提供自己的 LLM API 密钥。托管路径通过 notte_sdk.NotteClient 创建浏览器会话和 Agent,并需要 Notte API 密钥。它可将 Playwright 兼容的确定性操作与自然语言 Agent 步骤混合使用,也可返回 Pydantic 定义的结构化结果。README 还展示了 Vault、Persona、文件存储、Cookie、CDP 连接、代理和 CAPTCHA 处理等托管会话能力。

本地模式先执行 pip install notte 与 patchright install --with-deps chromium,再用 notte.Session 建立浏览器会话,并由 notte.Agent(...).run(task=...) 执行自然语言网页任务。托管模式以 NotteClient 创建 Session 和 Agent;会话可执行 session.execute(type="goto"|"fill"|"click", ...)、session.observe() 与 session.scrape(instructions=...)。Agent.run 可接受 Pydantic response_format,将提取结果放入 response.answer。client.scrape 可直接抓取 URL;FileStorage 可上传输入文件并下载 Agent 获得的文件。

  1. Python 开发者需要在本机用自有 LLM 密钥完成网页导航、表单操作或图片搜索等自然语言任务。
  2. 数据采集工程师需要从新闻或博客页面提取符合 Pydantic 模型的标题、链接、分数、作者和正文。
  3. 自动化团队需要先用 session.execute 完成稳定的跳转和填写,再把需要判断的网页步骤交给 Agent。
  4. 需要托管浏览器会话的团队可通过 Notte API 使用代理、CAPTCHA 处理、Cookie 或 CDP 连接。
  5. 需要网页登录自动化的用户可将站点账号凭据加入 Vault,让 Agent 在任务中使用这些凭据。
  6. 需要在网页工作流中上传 PDF 或取回下载文件的用户可将 FileStorage 附加到 Session。

如何安装或部署这个 Agent?

本地模式要求 Python 3.11+。安装并安装 Chromium:

pip install notte
patchright install --with-deps chromium

本地 Agent 还需要你自己的 LLM API 密钥。托管 SDK 模式需要先在 Notte Console 创建 NOTTE_API_KEY;README 展示了 from notte_sdk import NotteClient,但未单独给出 notte_sdk 的安装命令。

如何使用这个 Agent?

本地首次调用:

import notte
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='doom scroll cat memes on google images')

托管调用时创建 NotteClient(api_key=os.getenv('NOTTE_API_KEY')),并在 with client.Session(...) as session: 中创建 client.Agent 后调用同一个 run 方法。

这个 Agent 有哪些优点和局限?

优点
  • 同一工作流可混合 session.execute 的确定性网页操作与 Agent 推理步骤,适合把不需要推理的部分脚本化。
  • response_format 支持 Pydantic 模型,可将网页提取结果限制为调用方所需的结构。
  • 托管会话展示了代理、自动 CAPTCHA 处理、Vault、Persona、文件存储、Cookie 和 CDP 等浏览器控制能力。
  • AgentFallback 可在确定性操作失败时触发 Agent 尝试修复该步骤。
局限
  • 本地运行要求 Python 3.11+、Patchright、Chromium,以及用户自行准备的 LLM API 密钥。
  • 托管功能需要 Notte Console API 密钥;README 未提供 notte_sdk 的单独安装说明,也未说明服务定价。
  • README 同时在仓库元数据中标示 License 为 NOASSERTION、在正文中称为 SSPL-1.0,采用前应核实实际许可状态。
  • README 的性能排名来自其链接的 open-operator-evals,不能据此推断你的站点、模型或任务上的结果。

这个 Agent 与同类方案有什么区别?

README 的基准表将 Notte 与 Browser-Use 和 Convergence(proxy-lite)并列比较;表中报告 Notte 的 Agent Self-Report 为 86.2%、LLM Evaluation 为 79.0%、每任务 47 秒、Task Reliability 为 96.6%。这些是 README 所列评测结果,不是对所有环境的保证。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Notte 网页自动化 当前 44 · 缺口较多 代码库 / SDK免费版 + 付费版 ★ 2.1k 今天 Python —
Stagehand:AI 浏览器自动化框架 47 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 26k 1 天前 TypeScript —
OpenBrowser 60 · 存在缺口 命令行工具免费版 + 付费版 ★ 279 1 个月前 Python Codex · Claude Code · Claude.ai · OpenAI API · Claude API
BrowserAct Skills:AI 代理的真实浏览器自动化 48 · 缺口较多 命令行工具免费版 + 付费版 ★ 6.3k 2 天前 Python Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
44/ 100 五分制 2.2 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 25 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 7/29
可靠稳定 6/14
适用触发 10/18
规范维护 9/18
有效结果 9/13
证据核验 3/8
查看各维度的扣分理由
信任安全7 / 29 · 1.2/5

证据显示:README 描述了 vault 和 persona 功能,暗示有凭据管理,但未提供实现细节或权限最小化说明。用户确认机制未见。数据流透明度有限,仅提及文件存储和 cookie 管理。敏感数据处理有 vault 和 persona 概念,但未深入。依赖安全有 pyproject.toml 列出依赖,但未提供漏洞扫描或锁定文件。外部影响明显(浏览器自动化、代理、CAPTCHA 解决),但未讨论副作用。回滚机制未见。来源归属有作者和版权声明,但发布者未验证。扣分原因:缺乏具体实现证据,权限和用户确认未说明。

可靠稳定6 / 14 · 2.1/5

证据显示:README 和文档测试显示内部一致性,例如参数同步测试。依赖可用性:依赖列表存在,但未提供锁定文件或版本范围。失败消息:文档提到 AgentFallback 处理失败,但未提供具体错误消息格式。扣分原因:依赖锁定和错误消息细节不足。

适用触发10 / 18 · 2.8/5

证据显示:README 面向开发者,提供多种场景(代理、抓取、混合工作流)。能力边界:描述了功能范围,但未明确限制。触发精度:任务描述自然语言,但未定义精确触发条件。环境适配:支持本地和云模式,但未说明系统要求。扣分原因:触发精度和边界定义不够精确。

规范维护9 / 18 · 2.5/5

证据显示:信息架构清晰,有 README、文档、测试。安装说明提供 pip 命令。命名稳定性:版本号存在,但未提供变更日志。示例和 FAQ:有大量示例,但 FAQ 未见。已知限制:未明确列出。许可证:SSPL-1.0 明确。版本控制:有版本号,但无变更日志。维护责任:有作者和联系方式,但未明确维护政策。扣分原因:缺少变更日志、FAQ 和已知限制。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性:提供结构化输出和抓取功能。边际价值:强调成本降低和可靠性提升。成本效益:声称成本降低 50%+,但未提供详细数据。扣分原因:成本效益声明缺乏具体证据。

证据核验3 / 8 · 1.9/5

证据显示:声明可追溯性:基准测试链接到外部仓库,但未提供原始数据。交叉来源:有外部链接,但未独立验证。事实与推断分离:README 区分了功能描述和基准,但未明确标注推断。扣分原因:基准数据未提供原始数据,推断未明确标注。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 发布者未验证,身份未知。
  • 依赖未锁定,存在供应链风险。
  • 敏感数据处理(vault/persona)实现细节未公开。
  • 基准测试数据未提供原始数据,声明需谨慎。
  • SSPL 许可证可能影响商业使用。
证据充分度:低 评估于 2026年8月9日 审查版本 caf891985c81 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.10.5
    发布说明摘录
    <!-- Release notes generated using configuration in .github/release.yml at 92ad42ac54d4b31463462a48aa95aba8a6798635 --> What's Changed What's Changed * chore: advance Python packages to 1.10.5.dev0 by @andreakiro in https://github.com/nottelabs/notte/pull/1459 * feat(credentials): add BitwardenVault and AacVault integrations by @giordano-lucas in https://github.com/nottelabs/notte/pull/816 * Document passwords, 2FA codes and API keys for secret proxies by @giordano-lucas in https://github.com/nottelabs/notte/pull/1461 …
    在 GitHub 查看 ↗
  2. v1.10.4
    发布说明摘录
    <!-- Release notes generated using configuration in .github/release.yml at bdcc74d262208147ec08c7e015a91b2079fad20f --> What's Changed What's Changed * chore: advance Python packages to 1.10.4.dev0 by @andreakiro in https://github.com/nottelabs/notte/pull/1452 * Add secret proxy entry and sticky_session proxy option by @giordano-lucas in https://github.com/nottelabs/notte/pull/1451 * Send the persona inbox test email through Resend by @leo-notte in https://github.com/nottelabs/notte/pull/1450 …
    在 GitHub 查看 ↗
  3. v1.10.3
    发布说明摘录
    <!-- Release notes generated using configuration in .github/release.yml at e675bf886702b73f93f2a953eac5755c8053dc5e --> What's Changed What's Changed * Fit Gemini computer-use popups to the shared window viewport by @giordano-lucas in https://github.com/nottelabs/notte/pull/1426 * chore: advance Python packages to 1.10.3.dev0 by @andreakiro in https://github.com/nottelabs/notte/pull/1427 * ci: stop passing an OpenAI key to the integration examples by @giordano-lucas in https://github.com/nottelabs/notte/pull/1424 …
    在 GitHub 查看 ↗

常见问题

能否完全在本地运行?
可以。README 展示了 notte.Session 与 notte.Agent 的本地模式;你需要安装 Patchright/Chromium,并提供自己的 LLM API 密钥。
何时需要 Notte API 密钥?
使用 NotteClient 的托管浏览器会话和 README 所示的高级会话功能时,需要在 Notte Console 创建 NOTTE_API_KEY。
能否获得可验证的结构化数据?
可以。为 Agent.run 或 client.scrape 提供 Pydantic response_format,结果可按该模型结构返回。
脚本化操作失败会怎样?
README 提供 AgentFallback(session, "...") 示例:其中的确定性 session.execute 失败时,可触发 Agent 处理补救任务。
能接入已有浏览器供应商吗?
README 说明可向 client.Session(cdp_url=...) 提供 CDP URL,以使用兼容 CDP 的外部浏览器会话。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents