什么是 Skyvern?
Skyvern 是一个革命性的浏览器自动化平台,它使用大语言模型(LLM)和计算机视觉技术来理解和操作网页,无需编写传统的 XPath 或 CSS 选择器脚本。
🎯 核心优势
传统的浏览器自动化需要为每个网站编写定制脚本,依赖于 DOM 解析和基于 XPath 的交互,这些脚本在网站布局改变时经常失效。Skyvern 通过视觉 LLM 来学习和交互,可以在从未见过的网站上运行,并且对网站布局变化具有抵抗力。
核心特性
强大的功能集让你能够自动化几乎所有浏览器工作流
智能视觉识别
使用 Vision LLM 理解网页元素,无需预定义的 XPath 或选择器,自动识别按钮、表单、链接等交互元素。
智能表单填写
自动理解表单字段含义并填写正确的信息,支持复杂的多步骤表单和条件逻辑。
工作流编排
链接多个任务形成复杂工作流,支持循环、条件判断、数据提取、文件处理等高级功能。
认证支持
支持多种认证方式,包括 2FA(TOTP)、邮箱验证、短信验证,集成 Bitwarden 密码管理器。
数据提取
按照自定义 Schema 提取网页数据,输出结构化的 JSON 格式,完美适配数据分析需求。
实时流式传输
实时查看浏览器视窗,监控 Skyvern 的操作过程,必要时可以人工干预。
文件下载
自动下载文件并上传到块存储,支持发票、报告、证书等各类文档的批量下载。
跨网站适用
单一工作流可应用于多个网站,无需为每个网站编写定制代码,大幅提升效率。
集成生态
支持 Zapier、Make.com、N8N 集成,以及 Model Context Protocol (MCP) 标准。
工作原理
基于多智能体系统的创新架构
💡 智能推理示例
当获取汽车保险报价时,Skyvern 能够理解"你是否在18岁时有资格驾驶?"这个问题,并从"驾驶员在16岁时获得驾照"这个信息中推断出答案为"是"。
真实应用场景
Skyvern 在实际生产环境中的应用
发票自动下载
从多个不同的网站自动下载发票,无需为每个网站编写脚本
职位申请自动化
自动填写求职申请表单,支持各种招聘网站
材料采购自动化
制造企业的材料采购流程自动化
政府网站表单
自动填写政府网站的注册表单和申请表
联系表单填写
批量填写各种网站的联系表单
保险报价获取
从多个保险公司网站获取报价,支持多语言
安装指南
选择适合你的安装方式
系统要求
- Python 3.11.x (支持 3.12,暂不支持 3.13)
- Node.js 和 NPM
- Windows 用户需要 Rust 和 VS Code C++ 开发工具
1. 安装 Skyvern
pip install skyvern
2. 初始化数据库
skyvern quickstart
3. 启动服务
skyvern run all
访问 http://localhost:8080 使用 Web UI
4. 使用 Python SDK
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today"
)
print(task)
前置要求
- 安装 Docker Desktop
- 确保本地没有运行 PostgreSQL (端口 5432)
1. 克隆仓库
git clone https://github.com/skyvern-ai/skyvern.git
cd skyvern
2. 配置环境变量
skyvern init llm
在 docker-compose.yml 中填写 LLM 提供商的 API 密钥
3. 启动服务
docker compose up -d
访问 http://localhost:8080 使用 Web UI
开发者安装
适合想要贡献代码或自定义开发的用户
1. 安装 UV
curl -LsSf https://astral.sh/uv/install.sh | sh
2. 克隆并设置
git clone https://github.com/skyvern-ai/skyvern.git
cd skyvern
uv sync --group dev
uv run skyvern quickstart
3. 启动开发服务
uv run skyvern run all
Skyvern Cloud
托管云版本,无需担心基础设施,自带反机器人检测、代理网络和验证码解决方案。
主要优势
- 无需配置服务器和数据库
- 支持并行运行多个实例
- 内置反机器人检测机制
- 集成代理网络
- 自动 CAPTCHA 求解
开始使用
访问 app.skyvern.com 创建账户即可开始使用。
Python SDK 连接云服务
from skyvern import Skyvern
# 连接到云服务
skyvern = Skyvern(api_key="YOUR_SKYVERN_API_KEY")
task = await skyvern.run_task(
prompt="Find the top post on hackernews today"
)
print(task)
支持的 LLM 提供商
灵活选择你喜欢的大语言模型
OpenAI
GPT-4 Turbo, GPT-4o, GPT-4o-mini, O4-mini, O3
Anthropic
Claude 3 (Haiku, Sonnet, Opus), Claude 3.5/3.7 Sonnet, Claude 4
Azure OpenAI
支持所有 GPT 模型,推荐使用多模态模型
AWS Bedrock
Anthropic Claude 系列模型
Google Gemini
Gemini 2.5 Pro/Flash, Gemini 2.0
Ollama
本地托管的开源模型
⚙️ 环境变量配置
使用 skyvern init llm 命令快速配置 LLM 提供商,或手动设置 LLM_KEY 和 SECONDARY_LLM_KEY 环境变量。
高级功能
自定义浏览器
使用自己的 Chrome 浏览器,保留 Cookie 和登录状态,支持 CDP 连接。
Schema 数据提取
定义 JSON Schema 获取结构化输出,完美适配数据管道。
工作流编排
支持循环、条件、验证、文件解析、发送邮件、HTTP 请求、自定义代码等。
密码管理器集成
支持 Bitwarden,未来将支持 1Password 和 LastPass。
代码示例
基础任务运行
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today"
)
print(task)
带数据提取的任务
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today",
data_extraction_schema={
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the top post"
},
"url": {
"type": "string",
"description": "The URL of the top post"
},
"points": {
"type": "integer",
"description": "Number of points the post has received"
}
}
}
)
print(task)