
skyvern v1.0.47
ブラウザベースのワークフローをAIで自動化する
🐉 LLMとコンピュータビジョンを使ってブラウザベースのワークフローを自動化 🐉
Skyvern は、LLMとコンピュータビジョンを使ってブラウザベースのワークフローを自動化します。Playwright互換のSDKを提供し、Playwrightの上にAI機能を追加します。また、ノーコードのワークフロービルダーを備えており、技術者・非技術者を問わず、あらゆるWebサイトで手動ワークフローを自動化し、脆弱で信頼性の低い自動化ソリューションを置き換えることができます。
従来のブラウザ自動化のアプローチでは、Webサイトごとにカスタムスクリプトを作成する必要があり、多くの場合、DOM解析やXPathベースの操作に依存していたため、Webサイトのレイアウトが変更されるたびに動作しなくなりました。
コード定義のXPath操作のみに依存するのではなく、Skyvernは Vision LLMs を利用してWebサイトを学習し、操作を行います。
仕組み
Skyvernは、BabyAGIとAutoGPTによって普及したタスク駆動型自律エージェントの設計に触発されています。大きなボーナスとして、SkyvernにはPlaywrightなどのブラウザ自動化ライブラリを使用してWebサイトと対話する機能が与えられています。
Skyvernはエージェントの群れ(スウォーム)を使用してWebサイトを理解し、アクションを計画・実行します。
このアプローチにはいくつかの利点があります。
- Skyvernは、これまで見たことのないWebサイトでも動作できます。カスタマイズされたコードなしで、視覚要素をワークフローを完了するために必要なアクションにマッピングできるためです。
- SkyvernはWebサイトのレイアウト変更に強い耐性があります。ナビゲーション中にシステムが探す事前定義されたXPathやその他のセレクターがないためです。
- Skyvernは、単一のワークフローを多数のWebサイトに適用できます。ワークフローを完了するために必要なインタラクションを推論できるためです。
詳細な技術レポートはこちらをご覧ください。
Demo
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を使用するには、ローカルコンテナの場合は--postgres、既存のデータベースの場合は--database-stringを渡します。Docker Composeは常にバンドルされたPostgresサービスを使用します。
オプションA: pipインストール(Pythonで管理するローカルセットアップに推奨)
必要な依存関係:
さらに、Windowsの場合:
- Rust
- C++開発ツールとWindows SDKを含むVS Code
1. Skyvernのインストール```bash
pip install "skyvern[all]"
#### 2. Skyvernを実行する```bash
skyvern quickstart
The pip quickstart はデフォルトで SQLite を使用します。ローカルの Postgres コンテナを使用する場合は、skyvern quickstart --postgres を実行してください。
オプション B: Docker Compose
すべてをコンテナ化(Postgres、API、UI)し、Python/Node をローカルにインストールしたくない場合は、このオプションを使用します。
- Install Docker Desktop
- リポジトリをクローンします: ```bash
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
.env内で LLM プロバイダを設定します(以下のquickstart --docker-composeコマンドで、.env.exampleが存在しない場合に作成されます): ```bash cp .env.example .env # if not already creatededit .env to add your LLM API key
- すべてを開始する: ```bash
docker compose up -d
- http://localhost:8080 を開いてください
トラブルシューティング
(sqlite3.OperationalError) table organizations already exists — あなたは pip install skyvern==1.0.31 の既知のバグに遭遇しました。修正:```bash
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を使用してインストールしてください:```bash
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 --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 は、ページオブジェクトに直接 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 つの対話モード:```python
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コマンド - 例```python
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")