AI

Bright DataのComposio接続を活用し、より強力なAIエージェントを実現

Bright DataのウェブスクレイピングツールをComposioに連携させることで、リアルタイムデータアクセスと自動化されたウェブ操作を実現し、強力なAIエージェント構築方法を学びましょう。
2 分読
Bright Data with Composio

このチュートリアルでは以下を確認します:

  • Composioとは何か、そしてAIエージェント構築におけるその独自の機能について。
  • Composio経由でAIエージェントをBright Dataに接続する利点。
  • Composioで利用可能なBright Dataツールの一覧。
  • ComposioとOpenAIエージェントを活用し、Bright DataでAIエージェントを強化する方法。

さっそく見ていきましょう!

Composioとは?

Composio
Composioは、AIエージェントやLLMが現実世界のツールと連携することを可能にするオールインワンプラットフォームです。具体的には、870以上のツールキットとのプラグアンドプレイ統合を提供し、認証、トリガー、APIマッピングを自動的に処理します。

Composioはクラウドインフラストラクチャで稼働しています。また、GitHubリポジトリで26.4kスターを獲得しているオープンソースのPythonおよびTypeScript SDKによってサポートされています。これは、開発者コミュニティ内でAIエージェント構築へのこの新しいアプローチの人気と採用を示しています。

複数のフレームワークにまたがるエージェントと互換性があり、正確なツール呼び出しとリアルタイムの可観測性を保証します。主な機能には、マルチエージェントサポート、エージェントの使用に伴い進化するスキル、スケーリングのためのマネージドMCPゲートウェイ、SOC 2準拠のセキュリティが含まれます。

Composio経由でAIエージェントをBright Dataに接続する理由

Composioのようなソリューションの意義は単純明快です:LLMには本質的な限界があります。結局のところ、特定のツールが提供されない限り、LLMは外部世界と直接対話できません。ここにComposioの真価が発揮されます!

Composioは、AIエージェント向けに数百のプロバイダーからツールを発見・導入・活用するプロセスを大幅に簡素化します。LLMの最大の欠点は以下の通りです:

  1. トレーニングデータに基づいてのみ動作するため、モデル公開後すぐに情報が陳腐化する
  2. 今日、ほとんどの情報と価値が生み出されているウェブと直接やり取りできない。

これら2つの課題は、Composioで公式に利用可能なツールキットの一つであるBright DataでAIエージェントを強化することで解決できます。

Bright Dataソリューションにより、AIエージェントはウェブ検索、最新情報の取得、そしてそれとの対話が可能になります。これを実現するソリューションには以下のようなものがあります:

  • SERP API: Google、Bing、Yandexなどの検索エンジンから大規模に検索結果を取得し、ブロックされることなく利用可能。
  • Web Unlocker API:あらゆるウェブサイトにアクセスし、プロキシ、IPローテーション、フィンガープリント、CAPTCHAを自動処理したクリーンなHTMLまたはMarkdownを取得。
  • ウェブスクレイピングAPI:Amazon、LinkedIn、Yahoo Finance、Instagramなど100以上の人気プラットフォームから構造化データを取得。
  • その他ソリューション…

これらのサービスはComposio専用ツールとして提供され、サポートされているAIエージェント技術を使用して簡単に接続できます。

Composio–Bright Data接続:ツール一覧

Composioで利用可能なBright Dataツールは以下の通りです:

