196 lines
5.7 KiB
Markdown
Executable File
196 lines
5.7 KiB
Markdown
Executable File
---
|
||
created: 2026-05-01
|
||
type: concept
|
||
tags: [浏览器自动化, Agent, AI, Playwright, 网页导航, 计算机视觉, LLM]
|
||
source: "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. **单流程适配多网站** — 推理出交互方式,无需定制代码
|
||
|
||
---
|
||
|
||
## 💻 技术栈与使用
|
||
|
||
### 安装
|
||
|
||
```bash
|
||
# 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)` | 执行预构建工作流 |
|
||
|
||
### 三种交互模式
|
||
|
||
```python
|
||
# 1. 传统 Playwright — CSS/XPath
|
||
await page.click("#submit-button")
|
||
|
||
# 2. AI 增强 — 自然语言
|
||
await page.click(prompt="点击绿色的提交按钮")
|
||
|
||
# 3. AI 降级 — 先试选择器,失败后切 AI
|
||
await page.click("#submit-btn", prompt="点击提交按钮")
|
||
```
|
||
|
||
### 完整示例
|
||
|
||
```python
|
||
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 扩展*
|