Files
chill_notes/wiki/Areas/AI编程工具/Skyvern研究.md
2026-05-01 22:37:41 +08:00

5.7 KiB
Executable File
Raw Blame History

created, type, tags, source
created type tags source
2026-05-01 concept
浏览器自动化
Agent
AI
Playwright
网页导航
计算机视觉
LLM
https://github.com/Skyvern-AI/skyvern

Skyvern — AI 驱动的浏览器自动化 Agent

GitHub: https://github.com/Skyvern-AI/skyvern 官网: https://www.skyvern.com 文档: https://www.skyvern.com/docs/ 评估: https://eval.skyvern.com Cloud: https://app.skyvern.com 归档时间2026-05-01


📌 一句话定位

用 LLM + 计算机视觉替代 XPath/CSS 选择器,实现"说人话就能操控浏览器"的自动化方案。


🏗️ 核心架构

设计理念

Skyvern 基于 Task-Driven 自主 Agent 设计(受 BabyAGI、AutoGPT 启发),核心创新:给 Agent 接上了 Playwright 浏览器控制能力。

三大 Agent 协作Skyvern 2.0

Planner规划器
  ↓ 分解复杂目标为子任务
Actor/Task Runner执行器
  ↓ 在网页上执行操作
Validator验证器
  ↓ 确认目标是否达成 → 反馈给 Planner

演进历程

版本 架构 WebVoyager 得分 问题
1.0 单 Agent决策+执行合一) ~45% 简单任务 OK复杂多目标容易混乱
2.0 Planner → Actor → Validator 85.85% SOTA 级别,接近 Google Mariner

🔑 核心优势

vs 传统浏览器自动化

维度 传统方案Selenium/Playwright Skyvern
元素定位 XPath/CSS 选择器 视觉 LLM 识别
网页变化 布局一变就挂 自适应,抗变化
跨站复用 每站写一套脚本 一套流程适用多站
维护成本 高(持续更新选择器) 低(无需硬编码)

关键能力

  1. 从未见过的网站也能操作 — 视觉识别,不依赖预定义选择器
  2. 抵抗网页布局变化 — 没有 XPath不怕改版
  3. 单流程适配多网站 — 推理出交互方式,无需定制代码

💻 技术栈与使用

安装

# Python SDK
pip install skyvern

# TypeScript SDK
npm install @skyvern/client

# 快速启动(本地)
skyvern quickstart
# 或 Docker
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
# 选择 Docker Compose 全容器化部署

依赖Python 3.11/3.12、NodeJS+NPM、Windows 还需 Rust

四种核心 AI 命令

命令 功能 示例
page.act(prompt) 自然语言执行操作 "点击登录按钮"
page.extract(prompt, schema) 提取结构化数据 提取订单详情(支持 JSON Schema
page.validate(prompt) 验证页面状态 "检查用户是否已登录",返回 bool
page.prompt(prompt) 向 LLM 提问页面内容 "总结页面上有什么"

高级 Agent 命令

命令 功能
page.agent.run_task(prompt) 执行复杂多步任务
page.agent.login(type, id) 自动登录(支持 Skyvern/Bitwarden/1Password
page.agent.download_files(prompt) 导航并下载文件
page.agent.run_workflow(id) 执行预构建工作流

三种交互模式

# 1. 传统 Playwright — CSS/XPath
await page.click("#submit-button")

# 2. AI 增强 — 自然语言
await page.click(prompt="点击绿色的提交按钮")

# 3. AI 降级 — 先试选择器,失败后切 AI
await page.click("#submit-btn", prompt="点击提交按钮")

完整示例

from skyvern import Skyvern

skyvern = Skyvern.local()  # 或 Skyvern(api_key="xxx") 连 Cloud
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()

await page.goto("https://amazon.com")
await page.agent.login(credential_type="skyvern", credential_id="cred_123")
await page.click(prompt="将第一个商品加入购物车")
result = await page.agent.run_task("完成结账流程")

🌩️ Skyvern Cloud

特性 说明
托管服务 无需自建基础设施
并行运行 多实例同时执行
反检测 内置反 bot 检测机制
代理网络 自动代理轮换
验证码 内置 CAPTCHA 求解器
凭证管理 支持 Bitwarden / 1Password 集成

📊 评测表现

  • WebVoyager Eval: 85.85%SOTA 级别)
  • 测试在 Skyvern Cloud 真实环境中运行(非本地浏览器)
  • 使用 GPT-4o + GPT-4o-mini 作为决策 LLM
  • 公开完整评估过程:https://eval.skyvern.com

🎯 典型应用场景

场景 说明
自动求职 自动在多个招聘网站投递申请
发票抓取 登录供应商系统,下载发票
自动采购 在数百个网站自动下单
数据采集 从动态网页提取结构化数据
表单填写 自动完成复杂表单流程

🔍 与同类工具对比

工具 定位 开源 浏览器支持
Skyvern LLM+视觉浏览器 Agent Chromium (Playwright)
Browser-use LangChain 浏览器 Agent Chromium
OpenClaw browser 内置浏览器控制 N/A Chromium
agent-browser CLI 浏览器自动化 Chromium
Google Mariner 闭源 Web Agent Chrome

💡 与 OpenClaw 的关系

Skyvern 和 OpenClaw 的 browser 工具定位不同:

  • Skyvern:专注于"说人话操控网页",适合复杂多步网页流程自动化
  • OpenClaw browser:通用浏览器控制,适合日常查询和简单操作

两者可互补使用Skyvern 处理复杂网页自动化OpenClaw 处理日常浏览需求。


研究完成2026-05-01 | Skyvern 2.0 WebVoyager 85.85%,开源 Playwright 扩展