Notte 网页自动化
面向网页操作与数据提取的 AI 自动化框架。
- Star 数
- ★ 2.1k
- 最近更新
- 今天
- License
- NOASSERTION
- 主语言
- Python
- FA 评分
- 44/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 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 获得的文件。
- Python 开发者需要在本机用自有 LLM 密钥完成网页导航、表单操作或图片搜索等自然语言任务。
- 数据采集工程师需要从新闻或博客页面提取符合 Pydantic 模型的标题、链接、分数、作者和正文。
- 自动化团队需要先用
session.execute完成稳定的跳转和填写,再把需要判断的网页步骤交给Agent。 - 需要托管浏览器会话的团队可通过 Notte API 使用代理、CAPTCHA 处理、Cookie 或 CDP 连接。
- 需要网页登录自动化的用户可将站点账号凭据加入
Vault,让 Agent 在任务中使用这些凭据。 - 需要在网页工作流中上传 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?
查看各维度的扣分理由
证据显示:README 描述了 vault 和 persona 功能,暗示有凭据管理,但未提供实现细节或权限最小化说明。用户确认机制未见。数据流透明度有限,仅提及文件存储和 cookie 管理。敏感数据处理有 vault 和 persona 概念,但未深入。依赖安全有 pyproject.toml 列出依赖,但未提供漏洞扫描或锁定文件。外部影响明显(浏览器自动化、代理、CAPTCHA 解决),但未讨论副作用。回滚机制未见。来源归属有作者和版权声明,但发布者未验证。扣分原因:缺乏具体实现证据,权限和用户确认未说明。
证据显示:README 和文档测试显示内部一致性,例如参数同步测试。依赖可用性:依赖列表存在,但未提供锁定文件或版本范围。失败消息:文档提到 AgentFallback 处理失败,但未提供具体错误消息格式。扣分原因:依赖锁定和错误消息细节不足。
证据显示:README 面向开发者,提供多种场景(代理、抓取、混合工作流)。能力边界:描述了功能范围,但未明确限制。触发精度:任务描述自然语言,但未定义精确触发条件。环境适配:支持本地和云模式,但未说明系统要求。扣分原因:触发精度和边界定义不够精确。
证据显示:信息架构清晰,有 README、文档、测试。安装说明提供 pip 命令。命名稳定性:版本号存在,但未提供变更日志。示例和 FAQ:有大量示例,但 FAQ 未见。已知限制:未明确列出。许可证:SSPL-1.0 明确。版本控制:有版本号,但无变更日志。维护责任:有作者和联系方式,但未明确维护政策。扣分原因:缺少变更日志、FAQ 和已知限制。
证据显示:输出可用性:提供结构化输出和抓取功能。边际价值:强调成本降低和可靠性提升。成本效益:声称成本降低 50%+,但未提供详细数据。扣分原因:成本效益声明缺乏具体证据。
证据显示:声明可追溯性:基准测试链接到外部仓库,但未提供原始数据。交叉来源:有外部链接,但未独立验证。事实与推断分离:README 区分了功能描述和基准,但未明确标注推断。扣分原因:基准数据未提供原始数据,推断未明确标注。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者未验证,身份未知。
- 依赖未锁定,存在供应链风险。
- 敏感数据处理(vault/persona)实现细节未公开。
- 基准测试数据未提供原始数据,声明需谨慎。
- SSPL 许可证可能影响商业使用。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
<!-- 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 查看 ↗ -
发布说明摘录
<!-- 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 查看 ↗ -
发布说明摘录
<!-- 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 查看 ↗
常见问题
能否完全在本地运行?
notte.Session 与 notte.Agent 的本地模式;你需要安装 Patchright/Chromium,并提供自己的 LLM API 密钥。何时需要 Notte API 密钥?
NotteClient 的托管浏览器会话和 README 所示的高级会话功能时,需要在 Notte Console 创建 NOTTE_API_KEY。能否获得可验证的结构化数据?
Agent.run 或 client.scrape 提供 Pydantic response_format,结果可按该模型结构返回。脚本化操作失败会怎样?
AgentFallback(session, "...") 示例:其中的确定性 session.execute 失败时,可触发 Agent 处理补救任务。能接入已有浏览器供应商吗?
client.Session(cdp_url=...) 提供 CDP URL,以使用兼容 CDP 的外部浏览器会话。