当前位置: 首页 > 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 官网
http://www.xdnf.cn/news/371881.html

相关文章:

  • FreeTex v0.2.0:功能升级/支持Mac
  • Ubuntu 22.04(WSL2)使用 Docker 安装 Zipkin 和 Skywalking
  • 【含文档+PPT+源码】基于微信小程序的社区便民防诈宣传系统设计与实现
  • 基本句子结构
  • 前端取经路——现代API探索:沙僧的通灵法术
  • 每天五分钟机器学习:KTT条件
  • 在 Excel 中有效筛选重复元素
  • Stable Diffusion XL 文生图
  • 【金仓数据库征文】金融行业中的国产化数据库替代应用实践
  • C语言的中断 vs Java/Kotlin的异常:底层机制与高级抽象的对比
  • 365打卡第R8周: RNN实现阿尔茨海默病诊断
  • RAG 2.0 深入解读
  • 内存、磁盘、CPU区别,Hadoop/Spark与哪个联系密切
  • 海盗王64位服务端+32位客户端3.0版本
  • k8s删除pv和pvc后,vg存储没释放分析
  • Leetcode (力扣)做题记录 hot100(543,102,35,101)
  • AI:PS软件:ps软件中如何使用人工智能(AI)?
  • SierraNet协议分析使用指导[RDMA]| 如何设置 NVMe QP 端口以进行正确解码
  • 画立方体软件开发笔记 js three 投影 参数建模 旋转相机 @tarikjabiri/dxf导出dxf
  • 代码随想录第41天:图论2(岛屿系列)
  • Git简介和发展
  • 代码复用与分层
  • 双目视觉系统中,极线校正(Epipolar Rectification)与单应性矩阵/多平面单应性模型
  • 通过推测搜索加速大型语言模型推理 (SpecSearch) 论文总结
  • 零基础入门MySQL:10分钟搞定数据库基本操作
  • tryhackme——Enumerating Active Directory
  • 【Linux】冯诺依曼体系结构和操作系统的理解
  • Webug4.0通关笔记25- 第30关SSRF
  • JS较底层的用法,几类简单介绍
  • 计算机网络基础科普