Skyvern Advanced Browser Automation について
Skyvern は LLM とコンピュータビジョンを用いたブラウザー自動化プロジェクトで、Playwright 互換の SDK とノーコードのワークフロービルダーを提供します。開発者と非技術者の双方を対象とし、レイアウトの変更で壊れやすい固定の XPath に依存せずに Web 上の定型作業を自動化します。
主な機能
- 01Playwright 互換の AI SDK
- 02自然言語によるページ操作
- 03構造化データの抽出
- 04ノーコードのワークフロービルダー
- 05ビジョンベースの要素特定
- 06pip または Docker Compose によるローカル実行
活用シーン
- 01専用スクリプトなしで複数サイトのフォームに入力
- 02Web ページから注文や商品の構造化データを抽出
- 03ログインして請求書などのファイルをダウンロード
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.skyvern.com/mcp/claude mcp add --transport http skyvern https://api.skyvern.com/mcp/{"mcpServers":{"skyvern":{"type":"http","url":"https://api.skyvern.com/mcp/"}}}Cursor で開く{"servers":{"skyvern":{"type":"http","url":"https://api.skyvern.com/mcp/"}}}VS Code で開く{"mcpServers":{"skyvern":{"type":"http","url":"https://api.skyvern.com/mcp/"}}}{"mcpServers":{"skyvern":{"serverUrl":"https://api.skyvern.com/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://api.skyvern.com/mcp/認証が必要ツール
詳細
🐉 LLM とコンピュータービジョンを使って、ブラウザー上のワークフローを自動化 🐉
Skyvern は、LLM とコンピュータービジョンを使ってブラウザー上のワークフローを自動化します。Playwright と互換性のある SDK を提供し、Playwright に AI 機能を追加します。また、技術者と非技術者のどちらも、脆弱で信頼性の低い自動化ソリューションに代わって、あらゆるウェブサイト上の手作業のワークフローを自動化できるノーコードのワークフロービルダーも提供します。
従来のブラウザー自動化では、ウェブサイトごとにカスタムスクリプトを記述する必要がありました。多くの場合、DOM の解析や XPath ベースの操作に依存していたため、ウェブサイトのレイアウトが変わるたびに動作しなくなっていました。
コードで定義された XPath 操作だけに頼るのではなく、Skyvern はビジョン LLM を活用してウェブサイトを学習し、操作します。
仕組み
Skyvern は、BabyAGI や AutoGPT によって広まったタスク駆動型の自律エージェント設計から着想を得ています。さらに大きな特長として、Playwright のようなブラウザー自動化ライブラリを使ってウェブサイトを操作する機能を Skyvern に与えています。
Skyvern はエージェントの群れを使ってウェブサイトを理解し、アクションを計画して実行します。
このアプローチには、次のような利点があります。
- Skyvern は、これまで見たことのないウェブサイトでも動作します。カスタムコードを使わずに、視覚要素をワークフローの完了に必要なアクションに対応付けられるためです。
- Skyvern は、ウェブサイトのレイアウト変更に強い仕組みです。ナビゲーション時にシステムが探す XPath やその他のセレクターが事前に決められていないためです。
- Skyvern は、1 つのワークフローを多数のウェブサイトに適用できます。ワークフローを完了するために必要な操作を推論できるためです。 詳細な技術レポートはこちらをご覧ください。
デモ
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
クイックスタート
Skyvern Cloud
Skyvern Cloud は、インフラストラクチャを気にせずに Skyvern を実行できる、マネージドクラウド版です。複数の Skyvern インスタンスを並行して実行でき、ボット対策、プロキシネットワーク、CAPTCHA ソルバーが組み込まれています。
試してみるには、app.skyvern.com にアクセスしてアカウントを作成してください。
ローカルで実行する(UI + サーバー)
お好みのセットアップ方法を選択してください。
データベースのデフォルト設定:
skyvern quickstartとskyvern run serverは、デフォルトで~/.skyvern/data.dbの SQLite データベースを使用するため、pip を使った方法では Postgres や Docker がなくても動作します。代わりに Postgres を使用するには、既存のデータベースに対して--database-stringを指定してください(または--no-postgresを省略すると、quickstartが独自の Postgres コンテナーを起動します)。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 を実行してください(--no-postgres を指定しない限り Postgres コンテナーが起動します)。または、--database-string=postgresql+psycopg://user:pass@host:5432/dbname を指定して既存のデータベースに接続してください。
オプション 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が存在しない場合に.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 は、AI を活用したブラウザー自動化機能を追加する Playwright 拡張機能です。 Playwright のすべての機能に加え、AI の機能も利用できます。自然言語のプロンプトを使って要素を操作したり、データを抽出したり、複雑な複数ステップのワークフローを自動化したりできます。
インストール:
- Python SDK / クラウド API:
pip install skyvern - ローカルサーバー + パッケージ化された UI:
pip install "skyvern[all]"を実行してからskyvern quickstartを実行します - Postgres を使用するローカルサーバー + パッケージ化された UI:
pip install "skyvern[all]"を実行してからskyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbnameを実行します - 既存の API 用のパッケージ化された UI:
pip install "skyvern[ui]"を実行してからVITE_API_BASE_URLを設定し(API でキーが必要な場合はVITE_SKYVERN_API_KEYも設定)、skyvern run uiを実行します - TypeScript:
npm install @skyvern/client
AI を活用したページコマンド
Skyvern は、ページオブジェクトに 4 つの主要な 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 アクションはすべて、AI による要素の位置特定に使える省略可能な prompt パラメーターに対応しています。
| アクション | 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") |
3 つの操作モード:
# 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 API に対してパッケージ化された UI のみを実行するには、skyvern[ui] をインストールし、skyvern run ui の実行前に以下の環境変数を設定してください。
VITE_API_BASE_URL(例:http://localhost:8000/api/v1)— UI の接続先となる Skyvern API を指定しますVITE_SKYVERN_API_KEY— API で必要な場合に設定する API キーですVITE_WSS_BASE_URL— WebSocket エンドポイントです(未設定の場合はVITE_API_BASE_URLから推定されます)VITE_ARTIFACT_API_BASE_URL— アーティファクトのダウンロード用ベース URL です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 に、Cookie、ログイン情報、拡張機能を含め、既存の Chrome ブラウザーを操作させることができます。
ステップ 1:Chrome でリモートデバッグを有効にする
- Chrome を開き、
chrome://inspect/#remote-debuggingに移動します - Enable をクリックしてデバッグサーバーを起動します
- Server running at: 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 ファイルに 2 つの変数を追加します。
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Skyvern サービスを再起動して skyvern run all を実行し、UI またはコードからタスクを実行します。
Skyvern Cloud をローカルブラウザーに接続する
Skyvern Cloud に、既存の Cookie、ログイン情報、拡張機能を含め、マシン上で動作している Chrome ブラウザーを操作させることができます。すでにログインしているサイトや、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 ベンチマークで最先端の性能を達成しており、正解率は 64.4% です。技術レポートと評価結果はこちらで確認できます。
WRITE タスク(フォームへの入力、ログイン、ファイルのダウンロードなど)のパフォーマンス
Skyvern は、主に RPA(ロボティック・プロセス・オートメーション)に関連するタスクで使われる WRITE タスク(フォームへの入力、ログイン、ファイルのダウンロードなど)において、最高の性能を発揮するエージェントです。
Skyvern の機能
Skyvern のタスク
タスクは、Skyvern を構成する基本単位です。各タスクは Skyvern への単一のリクエストで、ウェブサイトを移動して特定の目標を達成するよう指示します。
タスクには url と prompt の指定が必要です。また、必要に応じて data schema(出力を特定のスキーマに準拠させたい場合)と error codes(特定の状況で Skyvern の実行を停止したい場合)を含めることもできます。
Skyvern のワークフロー
ワークフローを使うと、複数のタスクを連結し、まとまりのある作業単位を作成できます。
たとえば、1 月 1 日より新しいすべての請求書をダウンロードしたい場合、まず請求書ページに移動し、1 月 1 日より新しい請求書だけを表示するよう絞り込み、対象となる請求書の一覧を抽出し、各請求書を順に処理してダウンロードするワークフローを作成できます。
別の例として、EC サイトから商品の購入を自動化したい場合、まず目的の商品に移動してカートに追加するワークフローを作成できます。次にカートに移動して、カートの状態を検証します。最後にチェックアウトの手順を進めて商品を購入します。
サポートされているワークフロー機能は次のとおりです。
- ブラウザータスク
- ブラウザーアクション
- データ抽出
- 検証
- For ループ
- ファイル解析
- メール送信
- テキストプロンプト
- HTTP リクエストブロック
- カスタムコードブロック
- ブロックストレージへのファイルアップロード
- (近日公開)条件分岐
ライブストリーミング
Skyvern では、ブラウザーのビューポートをローカルマシンにライブストリーミングできるため、Skyvern がウェブ上で行っている操作を正確に確認できます。デバッグや、Skyvern がウェブサイトとどのようにやり取りしているかの把握、必要に応じた介入に役立ちます。
フォーム入力
Skyvern は、ウェブサイトのフォーム入力欄にネイティブで入力できます。navigation_goal を使って情報を渡すと、Skyvern がその情報を理解し、適切にフォームへ入力します。
データ抽出
Skyvern は、ウェブサイトからデータを抽出することもできます。
また、メインプロンプト内で data_extraction_schema を直接指定し、ウェブサイトから抽出したいデータを jsonc 形式で Skyvern に正確に伝えることもできます。Skyvern の出力は、指定されたスキーマに従って構造化されます。
ファイルのダウンロード
Skyvern は、ウェブサイトからファイルをダウンロードすることもできます。ダウンロードされたファイルはすべてブロックストレージ(設定されている場合)に自動でアップロードされ、UI からアクセスできます。
認証
Skyvern はさまざまな認証方式に対応しており、ログインが必要なタスクを簡単に自動化できます。試してみたい場合は、メールまたは discord からお問い合わせください。
🔐 2FA 対応(TOTP)
Skyvern はさまざまな 2FA 方式に対応しており、2FA が必要なワークフローを自動化できます。
例:
- QR コードベースの 2FA(Google Authenticator、Authy など)
- メールベースの 2FA
- SMS ベースの 2FA
🔐 2FA 対応の詳細についてはこちらをご覧ください。
パスワードマネージャーとの連携
Skyvern は現在、次のパスワードマネージャーとの連携に対応しています。
- Bitwarden
- カスタム認証情報サービス(HTTP API)
- 1Password
- LastPass
Model Context Protocol(MCP)
Skyvern は Model Context Protocol(MCP)に対応しており、MCP をサポートする任意の LLM を使用できます。
MCP のドキュメントはこちらをご覧ください。
Zapier / Make.com / N8N との連携
Skyvern は Zapier、Make.com、N8N に対応しており、Skyvern のワークフローをほかのアプリに接続できます。
🔐 2FA 対応について詳しくはこちらをご覧ください。
Skyvern の実際の活用例
Skyvern が実際にどのように活用されているかを見るのを楽しみにしています。以下は、現実のワークフローを自動化するために Skyvern が使われている例です。ぜひ、ご自身の例を追加する PR を作成してください!
さまざまなウェブサイトでの請求書のダウンロード
求人応募プロセスの自動化
製造会社の資材調達を自動化
政府のウェブサイトにアクセスしてアカウントを登録したり、フォームに入力したりする
さまざまな問い合わせフォームへの入力
あらゆる言語で保険会社から保険料の見積もりを取得
コントリビューター向けセットアップ
uv がインストールされていることを確認してください。
- 次のコマンドを実行して仮想環境(
.venv)を作成しますuv sync --group dev - サーバーの初期設定を行います
uv run skyvern quickstart - ブラウザーで
http://localhost:8080にアクセスして UI の利用を開始します Skyvern CLI は Windows、WSL、macOS、Linux 環境に対応しています。
ドキュメント
詳しいドキュメントは📕 ドキュメントページをご覧ください。不明な点や不足している情報があれば、issue を作成するか、メールまたはDiscordでご連絡ください。
対応 LLM
| プロバイダー | 対応モデル |
|---|---|
| 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-compatible | OpenAI の API 形式に準拠した任意のカスタム API エンドポイント(liteLLM 経由) |
利用可能なすべてのモデルキー、環境変数、マルチモデル構成を含む LLM の詳細な設定については、LLM 設定ドキュメントをご覧ください。
コントリビューション
PR やご提案を歓迎します!お気軽に PR や issue を作成するか、メールまたはDiscordからご連絡ください。 まずは、コントリビューションガイドと、作業を始める際に役立つ「Help Wanted」issueをご覧ください!
skyvern リポジトリの構成や、その上に構築する方法、使い方に関する質問の解決方法について、概要を把握するためにリポジトリとチャットしたい場合は、Code Sageをご利用ください。
テレメトリー
デフォルトでは、Skyvern の利用状況を把握するため、基本的な使用統計情報を収集しています。テレメトリーをオプトアウトする場合は、環境変数 SKYVERN_TELEMETRY を false に設定してください。
ライセンス
Skyvern のオープンソースリポジトリは、マネージドクラウドによって支えられています。Skyvern を支えるコアロジックはすべて、マネージドクラウドで提供されるアンチボット対策を除き、AGPL-3.0 Licenseのもとでライセンスされたこのオープンソースリポジトリで公開されています。
ライセンスに関してご質問やご懸念がある場合は、お問い合わせください。喜んでサポートいたします。
スター履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。