当前位置: 首页 > news >正文

Skyvern:用 AI+视觉驱动浏览器自动化

Skyvern:用 AI+视觉驱动浏览器自动化

    • 一、前言
    • 二、项目概览
      • 2.1 Skyvern 项目简介
      • 2.2 代码结构与模块划分
    • 三、环境搭建与快速上手
      • 3.1 环境准备
        • 3.1.1 系统与依赖
        • 3.1.2 克隆项目
        • 3.1.3 安装 Python 依赖
        • 3.1.4 配置环境变量
        • 3.1.5 启动服务
      • 3.2 验证安装
    • 四、核心功能与实战演练
      • 4.1 LLM+CV 自动化原理
      • 4.2 典型用例实操
        • 4.2.1 自动化登录流程
        • 4.2.2 复杂表单自动填写
        • 4.2.3 数据采集与爬取
      • 4.3 工作流编排与调试
    • 五、进阶玩法与二次开发
      • 5.1 自定义集成与插件开发
        • 5.1.1 新增 LLM 支持
        • 5.1.2 集成自定义动作
      • 5.2 与 CI/CD、测试平台集成
        • 5.2.1 API 调用示例
      • 5.3 典型应用场景
    • 六、最佳实践与常见问题
      • 6.1 提高自动化稳定性的建议
      • 6.2 常见问题解答
    • 七、结语

一、前言

  • Skyvern 是一个开源的自动化平台,结合了 LLM 与计算机视觉,能够像人类一样理解和操作网页。它不仅能自动化常规的表单填写、按钮点击,还能识别复杂的页面结构、处理动态内容,甚至支持多步工作流的自动化执行。
  • 本文将从项目架构、环境搭建、核心功能、实战案例、二次开发等多个维度,带你深入理解并高效上手 Skyvern。

二、项目概览

2.1 Skyvern 项目简介

在这里插入图片描述

Skyvern 由 Skyvern-AI 团队开源,主打“用 LLM+CV 自动化浏览器操作”,支持多种主流大模型(如 OpenAI、Gemini、Novita 等),并可通过 API 进行扩展。其核心亮点包括:

  • LLM 驱动:通过自然语言理解页面内容和用户意图,自动生成操作序列。
  • 计算机视觉:识别页面元素、处理复杂布局,突破传统 DOM 定位的局限。
  • 多模型兼容:支持 OpenAI、Gemini、Novita 等主流模型,灵活切换。
  • 工作流编排:支持多步任务链式执行,适合复杂业务流程自动化。
  • 可视化与可扩展性:提供 Streamlit/React UI,便于任务管理和二次开发。

2.2 代码结构与模块划分

根据官方仓库结构,Skyvern 主要包含以下核心目录:

  • skyvern/:后端主逻辑,包含 LLM 调用、CV 处理、任务编排等。
  • skyvern-frontend/:前端 UI,支持任务配置、运行监控、结果展示。
  • integrations/:第三方集成模块,如与 Playwright、Selenium 等的对接。
  • evaluation/:评测与基准测试相关代码。
  • scripts/:常用脚本,如环境初始化、数据处理等。
  • .streamlit/:Streamlit UI 配置。
  • alembic/:数据库迁移相关。

三、环境搭建与快速上手

3.1 环境准备

3.1.1 系统与依赖

Skyvern 推荐在 Linux/MacOS 环境下运行,Windows 亦可通过 WSL 兼容。主要依赖包括:

  • Python 3.9+
  • Node.js(用于前端构建)
  • Docker(可选,便于一键部署)
  • Chrome/Chromium 浏览器(自动化驱动)
3.1.2 克隆项目
git clone https://github.com/skyvern-ai/skyvern.git
cd skyvern
3.1.3 安装 Python 依赖

建议使用虚拟环境:

python3 -m venv venv
source venv/bin/activate
pip install -U pip
pip install -r requirements.txt
3.1.4 配置环境变量

复制并编辑 .env.example

cp .env.example .env

根据你的 LLM 服务(如 OpenAI、Gemini、Novita)填写对应的 API Key。例如:

OPENAI_COMPATIBLE_MODEL_NAME=gpt-3.5-turbo
OPENAI_COMPATIBLE_API_KEY=sk-xxxxxx
OPENAI_COMPATIBLE_API_BASE=https://api.openai.com/v1
3.1.5 启动服务
# 启动后端
python -m skyvern# 启动前端(可选)
cd skyvern-frontend
npm install
npm run dev

或使用 Docker 一键启动:

docker-compose up --build

3.2 验证安装