ツール 識別子 説明
サイトクロールをトリガー BRIGHTDATA_CRAWL_API 複数のページやドメイン全体からコンテンツを抽出するためのサイトクロールジョブをトリガーするツール。特定のデータセットやURLリストに対してクロールを開始する必要がある場合に使用します。
利用可能なスクレイパーを閲覧 BRIGHTDATA_DATASET_LIST Bright Dataのマーケットプレイスから利用可能なすべての事前作成済みスクレイパー(データセット)を一覧表示するツール。構造化スクレイピング用の利用可能なデータソースを閲覧する必要がある場合に使用します。
データセットのフィルタリング BRIGHTDATA_FILTER_DATASET マーケットプレイスのデータセットにカスタムフィルター条件を適用するツール(ベータ版)。データセット選択後に使用し、フィルター処理されたスナップショットを生成します。
利用可能な都市を取得 BRIGHTDATA_GET_LIST_OF_AVAILABLE_CITIES 指定した国で利用可能な静的ネットワーク都市を取得するツール。国を選択後、静的プロキシエンドポイントを構成する必要がある場合に使用します。
利用可能な国を取得 BRIGHTDATA_GET_LIST_OF_AVAILABLE_COUNTRIES 利用可能な国とそのISO 3166-1 alpha-2コードを一覧表示するツール。プロキシのプロビジョニング前に有効な国コードでゾーンを設定する必要がある場合に使用します。
スクレイピングデータのダウンロード BRIGHTDATA_GET_SNAPSHOT_RESULTS 完了したクロールジョブのスナップショットIDからスクレイピングデータを取得するツール。クロールをトリガーした後、またはデータセットをフィルタリングした後に収集データをダウンロードするために使用します。
クロールステータスの確認 BRIGHTDATA_GET_SNAPSHOT_STATUS スナップショットIDを使用してクロールジョブの処理ステータスを確認するツール。結果のダウンロードを試みる前に呼び出し、データ収集が完了していることを確認します。
アンロックゾーン一覧 BRIGHTDATA_LIST_WEB_UNLOCKER_ZONES 設定済みのWeb Unlockerゾーンとプロキシエンドポイントを一覧表示するツール。ウェブスクレイピングやボット保護バイパスに利用可能なゾーンを確認するために使用します。
SERP検索 BRIGHTDATA_SERP_SEARCH Bright DataのSERPスクレイプAPIを使用して、異なる検索エンジンでSERP(検索エンジン結果ページ)検索を実行するツール。検索結果、トレンドトピック、競合分析データの取得が必要な場合に使用します。このアクションは非同期リクエストを送信し、追跡用のレスポンスIDを返します。
Web Unlocker BRIGHTDATA_WEB_UNLOCKER ボット検知、キャプチャ、その他のスクレイピング対策機能を回避し、ウェブサイトからコンテンツを抽出するツール。自動アクセスをブロックする、またはJavaScriptレンダリングを必要とするウェブサイトのスクレイピングが必要な場合に使用します。

ComposioでBright Dataを活用したAIエージェントを構築する方法

このステップバイステップセクションでは、Composioを使用してBright DataをAIエージェントに統合する方法を学びます。具体的には、OpenAIエージェントでPythonのAIエージェントを駆動し、Composio SDKを通じてBright Dataに接続する方法を理解します。

以下の手順に従ってください!

前提条件

このチュートリアルを実行するには、以下の環境が整っていることを確認してください:

Bright Dataアカウントの設定およびAPIキーの生成に関する詳細は、Bright Data公式ドキュメントを参照してください

ステップ #1: OpenAI エージェントを使用した Composio の開始

アカウントをお持ちでない場合はComposioに登録するか、ログインしてください。「概要」ページが表示されます:
The Composio “Overview” page
このページでは、OpenAI Agents を使用して Composio と連携するシンプルな AI エージェントの設定手順を説明します。Web ダッシュボードでは、Claude Agents、LangChain、Vercel AI、その他複数のフレームワークを使用した例も提供されています。

本ガイドでは、OpenAI Agents SDK内でComposioを介してBright Dataに接続するAIエージェントを構築します。ただし、以下の例は他のサポート対象AIエージェントフレームワークにも容易に適用可能です。

Bright DataをOpenAI Agents SDKに直接統合する方法もご確認ください。

プロジェクト用フォルダを作成し、そのフォルダに移動します:

mkdir composio-bright-data-ai-agent
cd composio-bright-data-ai-agent

次に仮想環境を初期化します

python -m venv .venv

プロジェクトルートにagent.pyという新しいファイルを追加します。ディレクトリ構造は次のようになります:

composio-bright-data-ai-agent/
├── .venv/
└── agent.py

agent.pyファイルにはAIエージェントの定義ロジックが含まれます。

PyCharm Community EditionやPython拡張機能を搭載したVisual Studio Codeなど、お好みのPython IDEでプロジェクトフォルダを読み込みます。

次に、作成した仮想環境をアクティブ化します。LinuxまたはmacOSでは以下を実行:

source .venv/bin/activate

Windows では同等の操作として以下を実行します:

.venv/Scripts/activate

