综合介绍
Skyvern 是一个利用大语言模型(LLM)和计算机视觉技术来自动化浏览器工作流的工具。它通过提供一个简单的API端点,能够替代那些脆弱或不可靠的自动化解决方案,从而高效地自动化大量网站上的手动操作。Skyvern 可以在从未见过的网站上操作,自动将视觉元素映射到完成工作流程所需的动作,无需任何定制代码。
Skyvern有点像包含视觉能力的BabyAGI 和 AutoGPT。由多Agent完全自动化的根据任务目标思考执行过程并采取相应行动。
Skyvern 功能列表
- 自动化浏览器工作流:通过LLM和计算机视觉技术,自动化处理浏览器中的各种任务。
- API端点:提供简单的API接口,方便集成和调用。
- 无需定制代码:无需为每个网站编写定制脚本,适应性强。
- 抗网页布局变化:不依赖于固定的XPath或选择器,能够应对网页布局的变化。
- 大规模应用:能够将单一工作流应用于多个网站。
- 智能交互:利用LLM进行推理,处理复杂的交互场景。
使用帮助
安装流程
- 环境准备:
- 确保已安装 Python 3.11 及以上版本。
- 安装 Poetry 依赖管理工具。
- 安装 PostgreSQL 数据库。
- 安装 Node.js 环境。
- 支持Docker一键部署
- 克隆源码:
git clone https://github.com/skyvern-ai/skyvern.git cd skyvern
- 安装依赖:
./setup.sh
- 配置环境变量:
- 修改
.env
文件,填写所需的API密钥和配置参数。
- 修改
- 启动服务:
docker-compose up -d
可视化任务
如何理解 Skyvern 显示的信息
结果可视化
Skyvern 配有一个可视化工具,帮助您了解任务的执行情况。首先,导航到任务历史页面并点击任意任务查看。
操作
Skyvern 执行的每个操作都可以在操作查看器中查看,并且在操作执行后会附带屏幕状态的截图。
录制
每个 Skyvern 任务都包含整个操作过程(端到端)的录制。要查看录制内容,点击录制选项卡。
任务参数
任务参数是您提供给 Skyvern 的输入信息,其中包括 URL、提取规则以及任何其他相关信息。
诊断日志
诊断选项卡包含 Skyvern 用于处理的信息,包括带注释的截图、操作截图、元素树、提示、操作列表、页面 HTML 以及原始大语言模型(LLM)请求。
工作流
工作流 — 将多个任务链接在一起
工作流表示将多个数据块链接在一起。想象一下连续调用多个任务、执行条件逻辑、将数据提取到 CSV 等。所有这些想法都将在我们的工作流程功能中得到支持。
我们所有的工作流都以 YAML 格式定义,但新版提供了图形化界面,允许将多个组件链接在一起以生成一些定义的输出。
支持的模块
- TaskBlock: The magic block. Skyvern navigates through the websites to take actions and/or extract information.
- ForLoopBlock
- CodeBlock
- TextPromptBlock
- DownloadToS3Block
- UploadToS3Block
- SendEmailBlock
- FileParserBlock
任务块输入项
- URL (通常必填): Skyvern Agent 的起始点,理想情况下是您希望自动化的目标网站。
- 在工作流程界面中,如果此输入留空,将会从前一个节点停止的地方继续。导航目标的目的是设置或重置代理的起始点。
- 如果您在第一个任务块中登录了某个站点,您可能希望在第二个块中留空 URL,以便在登录后继续执行
- 导航目标 (通常必填): 详细说明 Skyvern 的导航位置和执行的操作。明确的导航目标应该是一个单一目标,并分解为步骤。避免提供多个目标。您需要使用“COMPLETE”指定目标完成,或使用“TERMINATE”放弃目标
- 导航目标不用于加载 URL。在此字段中要求 Skyvern “访问网站 A”将不会达到预期效果
- 终止操作将导致 Skyvern 解释为何停止导航
- 如果您仅希望 Skyvern 提取数据而不导航到其他位置,则可以省略此字段
- 数据提取目标 (可选): 除了 Skyvern 的导航位置和操作之外,是否有任何 Skyvern 提取并返回的数据?良好的数据提取目标应明确 Skyvern 返回给用户的数据内容
- 请注意,数据提取仅在 Skyvern 完成导航后进行
- 提取信息模式 (可选): 如果您有数据提取目标,某些用户可能需要数据以特定格式进行内部用途。导航负载接受 JSON 格式的规范,用于数据返回的格式化
- 最大步骤数覆盖 (可选): 某些用户希望通过任务的步骤数限制成本
- 最大重试次数 (可选): 在某步骤失败时允许的重试次数
- 下载完成即完成 (可选): 允许 Skyvern 在文件下载后完成任务
- 文件后缀 (可选): 附加在下载文件上的标识符
- TOTP URL 和 TOTP 标识符 (可选): 如果您有内部系统可以存储 2FA 的 TOTP 代码,此 URL 调用该存储空间。标识符使代码与任务关联起来,这在您同时运行多个任务时非常重要。如果您希望在工作流中设置 2FA 获取功能, 请联系我们。
- 参数 (可选): 参数是指定运行的自定义占位符。它们可以是工作流参数,通过 API 调用传入,或从上一个任务块中提取的输出参数。如果指定,这些参数将被 Skyvern 用来辅助导航、填写表单或进一步影响网站上的操作。
任务API使用流程(示例)
- 创建任务:
- 通过API端点创建任务,指定目标URL和操作目标。
- 示例请求:
{ "url": "https://example.com", "navigation_goal": "填写表单并提交", "data_extraction_goal": "提取提交后的确认信息" }
- 监控任务:
- 使用Skyvern提供的实时监控功能,查看任务执行情况。
- 通过浏览器访问
http://localhost:8080
查看实时操作。
- 数据提取:
- 指定数据提取模式和格式,Skyvern会自动提取并返回数据。
- 示例请求:
{ "url": "https://example.com/data", "data_extraction_schema": { "name": "string", "email": "string", "phone": "string" } }
- 文件下载:
- 指定文件下载目标,Skyvern会自动下载文件并提供下载链接。
- 示例请求:
{ "url": "https://example.com/files", "file_download_goal": "下载所有PDF文件" }
常见问题
- 如何处理身份验证? Skyvern 支持多种身份验证方式,包括密码管理器集成和多因素认证(2FA)。在创建任务时,可以通过
navigation_payload
提供身份验证信息。 - 如何处理复杂的多步骤工作流? Skyvern 支持将多个任务串联成工作流,通过API端点依次执行各个任务,完成复杂的操作流程。