ブラウザワークフローの堅牢性を高める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」… ソフトウェアエンジニアにとって、どういう意味があるのか、正直に話してもらおうか!


IBM/mcp-context-forge入門:LLMアプリケーション開発を加速する秘訣

まず、大前提として、mcp-context-forgeは、大規模言語モデル(LLM)アプリケーションを開発する際に、その管理を効率化し、開発を円滑に進めるためのツールです。マクドナルドのハンバーガーとケンタッキーのフライドチキンのような関係、という例えについて考えてみましょう。


デジタル製品・SaaS開発を加速するオープンソース決済エンジン「Polar」

Polar は、デジタル製品やSaaSを販売するためのオープンソースのエンジンだよ。簡単に言うと、開発者が決済機能やサブスクリプションの管理、ユーザー管理などをイチから作る手間を省き、本業である製品開発に集中できるようにサポートしてくれるツールなの。


AIアプリケーション開発のためのレシピブック

今日は「Haystack」という、AIの世界で最近話題の新しいカクテルを紹介させてください。これ、ただのAIじゃなくて、色々なAIの材料を組み合わせて、お客様の好みにぴったりの一杯を作り出すためのツールなんです。ソフトウェアエンジニアの視点から言えば、Haystackは例えるなら「AIアプリケーション開発のためのシェイカーとレシピブック」です。


MCP時代の到来: Klavis-AI/klavisを使いこなし、マルチツールAIエージェントを爆速開発する方法

突然ですが、「AIエージェントに、もっとたくさんのツールを使わせたい!」 と思ったことはありませんか? 今、AIは賢くなっていますが、私たちが日常的に使うような様々なSaaSツール(例Slack、Trello、GitHubなど)を、AIが安定して操作するのは意外と難しいんです。


【入門】onyx-dot-app/onyxで始めるAIチャットボット開発

ソフトウェアエンジニアの視点から、onyx-dot-app/onyxがどのように役立つか、導入方法、サンプルコードについて、真面目に、分かりやすく説明するね。onyx-dot-app/onyxは、AIを活用したチャットアプリケーションを構築するためのオープンソースプラットフォームなんだ。これを導入するメリットは、主に次の3つだよ。


爆速&美しく。Typstベースの rendercv で職務経歴書更新の「クレーンゲーム」を完全攻略

エンジニアにとって、職務経歴書(CV)の更新は、景品口ギリギリにある大きなぬいぐるみ(=内定)を狙うようなものです。rendercv は、その景品を確実に仕留めるための「最強のアーム」になってくれます。普通のクレーンゲーム(Wordやデザインツールでの作成)は、見た目を整えるのに苦労して、肝心の中身がズレたり、PDFにしたらレイアウトが崩れたりしますよね。


ソフトウェアエンジニア必見!WhatsApp-Web.jsで業務を自動化する魔法

ソフトウェアエンジニアの視点から見ると、このライブラリは、単なるメッセージのやり取りを超えた、多岐にわたる用途で役立ちます。このライブラリは、WhatsAppの公式APIではなく、WhatsApp Webの仕組みを利用しています。このため、公式APIではできないような、より柔軟な操作が可能になります。


APIリスト「public-apis/public-apis」で始めるプログラミング入門

このリポジトリは、開発者がAPIを探す手間を大幅に省きます。特に以下のような点で役立ちます。開発効率の向上 ゼロから機能を実装する代わりに、既存のAPIを利用することで開発時間を短縮できます。たとえば、天気情報を表示する機能が必要な場合、自分で気象データを収集・解析する代わりに、天気予報APIを使うことができます。