ソフトウェアエンジニア必見!AI搭載ブラウザ自動化「Stagehand」徹底解説


ソフトウェアエンジニア必見!AI搭載ブラウザ自動化「Stagehand」徹底解説

browserbase/stagehand

2025-07-18

「browserbase/stagehand」は、AI(人工知能)と既存のブラウザ自動化ツール(Selenium、Playwrightなど)の強みを組み合わせた、まさに"goated"とも言えるフレームワークです。これまでのツールが抱えていた「UI変更に弱い」「コードが複雑になりがち」といった課題を解決し、より堅牢で、より人間らしい操作が可能なブラウザ自動化を実現します。

堅牢性の向上 従来のツールでは、ウェブサイトのUIが少し変わるだけで自動化スクリプトが動かなくなってしまうことが多々ありました。StagehandはAIを活用することで、こうしたDOMの変更に強く、"自己修復"するような自動化を可能にします。これにより、メンテナンスの手間が大幅に削減されます。

自然言語での操作とコードの融合 Stagehandは、AIエージェントを使って自然言語でブラウザを操作できる一方で、PlaywrightのAPIもそのまま利用できます。これにより、ウェブサイトの構造が予測できる部分はコードで正確に記述し、AIに探索させたい部分は自然言語で指示するといった、柔軟な開発が可能になります。

データ抽出の進化 extractメソッドを使うと、自然言語で「このページから〇〇を抽出して」と指示するだけで、必要なデータを構造化された形式(Zodスキーマと連携可能)で取得できます。これはウェブスクレイピングの概念を大きく変えるでしょう。

AIエージェントの活用 stagehand.agent()を使用することで、OpenAIやAnthropicなどの最先端のコンピュータ使用モデルを簡単に統合し、複雑なマルチステップのタスクを自動実行させることが可能です。

開発体験の向上 Playwrightの上に構築されているため、多くの開発者にとって馴染みやすいAPIを提供します。また、アクションのプレビューやキャッシュ機能、詳細なロギング機能なども備わっており、デバッグや開発効率が向上します。

StagehandはJavaScript/TypeScriptとPythonの両方をサポートしています。

TypeScript/Node.jsの場合(推奨)

新しいプロジェクトを作成する場合、以下のコマンドが非常に便利です。

npx create-browser-app

既存のプロジェクトに導入する場合は、npm、pnpm、またはyarnでパッケージを追加します。

npm install @browserbasehq/stagehand
# または
pnpm add @browserbasehq/stagehand
# または
yarn add @browserbasehq/stagehand

Pythonの場合

pipを使ってインストールします。

pip install stagehand-py

環境変数の設定が必要です。.envファイルを作成するか、環境変数として設定します。

export BROWSERBASE_API_KEY="your-api-key"
export BROWSERBASE_PROJECT_ID="your-project-id"
export MODEL_API_KEY="your-openai-api-key" # または利用するモデルのAPIキー

ここではPythonの例を挙げますが、JavaScript/TypeScriptでも同様のロジックで利用できます。

簡単なブラウザ操作とデータ抽出の例

import os
import asyncio
from stagehand import Stagehand, StagehandConfig
from dotenv import load_dotenv
from pydantic import BaseModel # ZodスキーマのPython版に相当

load_dotenv()

# データ抽出用のスキーマを定義
class Book(BaseModel):
    title: str
    price: str
    image: str
    inStock: str
    link: str

class ScrapedBooks(BaseModel):
    books: list[Book]

async def main():
    config = StagehandConfig(
        env="BROWSERBASE", # ローカルで実行する場合は "LOCAL"
        api_key=os.getenv("BROWSERBASE_API_KEY"),
        project_id=os.getenv("BROWSERBASE_PROJECT_ID"),
        model_name="gpt-4o", # 使用するAIモデルを指定
        model_client_options={"apiKey": os.getenv("MODEL_API_KEY")}
    )
    stagehand = Stagehand(config)

    try:
        await stagehand.init()
        page = stagehand.page

        # ウェブサイトに移動
        await page.goto("https://books.toscrape.com/")

        # 自然言語とスキーマを使ってデータを抽出
        scrape_result = await page.extract(
            instruction="Extract the books from the page",
            schema=ScrapedBooks.model_json_schema() # PydanticスキーマをJSONスキーマに変換して渡す
        )

        print(scrape_result.books)

    finally:
        await stagehand.close()

if __name__ == "__main__":
    asyncio.run(main())

