欣淇
发布于 2026-05-16 / 0 阅读
0
0

🐉 Skyvern:21.6k Stars 的 AI 浏览器自动化,用 Computer Vision 看懂网页,再也不怕样式变了 / AI-Powered Browser Automation with LLM + Computer Vision

项目地址: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


评论