Skyvern:基于LLM和计算机视觉的浏览器自动化平台深度解析

概要

Skyvern 是一个革命性的开源浏览器自动化平台,它通过结合大型语言模型(LLMs)和计算机视觉技术,实现了对基于浏览器工作流的智能自动化。该项目采用 AGPL-3.0 许可证,核心代码完全开源,同时提供商业云服务版本。Skyvern 的创新之处在于它摒弃了传统的基于 DOM 解析和 XPath 的自动化方法,转而利用视觉 LLMs 来理解和交互网站,从而实现了对从未见过网站的自动化操作能力,并且对网站布局变化具有极强的鲁棒性。

该平台的设计灵感来源于 Task-Driven 自主代理架构,类似于 BabyAGI 和 AutoGPT 的设计理念,但增加了与网站交互的关键能力。Skyvern 使用智能代理群来理解网站内容,规划并执行操作序列,能够处理复杂的业务场景,如表格填写、数据提取、文件下载等任务。最新版本支持 400 多个集成,具备原生的 AI 能力,在 WebBench 基准测试中达到了 64.4% 的准确率,在 WRITE 任务(如表单填写、登录、文件下载等)方面表现尤为出色。

整体架构流程

Skyvern 的整体架构采用了现代化的微服务设计和模块化架构,基于 Python 和 TypeScript 技术栈构建。平台的核心架构可以分为以下几个关键层次:

前端展示层:

Skyvern 提供了多套前端界面,包括基于 Streamlit 的传统 UI 和正在开发中的 React 自服务 UI。前端架构支持实时视口流式传输,允许用户实时观察 Skyvern 在浏览器中的操作过程。最新的提交记录显示,平台正在增强前端功能,如 "Add clipboard copy functionality that works over HTTP" 和 "enable code block frontend by default" 等改进。

核心引擎层:

核心引擎基于智能代理架构,采用多代理协作模式。主代理负责整体任务规划,而迷你代理(mini agents)处理具体的交互操作。引擎集成 Playwright 作为浏览器自动化基础,但通过 LLMs 增强了传统自动化能力。架构支持多种浏览器连接方式,包括 CDP(Chrome DevTools Protocol)连接和远程浏览器控制。

AI 集成层:

Skyvern 的 AI 层是其核心创新点,支持多种 LLM 提供商,包括 OpenAI、Anthropic、Azure OpenAI、AWS Bedrock、Gemini、Ollama 等。平台通过统一的接口抽象不同提供商的差异,支持视觉模型和多模态理解。AI 层负责网页内容理解、交互决策、数据提取等智能任务。

工作流引擎层:

工作流引擎支持复杂的任务编排,包括条件判断、循环执行、数据验证等高级功能。引擎支持任务链式执行,允许将多个自动化任务组合成完整的工作流程。最新版本增强了流式处理能力,如 "Workflow Copilot: Use streaming in /chat-post" 的提交所示。

数据持久层:

平台使用 PostgreSQL 作为主要数据库,通过 Alembic 管理数据库迁移。支持 S3 兼容的对象存储用于文件管理,最新提交 "S3 Storage: Use STANDARD tier for small objects" 优化了存储成本。数据层还集成 Bitwarden 用于密码管理,支持安全的凭证存储。

部署和运维层:

Skyvern 提供完整的 Docker 化部署方案,支持 docker-compose 一键部署。平台包含健康检查、监控指标、日志收集等运维功能。支持 Kubernetes 部署,具备企业级的高可用性和可扩展性。

技术名词解释

Skyvern:

平台名称,发音为 "sky-vern",结合了 "sky"(天空,象征智能和高度)和 "govern"(治理、管理),体现了平台对浏览器自动化任务的智能管理能力。

Vision LLMs:

视觉大语言模型,是 Skyvern 的核心技术基础。这些模型不仅能够理解文本内容,还能处理图像信息,使系统能够"看到"网页的视觉呈现并理解其内容结构,而不仅仅依赖 HTML 源码解析。

Task-Driven Autonomous Agent:

任务驱动的自主代理架构,Skyvern 采用的设计范式。这种架构使系统能够根据用户设定的目标自动规划执行路径,而不是依赖预定义的脚本流程。

Playwright:

Microsoft 开发的浏览器自动化库,Skyvern 基于此构建浏览器交互能力。Playwright 支持多种浏览器,提供可靠的自动化操作 API。

WebBench Benchmark:

浏览器自动化性能基准测试,Skyvern 在其中达到 64.4% 的准确率,证明了其在复杂网页交互任务中的先进性能。

CDP (Chrome DevTools Protocol):

Chrome 开发者工具协议,Skyvern 通过此协议与浏览器实例通信,实现精细的浏览器控制和数据交换。

MCP (Model Context Protocol):

模型上下文协议,Skyvern 支持的标准协议,允许集成任何支持该协议的 LLM 服务。

WRITE Tasks:

在自动化分类中专指需要用户输入和交互的任务类型,如表单填写、登录操作等,Skyvern 在此类任务中表现最优。

技术细节

安装和部署配置:

