ブラウザワークフローの堅牢性を高めるSkyvern:導入とPythonサンプルコード


ブラウザワークフローの堅牢性を高めるSkyvern:導入とPythonサンプルコード

Skyvern-AI/skyvern

2025-10-20

ソフトウェアエンジニアの視点から、このツールがどのように役立つのか、導入方法、サンプルコードのイメージを分かりやすくご説明しますね!

従来のブラウザ自動化ツール(SeleniumやPlaywrightなど)は、ウェブサイトのDOM構造(XPathやCSSセレクタ)に依存するため、サイトのレイアウトが少し変わるだけでスクリプトが壊れてしまうという課題がありました。Skyvernは、この問題をAIの力で解決します。

UI変更に強い
Skyvernは、従来のセレクタではなく、コンピュータービジョンで画面を視覚的に理解し、LLMで次に取るべき行動を推論します。これにより、ウェブサイトのデザインやレイアウトが変更されても、スクリプトを書き直す必要性が大幅に減ります。これは、メンテナンスコストの削減に直結します。

ゼロショット対応
事前にトレーニングされていない、全く新しいウェブサイトでも、人間が操作するようにタスクを完了させることができます。

自然言語による指示
複雑な手順を自然言語(英語など)のプロンプトとして与えるだけで、ログイン、フォーム入力、ファイルダウンロードなどの一連の操作を自動で実行させることができます。

複雑な状況への対応
2要素認証(2FA)やCAPTCHAなど、従来の自動化が苦手としていた複雑な認証プロセスにも対応できる可能性があります。

API駆動
SkyvernはシンプルなAPIエンドポイントを提供しているため、自社の内部ツールやアプリケーションから簡単に呼び出すことができ、多数のタスクを同時に実行するなど、高いスケーラビリティを持った自動化システムを構築できます。

Skyvernはオープンソースで、Dockerを使ったセルフホスト(自前での運用)が可能です。Pythonでの利用が主になります。

前提条件の準備

Dockerがインストールされていること。

Python環境が整っていること。

LLMサービス(例
OpenAI, Anthropic)のAPIキーを用意すること(Skyvernの頭脳として使われます)。

Skyvernのセットアップ

GitHubリポジトリをクローンし、Dockerを使ってSkyvernのバックエンドサービスを起動します。

Pythonクライアントのインストール

Pythonのパッケージマネージャー(pip)を使ってSkyvernのクライアントライブラリをインストールします(具体的なパッケージ名は公式ドキュメントで確認してください)。

# クライアントライブラリのインストールイメージ
pip install skyvern-client

ここでは、特定のウェブサイトのログインとデータ抽出を自動化するサンプルを想定します。

import os
from skyvern_client import SkyvernClient, TaskInput

# 環境変数からAPIキーを取得
LLM_API_KEY = os.environ.get("OPENAI_API_KEY") # 実際のLLMプロバイダーに応じて変更

# Skyvernクライアントの初期化 (セルフホストの場合のエンドポイントを設定)
skyvern = SkyvernClient(
    skyvern_url="http://localhost:8000",
    api_key="YOUR_SKYVERN_API_KEY" # Skyvern自体の認証キー
)

# 実行したいタスクの定義
task_description = (
    "URLにアクセスし、ユーザー名 'user123' とパスワード 'password456' でログインしてください。 "
    "その後、ページ上部にある『最新の注文番号』を抽出してください。"
)

task_input = TaskInput(
    url="https://example.com/portal/login",
    # ユーザーが実行してほしい具体的なタスク内容を自然言語で記述
    description=task_description,
    # 抽出してほしいデータの形式(JSONスキーマなどで指定)
    output_schema={
        "type": "object",
        "properties": {
            "latest_order_id": {"type": "string", "description": "最新の注文番号"}
        },
        "required": ["latest_order_id"]
    }
)

print("タスクを開始します...")

try:
    # タスクの実行
    result = skyvern.run_task(task_input=task_input)

    print("\n タスクが完了しました!")
    print(f"最終ステータス: {result.status}")
    print(f"実行ログ(サマリー): {result.summary}")

    # 抽出されたデータの表示
    extracted_data = result.extracted_data
    if extracted_data and 'latest_order_id' in extracted_data:
        print(f"\n 抽出された注文番号: {extracted_data['latest_order_id']}")
    else:
        print("\n抽出データが見つかりませんでした。")