访问本地 UI(如 http://localhost:8501 或 http://localhost:3000),应能看到 Skyvern 的任务管理界面。


四、核心功能与实战演练

4.1 LLM+CV 自动化原理

Skyvern 的核心在于将 LLM 的自然语言理解能力与计算机视觉的元素识别能力结合,实现“像人一样”操作网页。其基本流程如下:

  1. 页面分析:通过浏览器截图、DOM 抓取等方式,获取页面结构与视觉信息。
  2. 意图解析:LLM 解析用户输入的自然语言指令,生成操作意图。
  3. 元素定位:结合 CV 模型和 DOM 信息,精准定位目标元素。
  4. 动作执行:通过 Playwright/Selenium 等驱动,完成点击、输入、滚动等操作。
  5. 多步编排:支持链式任务,自动处理页面跳转、弹窗等复杂场景。

4.2 典型用例实操

4.2.1 自动化登录流程

以自动登录 GitHub 为例,Skyvern 的任务配置如下:

steps:- description: "打开 GitHub 登录页"action: "navigate"url: "https://github.com/login"- description: "输入用户名"action: "type"selector: "input[name='login']"value: "your_username"- description: "输入密码"action: "type"selector: "input[name='password']"value: "your_password"- description: "点击登录按钮"action: "click"selector: "input[type='submit']"

你也可以直接用自然语言描述任务,Skyvern 会自动解析:

“打开 GitHub 登录页,输入用户名和密码,点击登录。”

4.2.2 复杂表单自动填写

对于多级表单、动态加载的页面,Skyvern 能自动识别表单结构,逐步填写并提交。例如:

“在某招聘网站注册账号,填写所有必填项,上传简历,提交注册。”

Skyvern 会自动处理文件上传、验证码识别(如集成第三方打码服务)、多步跳转等。

4.2.3 数据采集与爬取

Skyvern 支持自动化采集网页数据,并可将结果导出为 CSV/JSON。例如:

“抓取某电商网站前 10 页的商品名称和价格,保存为 CSV。”

Skyvern 会自动翻页、提取数据,并生成结构化文件。

4.3 工作流编排与调试

Skyvern 支持多步任务链式编排,可视化管理每一步的输入输出。你可以在 UI 中拖拽、编辑每个步骤,实时查看执行结果和日志,便于调试和优化。


五、进阶玩法与二次开发

5.1 自定义集成与插件开发

Skyvern 设计了灵活的插件机制,便于集成自定义 LLM、CV 模型或第三方服务。例如,你可以接入自有的 OCR 服务、验证码识别 API,或扩展支持新的浏览器驱动。

5.1.1 新增 LLM 支持

.env 中配置新的 LLM 接口参数,并在 skyvern/llm/ 目录下实现对应的适配器即可。

5.1.2 集成自定义动作

skyvern/actions/ 目录下新增自定义动作(如特殊的文件上传、复杂交互等),并在任务配置中调用。

5.2 与 CI/CD、测试平台集成

Skyvern 支持通过 API 触发任务,便于与 Jenkins、GitHub Actions 等 CI/CD 工具集成,实现自动化回归测试、冒烟测试等。

5.2.1 API 调用示例
curl -X POST http://localhost:8000/api/run \-H "Content-Type: application/json" \-d '{"steps": [...]}'

5.3 典型应用场景

  • AI 测试工程师:自动化 UI 测试、回归测试、兼容性测试。
  • RPA 工程师:自动化办公流程、数据录入、报表生成。
  • 数据分析师:自动化数据采集、网页爬虫。
  • 产品经理/运营:无需编程即可配置自动化任务,提高效率。

六、最佳实践与常见问题

6.1 提高自动化稳定性的建议

  • 优先使用视觉+DOM双重定位,提升元素识别准确率。
  • 合理设置等待时间,处理异步加载和动画。
  • 对于验证码、滑块等反爬机制,集成第三方识别服务或人工干预。
  • 利用 Skyvern 的“调试模式”,逐步执行并观察每一步结果。

6.2 常见问题解答

Q1:如何处理动态页面元素?
A:Skyvern 结合 CV 和 DOM 信息,能自动适应元素位置变化。必要时可通过自定义 selector 或视觉锚点增强定位。

Q2:如何扩展支持新的 LLM 或 CV 模型?
A:参考 skyvern/llm/skyvern/cv/ 目录,按接口规范实现适配器,并在配置文件中切换即可。

Q3:如何关闭数据上报/隐私保护?
A:设置环境变量 SKYVERN_TELEMETRY=false 即可关闭遥测。


七、结语

Skyvern 以 LLM+CV 为核心,极大提升了浏览器自动化的智能化和易用性。无论你是 AI 测试工程师、RPA 开发者,还是自动化爱好者,都能在 Skyvern 中找到高效、灵活的解决方案。


参考链接:

  • Skyvern GitHub 仓库
  • Skyvern 官网

相关文章:

  • Flink 实时数据一致性与 Exactly-Once 语义保障实战
  • 安装或更新 CUDA Toolkit - Ubuntu - RuntimeError
  • 翻转数位题目解释和代码
  • Pandas:数据处理与分析
  • 金融学知识笔记
  • 学习适应对智能软件对对象的属性进行表征、计算的影响
  • 深入了解 ArkTS:HarmonyOS 开发的关键语言与应用实践
  • 什么是向量数据库?向量数据库和关系数据库有什么区别?
  • DAMA语境关系图汇总及考前须知
  • Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析
  • AI安全之对抗样本攻击---FGSM实战脚本解析
  • 线性表-顺序表(Sequential List)
  • SpringMVC-执行流程
  • QB/T 1649-2024 聚苯乙烯泡沫塑料包装材料检测
  • C++(4):const关键字
  • 关于甲骨文(oracle cloud)丢失MFA的解决方案
  • Java 24新特性深度解析:从优化技巧到高手进阶指南
  • 【STM32 学习笔记】I2C通信协议
  • 健康养生:开启活力生活的密码
  • 养生:开启健康生活的密钥
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 印度军方否认S-400防空系统被摧毁
  • “毛茸茸”的画,诗意、温暖又治愈
  • 中俄弘扬正确二战史观:缅怀历史,重拾初心,阻止悲剧重演
  • 国家主席习近平在莫斯科出席红场阅兵式
  • 屈晓华履新四川省社科联党组书记,此前担任省国动办主任