このコードでは、page.goto()で指定のURLに移動し、page.extract()を使ってウェブページから書籍情報を自然言語の指示と定義したスキーマに基づいて抽出しています。これにより、要素セレクタの変更に左右されにくい、よりインテリジェントなデータ抽出が実現できます。

Stagehandは、ブラウザ自動化の可能性を大きく広げる画期的なフレームワークです。ぜひあなたのプロジェクトに導入し、そのパワーを体験してみてください!

Stagehand 公式ドキュメント
What is Stagehand? - Stagehand

Stagehand GitHubリポジトリ
browserbase/stagehand: The AI Browser Automation Framework


browserbase/stagehand




AIの思考が丸見えに! ヒューマン・イン・ザ・ループを実現する新世代Webエージェントフレームワーク

「microsoft/magentic-ui」っていう、なんともセクシーで未来的な響きのこのプロジェクト、ウチの可愛いエンジニアちゃんたちから見て、どう役立つのか、ママがとびっきり分かりやすく、そして優しく教えてあげるわね。これはね、Microsoftが研究プロトタイプとして公開している、「人間中心のウェブエージェント」を作るためのフレームワークなの。


ソフトウェアエンジニアが知っておくべき「HumanLayer」の安全設計

「HumanLayer」と聞くと、なんだかSF映画に出てくる怪しげなテクノロジーのように聞こえるかもしれませんね。まるで、AIが未来を占ってくれるけど、本当に信じていいの?と不安になるような…(笑)。でも、心配ご無用!これは決して怪しい占いではありません。むしろ、AIがより安全に、そして信頼できる形で「現実世界」と関わるための、とても重要な「安全装置」なんです。


ランジェリーショップで学ぶ!AIアプリ開発の成功事例集

彼女さんが最高のランジェリーを選ぼうと一生懸命悩んでいるように、私たちソフトウェアエンジニアも、最高のシステムをどうやって作るか、日々頭を悩ませています。 そんな時に役立つのが、今回ご紹介する「Arindam200/awesome-ai-apps」なんです。


ソフトウェアエンジニア必見!CrewAIでAIを協調させる方法

今回は、ソフトウェアエンジニアのみんなに超ホットなライブラリを紹介するぜ。その名も. .. CrewAI!CrewAIは、AIエージェントたちをDJのように華麗にミックスして、ひとつのクルーとして協調させるためのフレームワークなんだ。ただのAIじゃなくて、それぞれの得意分野を持ったプロフェッショナルたちを束ねて、まるでチーム開発みたいに複雑なタスクをこなさせることができるんだぜ。


電気代だけで動く自動調査員!Fosowl/agenticSeekで開発タスクを効率化

Fosowl/agenticSeek、これはまるで、プログラミングの世界であなたの冒険(プロジェクト)を自動で進めてくれる賢い仲間(エージェント)を、完全にローカル(あなたの本拠地)に呼び出す魔法のようなものです。これが、ソフトウェアエンジニアであるあなたにとって、どのように役立つのかを解説しましょう!


AI開発の炎上を鎮火!Genkitで叶える、コード中心のAIアプリケーション構築

炎上プロジェクトにアサインされた君、お疲れ様!「AI機能を組み込め」という無茶振りをされ、途方に暮れているかもしれない。でも安心してほしい。AI開発の複雑な問題を一気に解決してくれる、心強い味方が現れた。それが、今回解説する Genkit だ。


「6行で実現」AIエージェントに"長期記憶"を持たせる方法:topoteretes/cognee徹底解説

topoteretes/cognee は、AIエージェントに「記憶(Memory)」を持たせるためのオープンソースフレームワークです。特に注目すべきは、開発元が謳っているように、「6行のコードでAIエージェントの記憶を実現」というシンプルさと手軽さです。


ベテランも驚愕!次世代エージェント「シシュポス」の導入ガイダンス

若手 デカ長!とんでもないブツを見つけました。これはただのAIライブラリじゃありません。「自分と同じようにコードを書く」をコンセプトにした、TypeScript製の最強エージェント・ハーネス(基盤)です!ベテラン フン、AIがコードを書くだと? 現場の苦労も知らねえで……。で、具体的に何ができるんだ?


ソフトウェアエンジニア必見!MindsDBでAIとデータの壁をぶち破れ!

エンジニアの皆さん、お待たせしました!あなたの開発運を爆上げするMindsDBを、血液型別のエンジニアタイプに合わせてご紹介します。さあ、あなたの血液型は?A型エンジニアの特性 計画的で真面目、そして細部までこだわる完璧主義者。MindsDBはA型エンジニアにどう役立つ?