仮想環境をアクティブ化した状態で、「概要」ページに記載されている必要なPyPIパッケージをインストールします:

pip install composio composio-openai-agents openai-agents

このアプリケーションの依存関係は以下の通りです:

  • composio: Composioプラットフォームとの連携を可能にするPython SDK。ツールの実行、認証処理、AIフレームワークの統合を実現します。
  • composio-openai-agents: ComposioツールとOpenAI Agentsフレームワークを接続する統合レイヤー。シームレスなエージェントベースのワークフローを実現します。
  • openai-agents: OpenAI APIおよび100以上のLLMプロバイダーを横断するマルチエージェントワークフロー構築のための軽量でプロバイダー非依存のフレームワーク。

完了!これでComposio OpenAI Agentsプロジェクトが設定されました。

ステップ #2: 環境変数による API キー読み込みの設定

AIエージェントはComposioやOpenAIを含むサードパーティサービスに接続します。スクリプトに認証情報を直接ハードコーディングしないため、.envファイルからAPIキーを読み取るようエージェントを設定します。

アクティブ化した仮想環境内でpython-dotenvをインストールします:

pip install python-dotenv

agent.pyファイルの先頭に以下のインポートを追加します:

from dotenv import load_dotenv

次に、プロジェクトルートに.envファイルを作成します:

composio-bright-data-ai-agent/
├─── .venv/
├─── agent.py
└─── .env    # <-----

.envファイルにComposioとOpenAIのAPIキーを記述します:

COMPOSIO_API_KEY="<YOUR_COMPOSIO_API_KEY>"
OPENAI_API_KEY="<YOUR_OPENAI_API_KEY>"

プレースホルダーを実際のAPIキーで置き換えてください。Composio APIキーの場所がわからない場合は、アカウントの「設定」セクションで確認できます:
The Composio API key

最後に、agent.pyで環境変数をロードします:

load_dotenv()

これで完了です!スクリプトはコード内でシークレットを公開することなく、.envファイルから必要なシークレットを安全に読み込めるようになりました。

ステップ #3: Composio で Bright Data のツールキットを設定する

ComposioでBright Dataツールキットを設定するには、Composioダッシュボードでいくつかの手順を完了する必要があります。

まず、「Overview」タブ内の「Browser Toolkits」セクションをクリックします:
Selecting the “Browser Toolkits” section

Composioのツールキットページにリダイレクトされます:
The “All Toolkits” page in Composio

ここでは、Composioがサポートするすべての統合機能を閲覧できます。検索バーで「bright data」を検索し、対応するカードをクリックしてください:
Selecting the “Bright Data” toolkit card

Composio Bright Dataツールキットページが表示されます:
Pressing the “Add to Project” page
このページでは、利用可能なツールの確認、ドキュメントの閲覧、使用状況の詳細を確認できます。続行するには「プロジェクトに追加」ボタンをクリックしてください。

認証詳細の設定を求められたら:

準備が整ったら、「Bright Data認証設定を作成」をクリックして続行してください:
Clicking the “Create Bright Data Auth Config” button

Composio認証設定は、外部サービス向けの認証情報、認証方法、権限を安全に保存する再利用可能な設定です。AIエージェントはComposio SDK経由でこの認証設定を使用し、Bright Dataツールにプログラムで接続します。

素晴らしい!ComposioでBright Data統合を認証する段階です。

ステップ #4: Bright Data 統合の認証

ComposioにBright Dataツールキットを追加後、統合を正常に機能させるためBright Dataアカウントを接続する必要があります。これによりComposioはBright Dataのウェブスクレイピングおよびデータサービスにアクセスし、Composio SDK経由でAIエージェントに提供できるようになります。

Bright Dataアカウントを接続するには、該当する「認証設定」ページで「アカウント接続」ボタンをクリックします:
Pressing the “Connect Account” button

外部ユーザーIDが表示されます:
The Composio External User ID

この値をコピーし、Python変数としてagent.pyファイルに貼り付けます:

COMPOSIO_EXTERNAL_USER_ID = "<YOUR_COMPOSIO_EXTERNAL_USER_ID>"