except Exception as e:
    print(f"\n エラーが発生しました: {e}")

# 実際のコードは公式ドキュメントを参照してください。

Skyvernは、「壊れないRPA(ロボティック・プロセス・オートメーション)」を実現する、エンジニアにとって非常に魅力的なツールと言えるでしょう。


Skyvern-AI/skyvern




現場直結!Difyで始めるプロダクションレディなエージェントワークフロー入門

(現場は薄暗い取り調べ室。刑事役の私と、容疑者役のDifyが向かい合っています)私(刑事) さて、Difyくん。キミは一体何者なんだ?「Production-ready platform for agentic workflow development」… ソフトウェアエンジニアにとって、どういう意味があるのか、正直に話してもらおうか!


ソフトウェア開発を加速するDocsGPT:ハルシネーション回避で信頼度UP

DocsGPTは、あなたの持つドキュメントや知識ベースから、信頼性の高い情報を引き出すためのオープンソースツールです。よくある生成AIの課題である「ハルシネーション(AIが事実ではない情報を生成すること)」を避け、プライベートな情報源から正確な答えを導き出すことに特化しています。


クレーンゲームの達人から学ぶ!「Resume Matcher」で理想の転職を掴み取れ

やぁ、未来のトップエンジニアの卵たち!そして、今まさにキャリアアップを目指す現役エンジニアの皆さん!突然ですが、皆さん、クレーンゲームは得意ですか? 私はですねぇ、昔からどうも苦手でして…。アームが掴んだと思ったら、スルッと落ちていくあの絶望感、たまらないですよねぇ(白目)。


PDFの壁を打ち破る:数式・表・多段組対応のデータ抽出ツール MinerUの威力

ホテルのコンシェルジュのように、このツールをどのように活用できるか、導入方法、そしてサンプルコードまで、分かりやすく丁寧にご案内しますね。MinerUは、一言でいうと「複雑なPDFなどの非構造化データを、大規模言語モデル(LLM)がすぐに使える、構造化されたデータ(MarkdownやJSON)に魔法のように変換してくれる」Pythonライブラリです。


PythonでAzureを料理する:SDKで始めるクラウド開発

このSDKは、Pythonのコードから直接Azureの様々なサービス(仮想マシン、ストレージ、データベースなど)を操作するためのライブラリ群です。まるで、ラーメンの具材(Azureのサービス)を自在に操るための、最高の調理器具セットのようなものです。


【エンジニア必見】面倒な認証はComposioに丸投げ!800以上のツールとAIを繋ぐ方法

AIに「何かやっといて」と言っても、「やり方は知っていますが、ボタンは押せません」なんて言われたら、喉ごしが悪いですからね。アサヒ(キレ担当) 「おい、最近のAIエージェント、頭ばっかり良くなって行動が伴ってないんじゃないか? 喉ごし(UX)がガツンと来ないんだよ!」


ソフトウェアエンジニアのためのtheHarvester入門: セキュリティとOSINT活用法

今日はlaramies/theHarvesterについて、ソフトウェアエンジニアの皆さんに役立つ情報をお届けしますね!theHarvesterは、まるで雲の中から雨粒を探すように、インターネットの広大な情報の中から、メールアドレスやサブドメインといった貴重な情報を収集してくれる、とっても賢いツールなんです


あなたのサービス品質向上に貢献:qeeqbox/social-analyzer導入とAPI連携の具体例

このツールは、指定されたユーザー名が、1000以上のソーシャルメディアやウェブサイトで利用されているかどうかを、効率的かつ広範囲にわたって調査・分析するためのものです。Node. js、JavaScript、Pythonに対応しており、API、CLI(コマンドラインインターフェース)、そしてウェブアプリとして利用できます。


ソフトウェアエンジニア必見!ランジェリーショップで学ぶワークフロー自動化

彼女がランジェリーショップで悩んでいる、というシチュエーションでActivepiecesについて解説しますね。彼女がランジェリーショップで「どれがいいかなぁ…」と悩んでいると想像してください。 店員さんに「お客様、何かお困りですか?」と尋ねられても、「いや、大丈夫です!」と答えて、結局買わずに帰る…なんてこと、よくありますよね?