Skyvern 支持多种安装方式,核心安装命令为 pip install skyvern,快速启动命令 skyvern quickstart自动完成数据库设置和迁移。Docker 部署通过 docker-compose up -d实现,支持生产环境部署。环境配置通过 .env文件管理,支持 LLM 提供商密钥配置、数据库连接等参数。

SDK 集成细节:

平台提供 Python 和 TypeScript 双语言 SDK。Python SDK 提供直观的 API 设计,支持同步和异步操作。TypeScript SDK 保持类似的接口设计,确保多语言体验一致性。SDK 集成示例显示如何混合使用传统 Playwright 操作和 AI 增强操作:

复制代码
from skyvern import Skyvern
skyvern = Skyvern()
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()

# AI 增强操作
await page.click(prompt="Click on the Submit button")
await page.fill(prompt="Enter email address", value="user@example.com")

# 传统 Playwright 操作
await page.goto("https://example.com/dashboard")
await page.click("#download-button")

LLM 集成配置:

Skyvern 支持丰富的 LLM 提供商配置。OpenAI 集成需要设置 OPENAI_API_KEY和选择模型键如 OPENAI_GPT4O。Anthropic 配置需要 ANTHROPIC_API_KEY,支持 Claude 3.5 Sonnet 等模型。Azure OpenAI 需要配置部署名称、API 基础地址等参数。Ollama 集成支持本地模型部署,需设置 OLLAMA_SERVER_URL和模型名称。

认证和安全特性:

平台支持多种认证机制,包括双因素认证(2FA),支持 TOTP、邮件和短信验证。集成密码管理器,支持安全的凭证存储和管理。最新安全改进包括 "Replace insecure Node.js installation with package verification" 等提交,体现了对安全性的重视。

工作流设计细节:

工作流支持复杂逻辑结构,包括条件判断、循环执行、数据验证等。每个工作流由多个任务组成,任务间可以传递数据。支持数据提取模式,可以定义 JSON Schema 来规范输出数据结构。文件处理能力支持自动上传到块存储,提供统一的文件管理接口。

性能优化技术:

平台采用多种性能优化策略,包括智能上下文管理、操作缓存、流式处理等。最新提交 "Workflow Copilot: Use streaming in /chat-post" 引入了流式处理优化响应速度。浏览器实例管理支持连接复用和资源优化。

监控和调试支持:

Skyvern 提供完整的调试支持,包括实时视口流式传输、操作日志记录、性能监控等。支持交互式调试模式,允许用户逐步执行和干预自动化过程。集成 LLM 可观测性工具,支持提示工程优化和性能分析。

集成生态系统:

平台支持丰富的第三方集成,包括 Zapier、Make.com、N8N 等工作流平台集成。支持 Langchain 集成,可以作为工具集成到更大的 AI 应用中。企业级集成支持单点登录(SSO)、API 网关等特性。

小结

Skyvern 代表了浏览器自动化技术的重大进步,通过巧妙结合 LLMs 和计算机视觉技术,解决了传统自动化方法的根本局限性。其核心价值在于能够处理未知网站和抵抗布局变化,这使其在真实业务场景中具有显著优势。

从技术架构角度看,Skyvern 展现了现代软件工程的最佳实践:模块化设计、丰富的集成支持、企业级的安全特性。其开源模式结合商业云服务的策略,既促进了社区创新,又确保了项目的可持续发展。

平台在 WebBench 基准测试中的优异表现证明了其技术先进性,特别是在表单填写、数据提取等实际业务场景中的强大能力。对多种 LLM 提供商的支持显示了其技术包容性,而持续的功能增强路线图体现了项目的活力和发展潜力。

Skyvern 的潜在应用场景广泛,包括发票自动化下载、招聘流程自动化、政府网站操作、保险报价获取等真实业务需求。其强大的认证支持和安全特性使其能够处理敏感业务数据,满足企业级应用要求。

随着 AI 技术的不断发展,Skyvern 的技术路线图显示了对未来趋势的准确把握,包括成本优化、UI 现代化、扩展性增强等方向。对于需要处理复杂网页自动化任务的技术团队而言,Skyvern 提供了一个强大而灵活的解决方案,值得深入评估和应用。

相关推荐
IT_陈寒13 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
yumgpkpm26 分钟前
Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册
大数据·人工智能·hive·hadoop·kafka·hbase·cloudera
程序员cxuan28 分钟前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
邓工说电39 分钟前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术41 分钟前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能
出海客42 分钟前
跨境电商多语言客服知识库怎么建:资料结构、检索边界与人工升级
大数据·人工智能
xsd202411181 小时前
从自主导航到视觉读表:一台工业巡检机器人的全栈技术链路拆解
人工智能
袁哥大话安全1 小时前
巡隐WEBSHELL扫描软件
人工智能·安全·web
论文复现现场1 小时前
8卡4090能跑70B吗?Llama-2显存预算、QLoRA与通信瓶颈
人工智能·深度学习·分布式训练·llama·显存·qlora·算家云
酷虎软件1 小时前
如何用AI创作AI歌曲AI音乐
人工智能