LLM とコンピューター ビジョンを使用してブラウザベースのワークフローを自動化する
Skyvern は、LLM とコンピュータ ビジョンを使用してブラウザベースのワークフローを自動化します。これは、多数の Web サイトで手動ワークフローを完全に自動化するためのシンプルな API エンドポイントを提供し、脆弱または信頼性の低い自動化ソリューションを置き換えます。
ブラウザ自動化への従来のアプローチでは、Web サイト用のカスタム スクリプトを記述する必要があり、DOM 解析や XPath ベースの対話に依存することが多く、Web サイトのレイアウトが変更されるたびに機能が中断されてしまいました。
Skyvern は、コードで定義された XPath インタラクションのみに依存するのではなく、コンピューター ビジョンと LLM に加えてプロンプトを利用して、ビューポート内のアイテムをリアルタイムで解析し、インタラクションの計画を作成し、それらとインタラクションします。
このアプローチにはいくつかの利点があります。
Skyvern は、カスタマイズされたコードを使用せずに、ワークフローを完了するために必要なアクションに視覚要素をマッピングできるため、これまでに見たことのない Web サイトで動作できます。
Skyvern は、システムがナビゲートしようとするときに検索する事前に決定された XPath やその他のセレクターがないため、Web サイトのレイアウトの変更に耐性があります。
Skyvern は、ワークフローを完了するために必要な対話を通じて推論できるため、単一のワークフローを取得して多数の Web サイトに適用できます。
Skyvern は LLM を活用して対話を通じて推論し、複雑な状況を確実にカバーできるようにします。例としては次のものが挙げられます。
Geico から自動車保険の見積もりを取得したい場合は、「18 歳で運転する資格がありましたか?」というよくある質問に対する答えが得られます。運転者が16歳で免許を取得したことから推測できる
競合他社の分析を行っている場合、7/11 のアーノルド パーマー 22 オンス缶は、ゴパフの 23 オンス缶とほぼ間違いなく同じ製品であることがわかります (たとえサイズがわずかに異なっていても、四捨五入誤差である可能性があります)。
Skyvern の実際の例を見たいですか? #スカイバーンの実例へジャンプ
Skyvern は、BabyAGI と AutoGPT によって普及したタスク駆動の自律エージェント設計からインスピレーションを受けました。さらに 1 つの大きな利点があります。Skyvern には、Playwright のようなブラウザ自動化ライブラリを使用して Web サイトと対話する機能が与えられています。
Skyvern は、エージェントの群れを使用して Web サイトを理解し、そのアクションを計画および実行します。
インタラクタブル要素エージェント: このエージェントは、Web サイトの HTML を解析し、インタラクタブル要素を抽出します。
ナビゲーション エージェント: このエージェントは、タスクを完了するためのナビゲーションを計画する責任を負います。例には、ボタンのクリック、テキストの挿入、オプションの選択などが含まれます。
データ抽出エージェント: このエージェントは、Web サイトからデータを抽出する責任を負います。ページ上の表とテキストを読み取り、ユーザー定義の構造化フォーマットで出力を抽出できます。
パスワード エージェント: このエージェントは、Web サイト上のパスワード フォームに入力する責任を負います。パスワード マネージャーからユーザー名とパスワードを読み取り、ユーザー定義の秘密のプライバシーを保護しながらフォームに記入することができます。
2FA エージェント: このエージェントは、Web サイト上の 2FA フォームに記入する責任を負います。 Web サイトからの 2FA リクエストをインターセプトし、2FA コードのユーザー定義 API をリクエストするか、ユーザーが 2FA コードを入力するのを待ってログイン プロセスを完了することができます。
動的オートコンプリート エージェント: このエージェントは、Web サイト上の動的オートコンプリート フォームに入力する役割を果たします。提示されたオプションを読み取り、ユーザーの入力に基づいて適切なオプションを選択し、フォーム内からのフィードバックに基づいて入力を調整することができます。よくある例としては、住所フォーム、大学のドロップダウンなどがあります。
インフラストラクチャを管理することなく Skyvern を実行できる、Skyvern のマネージド クラウド バージョンを提供します。複数の Skyvern インスタンスを並行して実行して、ワークフローを大規模に自動化できます。さらに、Skyvern クラウドには、ボット対策検出メカニズム、プロキシ ネットワーク、CAPTCHA 解決機能がバンドルされており、より複雑なワークフローを完了できるようになります。
試してみたい場合は、
app.skyvern.com に移動します
アカウントを作成して 5 ドル分のクレジットを獲得しましょう
最初のタスクを開始して、Skyvern の動作を確認してください。
冒険に役立つヒントをいくつか紹介します。
スカイバーンは一つの目標を遂行するのが本当に上手い。あまりにも多くの指示を与えると、途中で混乱する可能性が高くなります。
目標を明確にすることは非常に重要です。たとえば、保険の見積もりを作成している場合は、その目標を達成したことをどのように確認できるかを非常に明確に伝えます。 「COMPLETE」または「TERMINATE」のような単語を使用して、それぞれ成功モードと失敗モードを示します。
ワークフローは、複数の命令を連鎖させたり、安全にログインしたりするなど、より高度な作業を実行したい場合に使用できます。これに関してサポートが必要な場合は、お気軽にご予約ください。いつでも喜んでお手伝いいたします
このクイックスタート ガイドでは、Skyvern をローカル マシン上で起動して実行する手順を説明します。
マシンに Docker Desktop がインストールされ、実行されていることを確認してください。
ローカルで postgres が実行されていないことを確認します (確認するにはdocker ps
実行します)。
リポジトリのクローンを作成し、ルート ディレクトリに移動します
docker-compose.yml に LLM プロバイダー キーを入力します。 Skyvern をリモート サーバーで実行する場合は、docker-compose.yml で UI コンテナーに正しいサーバー IP を設定していることを確認してください。
コマンドラインから次のコマンドを実行します。
ドッカー構成 -d
ブラウザでhttp://localhost:8080
に移動して、UI の使用を開始します。
始める前に、以下がインストールされていることを確認してください。
醸造 (Mac を使用している場合)
詩
brew install poetry
ノード
ドッカー
注: セットアップ スクリプトはこれら 2 つを自動的に実行しますが、ここでは参照用に示します。
Python 3.11
poetry env use 3.11
PostgreSQL 14 (Mac を使用している場合、homebrew がインストールされていれば、セットアップ スクリプトによってインストールされます)
brew install postgresql
リポジトリのクローンを作成し、ルート ディレクトリに移動します
Docker デスクトップ (Windows、macOS、Linux で動作) を開くか、Docker デーモンを実行します。
セットアップ スクリプトを実行して、必要な依存関係をインストールし、環境をセットアップします。
./setup.sh
サーバーを起動します
./run_skyvern.sh
サーバーへのリクエストの送信を開始できますが、開始しやすいようにシンプルな UI を構築しました。 UI を開始するには、次のコマンドを実行します。
./run_ui.sh
ブラウザでhttp://localhost:8080
に移動して、UI の使用を開始します。
Skyvern に貢献したい場合は、コードの品質と一貫性を確保するために、コミット前フックをインストールする必要があります。これを行うには、次のコマンドを実行します。
プリコミットインストール
タスクは Skyvern 内の基本的な構成要素です。各タスクは Skyvern に対する 1 つのリクエストであり、Web サイト内を移動して特定の目標を達成するように指示します。
タスクでは、Web サイトからデータを抽出する場合はurl
、 navigation_goal
、およびオプションでdata_extraction_goal
指定する必要があります。また、Skyvern が情報を入力したり、Web サイトから提示された質問に答えるのに役立つ追加のコンテキストを提供したい場合は、 navigation_payload
指定する必要があります。
ワークフローは、複数のタスクを連鎖させて、まとまった作業単位を形成する方法です。
たとえば、1 月 1 日より新しい請求書をすべてダウンロードする場合は、最初に請求書ページに移動し、次に 1 月 1 日より新しい請求書のみを表示するようにフィルターダウンし、対象となるすべての請求書のリストを抽出して反復するワークフローを作成できます。各請求書からダウンロードしてください。
別の例として、e コマース ストアからの商品購入を自動化したい場合は、最初に目的の商品に移動してから、それをカートに追加するワークフローを作成できます。次に、カートに移動し、カートの状態を検証します。最後に、チェックアウト プロセスを経て商品を購入します。
サポートされているワークフロー機能は次のとおりです。
タスク (+ 連鎖タスク)
ループ
ファイルの解析
ブロックストレージへのファイルのアップロード
メールの送信
テキストプロンプト
(近日公開予定) 条件文
(近日公開) カスタム コード ブロック
Skyvern を使用すると、ブラウザのビューポートをローカル マシンにライブストリーミングできるため、Skyvern が Web 上で何を行っているかを正確に確認できます。これは、Skyvern が Web サイトとどのように対話し、必要に応じて介入するかをデバッグして理解するのに役立ちます。
Skyvern は、Web サイト上でフォーム入力をネイティブに行うことができます。 navigation_goal
またはnavigation_payload
経由で情報を渡すと、Skyvern が情報を理解し、それに応じてフォームに記入できるようになります。
Skyvern は Web サイトからデータを抽出することもできます。 data_extraction_goal
を指定すると、Skyvern がデータを抽出して応答で返すことができます。
data_extraction_schema
を指定して、Web サイトから抽出したいデータを jsonc 形式で正確に Skyvern に伝えることもできます。 Skyvern の出力は、提供されたスキーマに従って構造化されます。
Skyvern は Web サイトからファイルをダウンロードすることもできます。 file_download_goal
を指定すると、Skyvern がファイルをダウンロードし、応答でファイルへのリンクを返すことができるようになります。
Skyvern は、ログイン後のタスクの自動化を容易にするために、さまざまな認証方法をサポートしています。
Skyvern は現在、次のパスワード マネージャーの統合をサポートしています。
ビットワーデン
1パスワード
ラストパス
Skyvern はさまざまな 2FA メソッドをサポートしており、2FA を必要とするワークフローを自動化できます。
例としては次のものが挙げられます。
QR ベースの 2FA (例: Google Authenticator、Authy)
電子メールベースの 2FA
SMS ベースの 2FA
私たちは、Skyvern が実際にどのように使用されているかを見るのが大好きです。 Skyvern が現実世界のワークフローを自動化するためにどのように使用されているかの例をいくつか紹介します。 PR を開いて独自の例を追加してください。
これらの例を試したい場合は、Skyvern をローカルで実行する必要があります。クイックスタート ガイドを読んだ後、次のコマンドを実行してください。
./run_skyvern.sh
デモを予約してライブで見る
実際の動作を確認してください
実際の動作を確認してください
実際の動作を確認してください
実際の動作を確認してください
実際の動作を確認してください
実際の動作を確認してください
さらに広範なドキュメントは、ドキュメント Web サイトでご覧いただけます。不明な点や不足している点がある場合は、問題を開くか、電子メールまたは discord でご連絡ください。
プロバイダー | 対応機種 |
---|---|
OpenAI | gpt4-ターボ、gpt-4o、gpt-4o-mini |
人間的 | クロード 3 (俳句、ソネット、作品)、クロード 3.5 (ソネット) |
Azure OpenAI | 任意の GPT モデル。マルチモーダル llm (azure/gpt4-o) によるパフォーマンスの向上 |
AWS の基盤 | Anthropic Claude 3 (俳句、ソネット、作品)、Claude 3.5 (ソネット) |
オラマ | 近日公開予定 (寄付歓迎) |
ジェミニ | 近日公開予定 (寄付歓迎) |
ラマ 3.2 | 近日公開予定 (寄付歓迎) |
変数 | 説明 | タイプ | サンプル値 |
---|---|---|---|
ENABLE_OPENAI | OpenAIモデルを登録する | ブール値 | true 、 false |
ENABLE_ANTHROPIC | 人体モデルの登録 | ブール値 | true 、 false |
ENABLE_AZURE | Azure OpenAI モデルを登録する | ブール値 | true 、 false |
ENABLE_BEDROCK | AWS Bedrock モデルを登録する | ブール値 | true 、 false |
LLM_KEY | 使用したいモデルの名前 | 弦 | 現在サポートされている llm キー: OPENAI_GPT4_TURBO 、 OPENAI_GPT4V 、 OPENAI_GPT4O 、 OPENAI_GPT4O_MINI 、 ANTHROPIC_CLAUDE3 、 ANTHROPIC_CLAUDE3_OPUS 、 ANTHROPIC_CLAUDE3_SONNET 、 ANTHROPIC_CLAUDE3_HAIKU 、 BEDROCK_ANTHROPIC_CLAUDE3_HAIKU 、 ANTHROPIC_CLAUDE3.5_SONNET 、 BEDROCK_ANTHROPIC_CLAUDE3_OPUS 、 BEDROCK_ANTHROPIC_CLAUDE3_SONNET 、 BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET 、 AZURE_OPENAI |
OPENAI_API_KEY | OpenAI APIキー | 弦 | sk-1234567890 |
OPENAI_API_BASE | OpenAI API ベース、オプション | 弦 | https://openai.api.base |
OPENAI_ORGANIZATION | OpenAI 組織 ID、オプション | 弦 | your-org-id |
ANTHROPIC_API_KEY | 人間の API キー | 弦 | sk-1234567890 |
AZURE_API_KEY | Azure デプロイメント API キー | 弦 | sk-1234567890 |
AZURE_DEPLOYMENT | Azure OpenAI デプロイ名 | 弦 | skyvern-deployment |
AZURE_API_BASE | Azure デプロイメント API のベース URL | 弦 | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Azure API バージョン | 弦 | 2024-02-01 |
これは、今後数か月間で予定されているロードマップです。ご提案がある場合、または機能の追加をご希望の場合は、電子メールまたは discord 経由でお気軽にお問い合わせください。
オープンソース- オープンソース Skyvern のコア コードベース
[ベータ] ワークフローのサポート- 複数の Skyvern 通話を連鎖させるサポートを許可します
コンテキストの改善- テキスト プロンプトを通じて関連ラベルのコンテキストをフィードすることを導入することで、Skyvern のインタラブルな要素の周囲のコンテンツを理解する能力が向上しました。
コスト削減- Skyvern に渡されるコンテキスト ツリーを最適化することで、Skyvern の安定性を向上させ、Skyvern の実行コストを削減します。
セルフサービス UI - ユーザーが Skyvern で新しいジョブを開始できるようにする React ベースの UI コンポーネントを支持して、Streamlit UI を非推奨にします。
ワークフロー UI ビルダー- ユーザーがワークフローを視覚的に構築および分析できるようにする UI を導入します。
Chrome ビューポート ストリーミング- Chrome ビューポートをユーザーのブラウザにライブ ストリーミングする方法を導入します (セルフサービス UI の一部として)
過去の実行 UI - 過去の実行とその結果を視覚化できる React ベースの UI を優先して、Streamlit UI を非推奨にします。
プロンプト キャッシング- LLM 呼び出しにキャッシング レイヤーを導入して、Skyvern の実行コストを大幅に削減します (過去のアクションを記憶し、それを繰り返します)。
Web 評価データセット- Skyvern を公開ベンチマーク テストと統合して、モデルの品質を長期的に追跡します
改善されたデバッグ モード- Skyvern がアクションを計画し、実行する前に「承認」を得ることができるようになり、実行内容をデバッグし、プロンプトでより簡単に反復できるようになります。
自動ワークフロー ビルダー (「オブザーバー」) モード- Skyvern が Web をナビゲートしながらワークフローを自動生成できるようにして、新しいワークフローの構築を容易にします。
Chrome 拡張機能- ユーザーが Chrome 拡張機能を通じて Skyvern と対話できるようにします (音声モード、タスクの保存など)。
Skyvern Action Recorder - Skyvern がユーザーのタスク完了を監視し、そのワークフローを自動的に生成できるようにします。
インタラクタブルなライブストリーム- ユーザーがリアルタイムでライブストリームを操作し、必要に応じて介入できるようにします (機密フォームを手動で送信するなど)。
LLM 可観測性ツールの統合- LLM 可観測性ツールを統合して、特定のデータセットを使用したプロンプト変更のバックテストを可能にし、時間の経過に伴う Skyvern のパフォーマンスを視覚化します。
Langchain 統合- Skyvern を「ツール」として使用するために、langchain_community で langchain 統合を作成します。
PRやご提案も大歓迎です!遠慮せずに PR/問題を開いていただくか、メールまたは Discord でご連絡ください。まずは、投稿ガイドと「ヘルプ募集」問題をご覧ください。
Skyvern リポジトリとチャットして、リポジトリの構造、構築方法、使用上の質問の解決方法の概要を確認したい場合は、Code Sage をチェックしてください。
Skyvern はデフォルトで、Skyvern がどのように使用されているかを理解するのに役立つ基本的な使用統計を収集します。テレメトリをオプトアウトしたい場合は、 SKYVERN_TELEMETRY
環境変数をfalse
に設定してください。
Skyvern のオープンソース リポジトリは、マネージド クラウド経由でサポートされています。 Skyvern を動かすコア ロジックはすべて、マネージド クラウド製品で利用できるボット対策機能を除き、AGPL-3.0 ライセンスに基づいてライセンスされたこのオープン ソース リポジトリで利用できます。
ライセンスに関してご質問や懸念がある場合は、弊社までご連絡ください。喜んでお手伝いさせていただきます。