Composioでは、ユーザーIDによって接続済みアカウントとアクセス可能なデータが決定されます。ツールの実行、認証リクエスト、アカウント操作のすべてにおいて、正しいコンテキストを識別するためのuserIdが必要です。基本的にユーザーIDは、ツールキット全体で接続済みアカウントをグループ化するコンテナとして機能します。個人ユーザー、チーム、さらには組織全体を表すことも可能です。

次に「アカウント接続」をクリックして続行します。Bright Data APIキーの入力が求められます:
Authenticating the connection to your Bright Data account

Bright Data APIキーを貼り付け、「アカウントを接続」ボタンをクリックして接続を完了してください。完了後、「接続済みアカウント」タブにステータス「ACTIVE」の接続済みアカウントが表示されます:
The Bright Data account connection

これでComposioがBright Data APIキーによる認証に成功したことを確認できます。Bright DataツールキットがAIエージェントで使用可能になりました!

「プレイグラウンド」機能でComposioウェブアプリ内から直接連携をテストすることも可能です:
The “Playground” feature
素晴らしい!Bright DataがComposioに完全に認証・統合されました。

ステップ #5: Composioセッションの初期化

これで、OpenAIエージェントベースのAIエージェントをComposio SDK経由でBright Dataに接続する準備が整いました。

まず、OpenAI AgentsプロバイダーでComposioを初期化します:

from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider

# OpenAI AgentsプロバイダーでComposioを初期化
composio = Composio(provider=OpenAIAgentsProvider())

:Composioコンストラクタは自動的にCOMPOSIO_API_KEY環境変数(既に設定済み)を検索し、認証に使用します。代わりに、api_key引数でAPIキーを明示的に渡すことも可能です。

次に、Bright Data 統合に限定したツールルーターセッションを作成します:

# Tool Routerセッションの作成
session = composio.create(
    user_id=COMPOSIO_EXTERNAL_USER_ID,
    toolkits=["brightdata"],
    auth_configs={"brightdata": "ac_XXXXXXXXX"}, # Bright Dataツールキットの認証設定IDに置き換えてください
)

Tool Routerは、AIエージェント内でツールを駆動するComposioの最新かつデフォルトの方法です。エージェントが利用可能なツールを発見し、使用するツールを計画し、認証を処理し、数千のComposio統合にわたってアクションを実行することを可能にする統一インターフェースです。エージェントのコンテキストを圧迫することなく、これらのタスクをバックグラウンドで管理する一連のメタツールを公開します。

composio.create()メソッドはツールルーターセッションを初期化し、エージェントが動作するコンテキストを定義します。デフォルトではエージェントは全てのComposioツールキットにアクセス可能で、使用したいツールの認証は実行時にプロンプトで求められます。

ただし今回は、ComposioダッシュボードでBright Dataを既に設定済みのため、コード内で明示的に接続する必要があります。その方法は以下の通りです:

  • ツールキット引数に「brightdata」を指定する(これはComposio Bright Dataツールキットの公式スラッグです)。
  • auth_configs内で 「brightdata」をその認証設定ID(Auth Config ID)にマッピングする。

この情報(スラッグ+認証設定ID)の所在が不明な場合は、ComposioダッシュボードのBright Dataツールキット用「Auth Configs」ページで確認できます:
The Auth Config ID and toolkit slug

:Composioでは、Auth Config IDは「ac」プレフィックスで始まります。また、ツールキットのスラッグは大文字小文字を区別しないため、「BRIGHTDATA」「brightdata」は同等です。

これで、Bright Data が正しく接続されていることを確認できます:

toolkits = session.toolkits()
for toolkit in toolkits.items:
    print(toolkit.name)
    print(toolkit.connection)

結果は次のようになります:

Bright Data
ToolkitConnection(is_active=True, auth_config=ToolkitConnectionAuthConfig(id='ac_XXXXXXXXX', mode='API_KEY', is_composio_managed=False), connected_account=ToolkitConnectedAccount(id='ca_YYYYYYYY', status='ACTIVE'))

これにより以下が確認されます:

  • ツールキット接続がアクティブであること。
  • 接続済みアカウントのステータスはACTIVEです

つまり、Composio SDKがBright Data統合に正常に接続され、ツールキットがAIエージェントで使用可能な状態になりました。素晴らしい!

ステップ #6: AIエージェントの定義

Composio Tool Routerセッションが与えられた状態で、利用可能なツールを取得するには以下を実行します:

tools = session.tools()

