Skyvern
官方AI驅動的瀏覽器自動化MCP伺服器 — 透過Claude Code CLI導航網站、填寫表單、提取資料及處理登入
你可以用 Skyvern MCP 做什麼?
-
Run browser tasks from natural language prompts — Use
skyvern.run_taskto navigate websites and complete goals like "Find the top post on HackerNews today." -
Extract structured data with a schema — Pass a
data_extraction_schematoskyvern.run_taskto get consistent JSON output matching your defined properties. -
Control your own Chrome browser — Connect Skyvern to a local Chrome instance via remote debugging to automate sites using your existing cookies and logins.
-
Execute AI-powered page interactions — Use
page.act,page.extract,page.validate, orpage.agent.run_taskto interact with pages using natural language instead of selectors. -
Chain multi-step workflows — Build workflows in the UI that combine browser tasks, data extraction, validation, file downloads, and HTTP requests into a single automated sequence.
文件
🐉 使用 LLM 與電腦視覺自動化基於瀏覽器的工作流程 🐉
Skyvern 使用 LLM 與電腦視覺自動化基於瀏覽器的工作流程。它提供一個與 Playwright 相容的 SDK,在 Playwright 之上加入 AI 功能,以及一個無程式碼的工作流程建構器,幫助技術和非技術使用者自動化任何網站上的手動工作流程,取代脆弱或不可靠的自動化解決方案。
傳統的瀏覽器自動化方法需要為網站編寫自訂腳本,通常依賴 DOM 解析和基於 XPath 的互動,一旦網站版面變更就會失效。
Skyvern 不僅依賴程式碼定義的 XPath 互動,而是依靠視覺 LLM 來學習並與網站互動。
運作方式
Skyvern 的靈感來自 BabyAGI 和 AutoGPT 推廣的任務驅動自主代理設計——並有一個主要優點:我們賦予 Skyvern 使用 Playwright 等瀏覽器自動化程式庫與網站互動的能力。
Skyvern 使用一組代理來理解網站,並規劃和執行其動作:
這種方法有幾個優點:
- Skyvern 可以在從未見過的網站上運作,因為它能夠將視覺元素對應到完成工作流程所需的動作,無需任何自訂程式碼
- Skyvern 能抵抗網站版面變更,因為在嘗試導覽時,我們的系統沒有尋找預先定義的 XPath 或其他選擇器
- Skyvern 能夠採用單一工作流程並將其應用於大量網站,因為它能夠推理完成工作流程所需的互動 詳細的技術報告可以在這裡找到。
展示
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
快速入門
Skyvern Cloud
Skyvern Cloud 是 Skyvern 的託管雲端版本,讓您無需擔心基礎架構即可執行 Skyvern。它允許您並行執行多個 Skyvern 實例,並捆綁了反機器人偵測機制、代理網路和 CAPTCHA 解決器。
如果您想試用,請前往 app.skyvern.com 並建立帳戶。
本機執行(UI + 伺服器)
選擇您偏好的設定方法:
資料庫預設值:
skyvern quickstart和skyvern run server預設使用位於~/.skyvern/data.db的 SQLite 資料庫,因此 pip 路徑無需 Postgres 或 Docker 即可運作。若要改用 Postgres,請傳遞--postgres以使用本機容器,或傳遞--database-string以使用現有資料庫。Docker Compose 一律使用捆綁的 Postgres 服務。
選項 A:pip 安裝(建議用於 Python 管理的本機設定)
所需依賴項:
此外,對於 Windows:
- Rust
- 包含 C++ 開發工具和 Windows SDK 的 VS Code
1. 安裝 Skyvern
pip install "skyvern[all]"
2. 執行 Skyvern
skyvern quickstart
pip 快速入門預設使用 SQLite。對於本機 Postgres 容器,請執行 skyvern quickstart --postgres。
選項 B:Docker Compose
如果您希望所有內容都容器化(Postgres、API、UI),且不想在本機安裝 Python/Node,請使用此選項。
- 安裝 Docker Desktop
- 複製儲存庫:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - 在
.env中設定您的 LLM 提供者(如果缺少,下方的quickstart --docker-compose命令將從.env.example建立它):cp .env.example .env # if not already created # edit .env to add your LLM API key - 啟動所有內容:
docker compose up -d - 開啟 http://localhost:8080
疑難排解
(sqlite3.OperationalError) table organizations already exists — 您遇到了 pip install skyvern==1.0.31 中的已知錯誤。修復方法:
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
如果您仍在使用 1.0.31 且無法升級,請改用 uv 安裝:
uv pip install skyvern
pip install skyvern 因 ResolutionImpossible(litellm / fastmcp)而失敗 — 您在 1.0.31 中遇到了依賴項解析衝突。請升級到 1.0.32+ 或使用 uv:uv pip install skyvern。
SDK
Skyvern 是一個 Playwright 擴充功能,加入了 AI 驅動的瀏覽器自動化。 它為您提供 Playwright 的全部功能以及額外的 AI 能力——使用自然語言提示來與元素互動、擷取資料,並自動化複雜的多步驟工作流程。
安裝:
- Python SDK / 雲端 API:
pip install skyvern - 本機伺服器 + 打包的 UI:
pip install "skyvern[all]"然後執行skyvern quickstart - 本機伺服器 + 打包的 UI 與 Postgres:
pip install "skyvern[all]"然後執行skyvern quickstart --postgres - 用於現有 API 的打包 UI:
pip install "skyvern[ui]"然後執行skyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
AI 驅動的頁面命令
Skyvern 在頁面物件上直接加入了四個核心 AI 命令:
| 命令 | 描述 |
|---|---|
page.act(prompt) | 使用自然語言執行動作(例如,「點擊登入按鈕」) |
page.extract(prompt, schema) | 使用可選的 JSON 結構描述從頁面擷取結構化資料 |
page.validate(prompt) | 驗證頁面狀態,返回 bool(例如,「檢查使用者是否已登入」) |
page.prompt(prompt, schema) | 向 LLM 發送任意提示,並可附帶回應結構描述 |
此外,page.agent 提供了更高階的工作流程命令:
| 命令 | 描述 |
|---|---|
page.agent.run_task(prompt) | 執行複雜的多步驟任務 |
page.agent.login(credential_type, credential_id) | 使用儲存的憑證進行驗證(Skyvern、Bitwarden、1Password) |
page.agent.download_files(prompt) | 導覽並下載檔案 |
page.agent.run_workflow(workflow_id) | 執行預先建置的工作流程 |
AI 增強的 Playwright 動作
所有標準的 Playwright 動作都支援一個可選的 prompt 參數,用於 AI 驅動的元素定位:
| 動作 | Playwright | AI 增強 |
|---|---|---|
| 點擊 | page.click("#btn") | page.click(prompt="Click login button") |
| 填寫 | page.fill("#email", "[email protected]") | page.fill(prompt="Email field", value="[email protected]") |
| 選取 | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| 上傳 | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
三種互動模式:
# 1. Traditional Playwright - CSS/XPath selectors
await page.click("#submit-button")
# 2. AI-powered - natural language
await page.click(prompt="Click the green Submit button")
# 3. AI fallback - tries selector first, falls back to AI if it fails
await page.click("#submit-btn", prompt="Click the Submit button")
核心 AI 命令 - 範例
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")
# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")
# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")
快速入門範例
透過 UI 執行:
skyvern run all
導覽至 http://localhost:8080 以透過網頁介面執行任務。如果缺少打包的 UI,skyvern run ui 將提供安裝相符的 UI 套件。對於非互動式設定,請使用 skyvern run ui --install-ui 或 skyvern run all --install-ui。
若僅針對現有的 Skyvern API 執行打包的 UI,請安裝 skyvern[ui] 並傳遞
--api-url;CLI 會從 API URL 推斷 --wss-url,除非您覆寫它。您也可以在執行 skyvern run ui 之前設定
VITE_API_BASE_URL、VITE_WSS_BASE_URL、VITE_ARTIFACT_API_BASE_URL、VITE_SKYVERN_API_KEY,
和 VITE_BROWSER_STREAMING_MODE。
Python SDK:
from skyvern import Skyvern
# Local mode
skyvern = Skyvern.local()
# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")
# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button") # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI login
await page.click(prompt="Add first item to cart") # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345") # AI task
TypeScript SDK:
import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" });
const browser = await skyvern.launchCloudBrowser();
const page = await browser.getWorkingPage();
// Mix Playwright with AI-powered actions
await page.goto("https://example.com");
await page.click("#login-button"); // Traditional Playwright
await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login
await page.click({ prompt: "Add first item to cart" }); // AI-augmented click
await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task
await browser.close();
簡單的任務執行:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
進階用法
控制您自己的瀏覽器(Chrome)
讓 Skyvern 控制您現有的 Chrome 瀏覽器——包含您所有的 cookie、登入資訊和擴充功能。
步驟 1:在 Chrome 中啟用遠端除錯
- 開啟 Chrome 並導覽至
chrome://inspect/#remote-debugging - 點擊 啟用 以啟動除錯伺服器
- 您應該會看到:伺服器正在執行:127.0.0.1:9222
[!提示]
skyvern init browser命令可以自動完成此操作——它會開啟chrome://inspect/#remote-debugging,等待您啟用它,並儲存設定。
步驟 2:連接 Skyvern
選項 A — Python 程式碼:
from skyvern import Skyvern
skyvern = Skyvern(
base_url="http://localhost:8000",
api_key="YOUR_API_KEY",
browser_address="http://127.0.0.1:9222",
)
task = await skyvern.run_task(
prompt="Find the top post on hackernews today",
)
選項 B — Skyvern 服務:
將兩個變數新增到您的 .env 檔案:
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
重新啟動 Skyvern 服務 skyvern run all 並透過 UI 或程式碼執行任務
將 Skyvern Cloud 連接到您的本機瀏覽器
讓 Skyvern Cloud 控制在您機器上執行的 Chrome 瀏覽器——包含您所有現有的 cookie、登入資訊和擴充功能。適用於自動化您已登入或位於 VPN 後方的網站。
# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
然後在您的任務中使用通道 URL:
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
browser_address="https://abc123.ngrok-free.dev",
)
[!警告] 透過通道公開您的瀏覽器時,請務必使用
--api-key。如果沒有它,任何擁有該 URL 的人都能完全控制您的瀏覽器。請參閱安全性文件。
請參閱完整文件以了解所有選項、手動通道設定和疑難排解。
從您的執行中取得一致的輸出結構描述
您可以透過新增 data_extraction_schema 參數來達成:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today",
data_extraction_schema={
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the top post"
},
"url": {
"type": "string",
"description": "The URL of the top post"
},
"points": {
"type": "integer",
"description": "Number of points the post has received"
}
}
}
)
用於除錯問題的實用命令
# Launch the Skyvern Server Separately*
skyvern run server
# Launch the Skyvern UI
skyvern run ui
# Check status of the Skyvern service
skyvern status
# Stop the Skyvern service
skyvern stop all
# Stop the Skyvern UI
skyvern stop ui
# Stop the Skyvern Server Separately
skyvern stop server
效能與評估
Skyvern 在 WebBench 基準測試 上具有 SOTA 效能,準確率達 64.4%。技術報告與評估可以在這裡找到
WRITE 任務的效能(例如填寫表單、登入、下載檔案等)
Skyvern 是 WRITE 任務(例如填寫表單、登入、下載檔案等)中表現最佳的代理,這主要用於 RPA(機器人流程自動化)相關任務。
Skyvern 功能
Skyvern 任務
任務是 Skyvern 內部的基本建構區塊。每個任務都是對 Skyvern 的單一請求,指示它導覽網站並完成特定目標。
任務要求您指定一個 url、prompt,並可選擇性地包含一個 data schema(如果您希望輸出符合特定結構描述)和 error codes(如果您希望 Skyvern 在特定情況下停止執行)。
Skyvern 工作流程
工作流程是將多個任務鏈接在一起以形成一個有凝聚力的工作單元的方式。
例如,如果您想下載所有 1 月 1 日之後的發票,您可以建立一個工作流程,首先導覽到發票頁面,然後篩選僅顯示 1 月 1 日之後的發票,擷取所有符合條件的發票清單,並逐一處理每張發票以下載它。
另一個例子是,如果您想自動化從電子商務商店購買產品,您可以建立一個工作流程,首先導覽到所需的產品,然後將其加入購物車。其次,它會導覽到購物車並驗證購物車狀態。最後,它會完成結帳流程以購買商品。
支援的工作流程功能包括:
- 瀏覽器任務
- 瀏覽器動作
- 資料擷取
- 驗證
- For 迴圈
- 檔案解析
- 發送電子郵件
- 文字提示
- HTTP 請求區塊
- 自訂程式碼區塊
- 將檔案上傳到區塊儲存
- (即將推出)條件判斷
即時串流
Skyvern 允許您將瀏覽器的視埠即時串流到您的本機,以便您能確切看到 Skyvern 在網路上執行的操作。這對於除錯和理解 Skyvern 如何與網站互動,以及在必要時進行介入非常有用。
表單填寫
Skyvern 天生就能夠填寫網站上的表單輸入。透過 navigation_goal 傳遞資訊將允許 Skyvern 理解資訊並相應地填寫表單。
資料擷取
Skyvern 也能夠從網站擷取資料。
你也可以在主提示中直接指定一個 data_extraction_schema,以 jsonc 格式告訴 Skyvern 你希望從網站中提取哪些資料。Skyvern 的輸出將根據提供的結構描述進行結構化。
檔案下載
Skyvern 也能夠從網站下載檔案。所有下載的檔案都會自動上傳到區塊儲存空間(如果已設定),你可以透過使用者介面存取它們。
身份驗證
Skyvern 支援多種不同的身份驗證方法,以便更輕鬆地自動執行登入後的操作。如果你想試用,請透過電子郵件或 Discord 與我們聯繫。
🔐 雙重驗證 (2FA) 支援 (TOTP)
Skyvern 支援多種不同的雙重驗證方法,讓你能夠自動化需要雙重驗證的工作流程。
範例包括:
- 基於 QR 碼的雙重驗證(例如 Google Authenticator、Authy)
- 基於電子郵件的雙重驗證
- 基於簡訊的雙重驗證
🔐 在此處了解更多關於雙重驗證支援的資訊。
密碼管理器整合
Skyvern 目前支援以下密碼管理器整合:
- Bitwarden
- 自訂憑證服務 (HTTP API)
- 1Password
- LastPass
模型上下文協定 (MCP)
Skyvern 支援模型上下文協定 (MCP),讓你能夠使用任何支援 MCP 的大型語言模型。
請參閱此處的 MCP 文件
Zapier / Make.com / N8N 整合
Skyvern 支援 Zapier、Make.com 和 N8N,讓你能夠將 Skyvern 工作流程連接到其他應用程式。
🔐 在此處了解更多關於雙重驗證支援的資訊。
Skyvern 的實際應用範例
我們樂於見到 Skyvern 在實際場景中的應用方式。以下是一些 Skyvern 如何被用來在現實世界中自動化工作流程的範例。歡迎提交 PR 來新增你自己的範例!
在許多不同的網站上下載發票
自動化求職申請流程
為製造公司自動化材料採購
導航到政府網站以註冊帳戶或填寫表單
填寫各種隨機的聯絡我們表單
從任何語言的保險提供者處獲取保險報價
貢獻者設定
請確保已安裝 uv。
- 執行此命令以建立你的虛擬環境 (
.venv)uv sync --group dev - 執行初始伺服器設定
uv run skyvern quickstart - 在瀏覽器中導航到
http://localhost:8080以開始使用使用者介面 Skyvern CLI 支援 Windows、WSL、macOS 和 Linux 環境。
文件
更詳盡的文件可以在我們的📕 文件頁面找到。如果發現任何不清楚或缺失之處,請透過開啟 issue 或透過電子郵件或 Discord 與我們聯繫。
支援的大型語言模型
| 提供者 | 支援的模型 |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | 部署到你的 Azure 訂閱的任何 GPT 模型 |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | 透過 Ollama 執行任何本地託管的模型 |
| OpenRouter | 透過 OpenRouter 存取模型 |
| OpenAI 相容 | 任何遵循 OpenAI API 格式的自訂 API 端點(透過 liteLLM) |
有關詳細的大型語言模型設定,包括所有可用的模型金鑰、環境變數和多模型設定,請參閱大型語言模型設定文件。
貢獻
我們歡迎 PR 和建議!請隨時開啟 PR/issue 或透過電子郵件或 Discord 與我們聯繫。 請查看我們的貢獻指南和 「尋求幫助」的 issues 以開始貢獻!
如果你想與 Skyvern 儲存庫對話,以獲得關於其結構、如何在其基礎上建置以及如何解決使用問題的高層次概述,請查看 Code Sage。
遙測
預設情況下,Skyvern 會收集基本的使用統計資料,以幫助我們了解 Skyvern 的使用情況。如果你想退出遙測,請將 SKYVERN_TELEMETRY 環境變數設定為 false。
授權
Skyvern 的開源儲存庫透過託管雲端提供支援。驅動 Skyvern 的所有核心邏輯均在此開源儲存庫中提供,並根據 AGPL-3.0 授權 授權,但我們託管雲端產品中提供的反機器人措施除外。
如果你對授權有任何疑問或疑慮,請與我們聯繫,我們很樂意提供協助。