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

196 lines
5.7 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 扩展*