项目地址:https://github.com/Skyvern-AI/skyvern | ⭐ 21,628 Stars | 🛠 Python/TypeScript | 👤 Skyvern-AI
🐉 Skyvern:21.6k Stars 的 AI 浏览器自动化,用 Computer Vision 看懂网页,再也不怕样式变了 / AI-Powered Browser Automation with LLM + Computer Vision
老实说,写过浏览器自动化脚本的都懂——XPath 换了个 class 名就挂,CSS 选择器稍微改个层级就废了。传统 Playwright/Puppeteer 方案在电商网站上维护 selector 的时间比手动操作还长。
Skyvern 的思路完全不同:用 LLM + Computer Vision 理解网页内容,而不是死磕 DOM 结构。它把自己伪装成 Playwright 的 AI 扩展,给你加了四个金手指——act / extract / validate / prompt,全用自然语言操控浏览器。实测 WebBench 基准达到 64.4% 准确率,WRITE 任务(填表单、登录、下载文件)表现最佳。
一、一条命令跑起来
pip install skyvern
skyvern quickstart
打开 http://localhost:8080 就能看到 Web UI。Docker 也行:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
cp .env.example .env
# 编辑 .env 填上 LLM API Key
docker compose up -d
二、核心 API:四个 AI 命令
Skyvern 在 Playwright 的 page 对象上加了四个 AI 方法:
from skyvern import Skyvern
# 最简单的用法——一句话跑任务
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today"
)
print(task)
page.act — 用自然语言执行操作:
await page.act("Click the login button and wait for the dashboard to load")
page.extract — 按 schema 提取结构化数据:
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
page.validate — 验证页面状态,返回 bool:
is_logged_in = await page.validate("Check if user is logged in")
page.prompt — 直接问 LLM 当前页面的问题:
summary = await page.prompt("Summarize what's on this page")
三、混用传统 + AI 操作
传统 selector 和 AI 自然语言可以混写:
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
await page.goto("https://example.com")
await page.click("#login-button") # 传统 Playwright
await page.agent.login("skyvern", credential_id="cred_123") # AI 登录
await page.click(prompt="Add first item to cart") # AI 辅助点击
await page.agent.run_task("Complete checkout with: John Snow, 12345")
TypeScript 一样用:
import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" });
const browser = await skyvern.launchCloudBrowser();
const page = await browser.getWorkingPage();
await page.goto("https://example.com");
await page.click({ prompt: "Add first item to cart" });
await page.agent.runTask("Complete checkout");
await browser.close();
四、接管你自己的 Chrome(最骚的)
想让 Skyvern 用你已有的登录态、cookie、扩展?接上本地 Chrome:
# 打开 chrome://inspect/#remote-debugging → 点 Enable
skyvern init browser # 自动配置
skyvern = Skyvern(
base_url="http://localhost:8000",
api_key="YOUR_API_KEY",
browser_address="http://127.0.0.1:9222", # 本地 Chrome 调试端口
)
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
)
踩坑
pip install skyvern==1.0.31 有 SQLite 初始化 bug。遇到 table organizations already exists 的话:
rm ~/.skyvern/data.db
pip install --upgrade skyvern
skyvern quickstart
总结 / TL;DR
- 不再写 XPath/CSS 选择器 — LLM + Vision 理解页面,布局变了也不怕
pip install skyvern一条命令跑起 — 自带 Web UI,零配置- 四个 AI Page API — act / extract / validate / prompt,自然语言控制浏览器
- 支持 Workflow 引擎 — 多步骤任务、循环、文件下载、2FA、MCP 整合
- 可接管你本地 Chrome — cookie、登录态、扩展全带走
Skyvern #BrowserAutomation #AI #ComputerVision #Playwright #OpenSource #RPA