これらのツールを以下の通りOpenAI AIエージェントに渡します:

from agents import Agent

agent = Agent(
    name="Web Data Assistant",
    instructions=(
        "あなたはBright Dataのツールキットにアクセスできる便利なアシスタントです。
        ウェブスクレイピング、データアクセス、Web Unlockerに対応しています。"
    ),
    model="gpt-5-mini",
    tools=tools,
)

これにより、GPT-5 miniモデルを搭載し、Bright Dataツールとの統合を完全に認識したWebデータアシスタントが作成されます。

: OpenAIアカウントへの認証は自動的に行われます。OpenAI Agents SDKがOPENAI_API_KEY環境変数(事前に設定済み)を検索するためです。

ミッション完了!これで、Composioを介してBright Dataと簡素化された方法で統合するOpenAI搭載のAIエージェントが完成しました。あとは実際のシナリオでテストするだけです。

ステップ #7: エージェントの実行

AIエージェントが機能することを確認するには、ウェブデータへのアクセスを必要とするタスクを実行させる必要があります。例えば、特定の製品のレビューから感情分析を行うなど、一般的なマーケティングシナリオを処理するよう依頼できます。

ここでは、Composio製品自体のG2レビューに焦点を当てます。タスクを以下のように指定します:

task = """"
1. 最適なスクレイパー/データセットを使用して、以下のG2 URLからレビューを取得する:
'https://www.g2.com/products/composio/reviews'
2. スナップショットの準備が整うまで待機し、ポーリングを続ける。
3. 収集した全データを含むスナップショットを取得する。
4. レビューと取得した情報を分析する。
5. 以下の内容を含む構造化されたMarkdownレポートを提供する:
   - レビューからの直接引用を含む感情分析セクション
   - 改善のための実践可能な洞察と推奨事項
"""

これは、ライブのG2レビューにアクセスできない標準的なLLMでは不可能です。さらに、G2は強力なボット対策のためスクレイピングが特に困難なことで知られています。

代わりに、AIエージェントには以下の動作が期待されます:

  1. Bright Dataのツールを呼び出し、このシナリオに最適なスクレイパー(例:Bright Data G2 Scraper)を選択する。
  2. 対象G2 URLに対してスクレイパーを実行する。
  3. 専用ツールを使用して待機し、スクレイピングされたレビューを含む結果のスナップショットをポーリングする。
  4. スナップショットを分析し、最終的な構造化レポートを生成する。

エージェントの実行方法:

import asyncio
from agents import Runner

# AIエージェントを実行
async def main():
    result = Runner.run_streamed(
        starting_agent=agent,
        input=task,
        max_turns=50 # スナップショットが10回以上(デフォルトmax_turns)のツール呼び出しを確認するため、ブロック回避のため
    )

    # エージェント結果をターミナルにストリーム出力
    async for event in result.stream_events():
        # ストリーム出力されるモデル出力を表示
        if event.type == "raw_response_event":
            # イベントに出力テキストデータ(response.output_text.delta)があるか確認
            if event.data.type == "response.output_text.delta":
                print(event.data.delta, end="", flush=True)

asyncio.run(main())

完璧です!Composio + Bright Data AIエージェントが完成しました。

ステップ #8: 全てを統合する

agent.pyファイルの内容は以下の通りです:

import asyncio
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider
from agents import Agent, Runner
from dotenv import load_dotenv

# .envファイルから環境変数をロード
load_dotenv()

# Composio外部ユーザーID
COMPOSIO_EXTERNAL_USER_ID = "pg-YYYYYYYYYYYYYYYYYYYYYYYYYYYYY" # 自身のComposioユーザーIDに置き換えてください

# OpenAI AgentsプロバイダーでComposioを初期化
composio = Composio(provider=OpenAIAgentsProvider())

# Tool Router セッションを作成
session = composio.create(
    user_id=COMPOSIO_EXTERNAL_USER_ID,
    toolkits=["brightdata"],
    auth_configs={"brightdata": "ac_XXXXXXXXX"}, # Bright Data ツールキットの認証設定 ID に置き換えてください
)

# Composioツールにアクセス
tools = session.tools()

