🐉 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サイトを理解し、アクションを計画・実行します。
このアプローチにはいくつかの利点があります。
詳細な技術レポートはこちらをご覧ください。
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Skyvern Cloud は、インフラを気にせずにSkyvernを実行できるマネージドクラウドバージョンです。複数のSkyvernインスタンスを並列実行でき、アンチボット検出メカニズム、プロキシネットワーク、CAPTCHAソルバーがバンドルされています。
試してみたい場合は、app.skyvern.com にアクセスしてアカウントを作成してください。
希望のセットアップ方法を選択してください。
データベースのデフォルト:
skyvern quickstartとskyvern run serverはデフォルトで~/.skyvern/data.dbのSQLiteデータベースを使用するため、pipのパスはPostgresやDockerなしで動作します。代わりにPostgresを使用するには、ローカルコンテナの場合は--postgres、既存のデータベースの場合は--database-stringを渡します。Docker Composeは常にバンドルされたPostgresサービスを使用します。
必要な依存関係:
さらに、Windowsの場合:
pip install "skyvern[all]"
#### 2. Skyvernを実行する```bash
skyvern quickstart
The pip quickstart はデフォルトで SQLite を使用します。ローカルの Postgres コンテナを使用する場合は、skyvern quickstart --postgres を実行してください。
すべてをコンテナ化(Postgres、API、UI)し、Python/Node をローカルにインストールしたくない場合は、このオプションを使用します。
.env 内で LLM プロバイダを設定します(以下の quickstart --docker-compose コマンドで、.env.example が存在しない場合に作成されます): ```bash
cp .env.example .env # if not already created
(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.
Skyvern は、AI によるブラウザ自動化を追加する Playwright 拡張機能です。 Playwright の全機能に加え、自然言語プロンプトを使用して要素と対話し、データを抽出し、複雑なマルチステップワークフローを自動化する AI 機能を提供します。
インストール:
pip install skyvernpip install "skyvern[all]" を実行し、その後 skyvern quickstart を実行pip install "skyvern[all]" を実行し、その後 skyvern quickstart --postgres を実行pip install "skyvern[ui]" を実行し、その後
skyvern run ui --api-url <api-url> --api-key <api-key> を実行npm install @skyvern/clientSkyvern は、ページオブジェクトに直接 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) | 事前構築されたワークフローを実行します |
すべての標準 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
await page.click("#submit-button")
await page.click(prompt="Click the green Submit button")
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")