name: skyvern-browser-automation
description: “AI-powered browser automation — navigate sites, fill forms, extract structured data, log in with stored credentials, and build reusable workflows.”
category: browser-automation
risk: safe
source: community
source_repo: Skyvern-AI/skyvern
source_type: official
date_added: “2026-04-23”
author: mark1ian
tags: [browser-automation, mcp, web-scraping, form-filling, ai-agents, workflow-automation]
tools: [claude, cursor, gemini, codex]
license: “AGPL-3.0”
license_source: “https://github.com/Skyvern-AI/skyvern/blob/main/LICENSE”
Skyvern 浏览器自动化 – CLI 判定流程
Skyvern 使用 AI 来导航网站并与网站交互。下面的每条命令都是一个可运行的skyvern <command>调用。
何时使用此技能
- 当您需要 AI 辅助的浏览器自动化进行导航、提取、表单填写、登录流程或可复用的网站工作流时使用。
- 当确定性选择器不可用,而 Skyvern 的视觉/无障碍推理可以识别页面控件时使用。
- 当一次性浏览器任务应变成具有运行历史和验证的可重复工作流时使用。
第 1 步:对任务进行分类(始终先做这一步)
| 分类 | 信号 | CLI 命令 | 成本 | 结果 |
|---|---|---|---|---|
| 快速检查(是/否) | “is the user logged in?”(用户是否已登录?) | skyvern browser validate | 1 次 LLM + 截图 | 轻量级验证(最多 2 步),返回布尔值。最便宜的 AI 选项。 |
| 快速检查 | “what does the page show?”(页面显示什么?) | skyvern browser extract | 1 次 LLM + 截图 | 专门的提取 LLM + 模式验证 + 缓存。 |
| 单个操作(已知目标) | “click #submit”(点击 #submit) | skyvern browser click/type | 0 次 LLM | 确定性 Playwright。无 AI。最快。 |
| 单个操作(未知目标) | “click the submit button”(点击提交按钮) | skyvern browser act | 2-3 次 LLM,无截图 | 推理中无截图。经济型无障碍树。对于视觉目标,使用混合模式(选择器 + 意图)。 |
| 同页多步骤 | “fill the form and submit”(填写表单并提交) | skyvern browser act或原语链 | 2-3 次 LLM 或 0 次 LLM | 标签清晰时使用act。知道选择器时直接使用 click/type/select。 |
| 一次性自主试验 | “try this once”、“see if this works”(试一次、看看是否可行) | skyvern browser run-task | 较高 | 用于探索的一次性自主代理。不要用于重复或多页生产自动化。 |
| 多页或可复用自动化 | “navigate a multi-page wizard”、“set this up”、“automate this weekly”(导航多页向导、设置这个、每周自动化) | skyvern workflow create+run | N 次 LLM + 截图 | 构建一个每步一个块的工作流。每个块都有视觉推理、验证和可复用的运行历史。 |
MCP 说明:如果您使用的是 Skyvern MCP 而非 CLI,对于同页多步骤 UI 工作,优先使用observe + execute。CLI 不直接暴露这对组合。
第 2 步:应用这些决策规则
- 如果提示包含选择器、id、XPath 或精确字段目标,使用浏览器原语——而非
act。 - 如果只需要是/否答案,使用
validate——而非extract或act。 - 如果工作停留在单页上且标签清晰,使用
act或原语链。 - 如果用户说"试一次"、“看看是否可行”,或明确想要一次性的探索性试验,使用
run-task。 - 如果任务跨多个页面且旨在可复用、定时、可重复,或明确要"设置"为自动化,使用
workflow create。 - 绝不输入密码。始终使用
skyvern browser login的已存储凭据。
第 3 步:创建会话
每条浏览器命令都需要一个会话。先创建一个:
# Cloud session (default -- works for public URLs)skyvern browser session create--timeout30# Local session (for localhost URLs or self-hosted mode)skyvern browser session create--local--timeout30# Connect to existing browser via CDPskyvern browser session connect--cdp"ws://localhost:9222"会话状态在命令之间保持。session create之后,后续命令自动附加。
使用--session pbs_...覆盖。完成后关闭:skyvern browser session close。
第 4 步:按分类执行
快速检查(是/否)
skyvern browser validate--prompt"Is the user logged in? Look for a dashboard or avatar."返回 true/false。最便宜的 AI 选项——布尔检查时优先于 extract 或 act。
快速检查
skyvern browser extract\--prompt"Extract all product names and prices"\--schema'{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"string"}}}}}}'使用截图 + 专门的提取 LLM。优于截图+读取,因为 Skyvern 的 LLM 会解释页面。
单个操作(已知目标)
skyvern browser click--selector"#submit-btn"skyvern browsertype--text"user@co.com"--selector"#email"skyvern browserselect--value"US"--intent"the country dropdown"确定性。无 AI。三种定位模式:
- 意图:
--intent "the Submit button"(AI 查找元素) - 选择器:
--selector "#submit-btn"(CSS/XPath,确定性) - 混合:两者(选择器缩小范围,AI 确认)
单个操作(未知目标)
skyvern browser act--prompt"Click the Sign In button"skyvern browser act--prompt"Close the cookie banner, then click Sign In"警告:act 在其 LLM 推理中没有截图。它使用经济型无障碍树。
适用于标签清晰的元素。对于视觉复杂的元素,使用 MCP observe+click 或混合模式。
同页多步骤
skyvern browser act--prompt"Fill the shipping form and click Continue"当字段和按钮标签清晰且流程停留在单页时,使用act。
如果需要更精确的控制,将工作拆分为click、type、select、press-key和wait。
一次性自主试验
skyvern browser run-task\--url"https://example.com"\--prompt"Check whether the checkout flow works end to end and extract the confirmation number"使用run-task来验证可行性或进行一次性探索。如果任务变得足够重要,
需要重新运行、调试或共享,请将其转换为工作流。
多页或可复用自动化——构建一个每步一个块的工作流
skyvern workflow create--definition@checkout-workflow.yaml skyvern workflow run--idwpid_123--waitskyvern workflow status --run-id wr_789每个导航块都使用视觉推理 + 验证运行。将复杂流程拆分为
多个块(每页/每步一个)。首次运行使用 AI;后续运行重放缓存的脚本。
重复/生产
skyvern workflow create--definition@workflow.yaml skyvern workflow run--idwpid_123--params'{"email":"user@co.com"}'skyvern workflow status --run-id wr_789拆分为每步一个块。操作使用navigation块,数据使用extraction。
首次运行使用 AI;后续运行重放缓存的脚本(快 10-100 倍)。
设置--run-with agent强制 AI 模式以进行调试。
第 5 步:验证
在页面变更操作之后始终验证:
skyvern browser screenshot# visual checkskyvern browser validate--prompt"Was the form submitted successfully?"# boolean assertionskyvern browser evaluate--expression"document.title"# JS state check第 6 步:错误恢复
| 问题 | 修复 |
|---|---|
| 操作点击了错误的元素 | 向提示中添加上下文。使用混合模式(选择器 + 意图)。 |
| 提取返回空 | 等待内容。放宽必填字段。先检查行数。 |
| 登录通过但下一步失败 | 确保同一会话。添加登录后验证检查。 |
| 未找到元素 | 添加等待:skyvern browser wait --selector "#el" --state visible |
| 提示过载 | 拆分为更小的目标——每条命令一个意图。 |
凭据
绝不通过skyvern browser type或act输入密码。始终使用已存储的凭据:
skyvern credentialsadd--name"my-login"--typepassword--username"user@co.com"skyvern credential list# find the credential IDskyvern browser login--url"https://login.example.com"--credential-id cred_123类型:password、credit_card、secret。还支持 bitwarden、1password 和 azure_vault 提供程序。
工作流快速参考
skyvern workflow create--definition@workflow.yaml# createskyvern workflow run--idwpid_123--wait# run and waitskyvern workflow status --run-id wr_789# check statusskyvern workflow list--search"invoice"# find workflowsskyvern block schema--typenavigation# discover block typesskyvern block validate --block-json @block.json# validate before creating引擎:已知路径 = 1.0(默认)。动态规划 = 2.0。有疑问时拆分为多个 1.0 块。
状态生命周期:created -> queued -> running -> completed | failed | canceled | terminated | timed_out
常见模式
登录流程:
skyvern credential list# find credential IDskyvern browser session create skyvern browser navigate--url"https://login.example.com"skyvern browser login--url"https://login.example.com"--credential-id cred_123 skyvern browser validate--prompt"Is the user logged in?"skyvern browser screenshot分页循环:
skyvern browser extract--prompt"Extract all rows"skyvern browser validate--prompt"Is there a Next button that is not disabled?"# If true:skyvern browser act--prompt"Click the Next page button"# Repeat extraction. Stop when: no next button, duplicate first row, or max page limit.调试:
skyvern browser screenshot# visual stateskyvern browser evaluate--expression"document.title"skyvern browser evaluate--expression"document.querySelectorAll('table tr').length"局限性
- 不要使用 Skyvern 绕过站点访问控制、速率限制、同意门槛或禁止自动化的条款。
- 浏览器自动化会改变远程状态;在提交表单、购买、删除或发送消息之前,确认用户意图。
- 对于稳定的生产流程,优先使用确定性选择器;AI 操作可能误读无标签或视觉模糊的控件。
- 仅将凭据存储在支持的凭据库中,绝不通过
type或act直接输入密码。
代理模式
所有命令都接受--json以进行结构化输出。设置SKYVERN_NON_INTERACTIVE=1可防止提示。
使用skyvern capabilities --json进行完整的命令发现。参见 references/agent-mode.md。
深度参考
| 参考 | 内容 |
|---|---|
references/prompt-writing.md | 提示模板和反模式 |
references/engines.md | 何时使用任务与工作流 |
references/schemas.md | 用于提取的 JSON 模式模式 |
references/pagination.md | 分页策略和保护措施 |
references/block-types.md | 带示例的工作流块类型详情 |
references/parameters.md | 参数设计和变量使用 |
references/ai-actions.md | AI 操作模式和示例 |
references/precision-actions.md | 仅意图、仅选择器、混合模式 |
references/credentials.md | 凭据命名、生命周期、安全性 |
references/sessions.md | 会话复用和新鲜度决策 |
references/common-failures.md | 带修复的失败模式目录 |
references/screenshots.md | 截图主导的调试工作流 |
references/status-lifecycle.md | 运行状态和指导 |
references/rerun-playbook.md | 重新运行流程和比较 |
references/complex-inputs.md | 日期选择器、上传、下拉框 |
references/tool-map.md | 按结果分类的完整工具清单 |
references/cli-parity.md | CLI/MCP 映射和代理感知功能 |
references/quick-start-patterns.md | 快速入门示例、常见模式和工作流模板 |