# OpenAI Agents SDKを使用してツール付きAIエージェントを作成
agent = Agent(
    name="Web Data Assistant",
    instructions=(
        "あなたはBright Dataのツールキットにアクセス可能な便利なアシスタントです。
        ウェブスクレイピング、データアクセス、ウェブアンロックに対応しています。"
    ),
    model="gpt-5-mini",
    tools=tools,)


# G2からの最新ウェブデータを用いた感情分析タスクの説明
task = """"
1. 最適なスクレイパー/データセットを使用して、以下のG2 URLからレビューを取得する:
'https://www.g2.com/products/composio/reviews'
2. スナップショットの準備が整うまで待機し、ポーリングを続ける。
3. 収集した全データを含むスナップショットを取得する。
4. レビューと取得した情報を分析する。
5. 以下の内容を含む構造化されたMarkdownレポートを提供する:
   - レビューからの直接引用を含む感情分析セクション
   - 改善のための実践可能な洞察と推奨事項
"""

# AIエージェントを実行
async def main():
    result = Runner.run_streamed(
        starting_agent=agent,
        input=task,
        max_turns=50 # スナップショットが10回以上(デフォルトmax_turns)のツール呼び出しをチェックするため、ブロック回避のため
    )

    # エージェント結果をターミナルにストリーム出力
    async for event in result.stream_events():
        # ストリーミング中のモデル出力テキストを出力
        if event.type == "raw_response_event":
            # イベントに出力テキストデータ(response.output_text.delta)があるか確認
            if event.data.type == "response.output_text.delta":
                print(event.data.delta, end="", flush=True)

asyncio.run(main())

アクティブ化した仮想環境で、以下を実行して起動:

python agent.py 

エージェントはBright Dataサービス経由で必要なデータを自律的に取得するため、多少の時間がかかります。完了後、ターミナルに直接Markdownレポートをストリーミング表示します:
A portion of the Markdown report result produced by the agent

この出力をMarkdownビューアにコピー&ペーストすると、以下のような表示になります:
Exploring the Markdown report

レポートは長文で正確であり、実際のG2レビューからの引用で裏付けられています:
The G2 reviews from the target page

背景で何が起こったかをより深く理解するには、Composioアカウントの「Logs」タブを確認してください:

エージェントが以下を呼び出したことが確認できます:

  1. Composio Bright Dataの「利用可能なスクレイパーを閲覧」ツール(BRIGHTDATA_DATASET_LIST)を呼び出し、利用可能な全スクレイピングAPIとデータセットのリストを取得しました。
  2. Composio Bright Dataの「サイトクロールをトリガー」ツール(BRIGHTDATA_CRAWL_API)を呼び出し、指定URLでG2スクレイパーを起動。これによりBright Dataクラウド上で非同期のウェブスクレイピングタスクが開始されました。
  3. Composio Bright Dataの「スクレイピング済みデータをダウンロード」ツール(BRIGHTDATA_GET_SNAPSHOT_RESULTS)が、収集データを含むスナップショットの準備が整うまでポーリングを継続しました。

これはまさに期待される動作であり、AIエージェントがBright Dataと正常に統合されたことを確認しています。

さあ、完成です!わずか65行ほどのコードで、Composioで利用可能なすべてのBright Dataソリューションと完全に連携するAIエージェントを構築しました。

G2レビューの感情分析は、Bright Dataのウェブデータツールがサポートする数多くのユースケースの1つに過ぎません。プロンプトを調整して他のシナリオをテストしComposioのドキュメントを参照してより高度な機能を発見し、エージェントを本番環境対応にしましょう!

まとめ

本ブログ記事では、Composioによって簡素化されたOpenAI Agents SDKで構築したAIエージェントにBright Dataの機能を有効化する方法を解説しました。

この統合により、AIエージェントは以下のことが可能になりました:

  1. Bright Dataが提供する多数のウェブスクレイパーの中から適切なものを自動的に発見
  2. ウェブデータ取得ツールを実行する。
  3. ウェブから構造化データを取得する
  4. 処理を行い、最新の実情報に基づいた豊富なコンテキストを含むレポートを生成する。

これはあくまで一例です。Bright DataのAIのためのデータとフルサービススイートを活用すれば、AIエージェントに複雑なウェブ操作の自動化を任せられます!

今すぐBright Dataアカウントを無料で作成し、AI対応のウェブデータツールで構築を始めましょう!