このガイドで、あなたは学ぶことができる:
- Qwen-Agentライブラリはどのようなもので、AIエージェントの構築にどのように役立つのか。
- Qwen3とBright Data MCPサーバーの組み合わせが、次世代AIエージェントの開発に最適な理由。
- Qwen-AgentとBright DataのMCPを統合し、Qwen3による有能なエージェントを構築する方法。
さあ、飛び込もう!
Qwen-Agentとは何ですか?
Qwen-AgentはAlibaba Cloudが開発したオープンソースのフレームワークで、高度なLLMを搭載したアプリケーションを構築するためのものです。Qwenモデルの機能を活用し、命令追従、ツールの使用、プランニング、メモリ管理をサポートするAIエージェントを作成します。
このライブラリは、特にQwen Chat のバックエンドとして機能します。AIエージェントを構築するためのコアコンポーネントを提供し、MCP(モデルコンテキストプロトコル)経由でも関数やツールの呼び出しをネイティブサポートしています。
Qwen-Agent は、Alibaba Cloud の DashScope サービス、またはセルフホスト Qwen モデルを問わず、柔軟なモデル展開を可能にします。また、ブラウザ上でエージェントを迅速にデプロイし、テストするためのGradio ベースの Web UIも含まれています。
Qwen3 と Qwen-Agent の MCP サーバーを組み合わせる理由
Qwen3はAlibaba Cloudが開発した最新モデルだ。強力なパフォーマンスを発揮し、オープンソースであるため、複数のオンラインプロバイダーから無料で入手できる(セルフホストも可能!)。そのため、費用対効果が高く、しかも強力なAIエージェントを構築するのに理想的な選択肢となっている。
現在、Qwen3を搭載し、Qwen-Agentで構築されたAIエージェントはすでに有能である。しかし、基礎となるLLMの限界を引き継いでいる。これらの制限(リアルタイムの情報にアクセスできないなど)は、エージェントに正確なデータを提供し、ライブでウェブ探索を実行できるようにすることで克服できる。
そこで、Bright Data MCPサーバーの登場です。Node.js上に構築されたMCPサーバーは、Bright DataのAIデータ検索ツール群と統合されています。これらのツールにより、エージェントはリアルタイムのウェブコンテンツへのアクセス、構造化されたデータセットへのクエリ、ライブウェブスクレイピングを実行できるようになります。
現在、サポートされているMCPツールは以下の通り:
工具 | 説明 |
---|---|
検索エンジン |
Google、Bing、Yandexの検索結果をスクレイピング。SERPの結果をマークダウン形式で返します(URL、タイトル、説明)。 |
scrape_as_markdown |
1つのウェブページをスクレイピングし、抽出したコンテンツをMarkdown形式で返します。ボットで保護されたページやCAPTCHAで保護されたページでも動作します。 |
scrape_as_html |
上記と同じですが、コンテンツを生のHTMLで返します。 |
セッション統計 |
現在のセッションにおけるツールの使用状況の概要を提供する。 |
ウェブ_データ_アマゾン_商品 |
構造化されたAmazon商品データを/dp/ URLを使って取得する。キャッシュによりスクレイピングよりも信頼性が高い。 |
web_data_amazon_product_reviews |
dp/ URLを使用して構造化されたAmazonレビューデータを取得します。キャッシュされ、信頼できる。 |
web_data_linkedin_person_profile(ウェブデータ・リンケディン・パーソン・プロフィール |
構造化されたLinkedInプロフィールデータにアクセス。一貫性とスピードのためにキャッシュされます。 |
web_data_linkedin_会社概要 |
LinkedInの構造化された企業データにアクセス。キャッシュバージョンで信頼性が向上。 |
web_data_zoominfo_会社概要 |
構造化された ZoomInfo 企業データを取得します。有効な ZoomInfo URL が必要です。 |
ウェブ_データ_インスタグラム_プロフィール |
構造化されたインスタグラムのプロフィールデータ。有効なInstagramのURLが必要です。 |
ウェブ_データ_インスタグラム_投稿 |
Instagramの投稿の構造化データを取得する。 |
ウェブ_データ_インスタグラム_リール |
インスタグラムのリールの構造化データを取得する。 |
ウェブ_データ_インスタグラム_コメント |
インスタグラムのコメントを構造化データとして取得する。 |
ウェブデータ_facebook_posts |
Facebook投稿の構造化データにアクセス |
ウェブデータ_facebook_マーケットプレイス_リスティング |
Facebook Marketplaceから構造化されたリストを取得します。 |
web_data_facebook_企業レビュー |
Facebookの企業レビューを取得する。会社のURLとレビュー数が必要です。 |
web_data_x_posts |
X(旧Twitter)の投稿から構造化データを取得する。 |
ウェブデータ・ジロー物件リスト |
構造化されたZillowの物件データにアクセス。 |
web_data_booking_hotel_listings |
Booking.comから構造化されたホテルのリストを取得します。 |
web_data_youtube_videos |
構造化されたYouTube動画データ。有効な動画 URL が必要です。 |
スクレイピング_ブラウザ_ナビゲート |
スクレイピング・ブラウザを新しいURLに移動する。 |
スクレイピング_ブラウザ_ゴーバック |
前のページに戻る。 |
スクレイピング_ブラウザ_ゴーフォワード |
ブラウザの履歴を進む。 |
スクレイピング_ブラウザ_クリック |
ページ上の特定の要素をクリックする。要素セレクタが必要です。 |
スクレイピング_ブラウザリンク |
現在のページにあるすべてのリンクを、セレクタとテキストとともに取得する。 |
スクレイピング・ブラウザ・タイプ |
入力フィールドにテキストを入力するシミュレーション。 |
スクレイピング・ブラウザ・ウェイト・フォー |
特定の要素が表示されるのを待つ。 |
スクレイピング_ブラウザ_スクリーンショット |
現在のページのスクリーンショットを撮る。 |
スクレイピング_ブラウザ_get_html |
現在のページの完全なHTMLを取得する。ページ全体のコンテンツが不要な場合は、注意して使用すること。 |
スクレイピング_ブラウザ_テキスト取得 |
現在のページの可視テキストコンテンツを取得する。 |
実例については、MCPサーバーを使用したスクレイピングに関するガイドをお読みいただくか、Google SDKのようなツールとの統合方法をご覧ください。
注:Bright Dataは、MCPツールセットを継続的に拡張しています。
では、Qwen3 を通してこれらの MCP ツールを Qwen-Agent でどのように使用できるかを見てみましょう!
Python で Qwen-Agent と Bright MCP Server を統合する方法
このセクションでは、Qwen-Agent を使用して、Qwen3 を搭載した強力な Python AI エージェントを構築する方法を学びます。このエージェントは、Bright Data MCP サーバを介したライブデータスクレイピング、検索、変換機能を備えています。
例として、AIエージェントが、スクレイピングの難しさで知られるアマゾンから生きた商品データを取得する方法を紹介する。これは可能性のあるユースケースの一つに過ぎない。AIエージェントは、MCPサーバーを通じて利用可能な20以上のツールのいずれかを活用して、多種多様なタスクを処理することができる。
注:AIエージェントに異なるプロンプトを与えるだけで、他のシナリオやユースケースを達成することができます。
以下の手順に従って、Qwen-Agent と Qwen 3 を使用して Bright Data MCP を搭載した AI エージェントを構築してください!
前提条件
このチュートリアルに従うには、以下のものが必要です:
- Python 3.10以上をローカルにインストール。
- Node.jsをローカルにインストール。
これも必要だ:
- ブライトデータのアカウント。
- OpenRouter API キー。
以下のステップでは、Bright DataとOpenRouterの両方の認証情報を必要なときに設定する方法を説明します。ですから、今は心配しないでください。
必須ではありませんが、以下の知識はこのチュートリアルを最大限に活用するのに役立ちます:
- MCPの仕組みについての一般的な理解。
- Qwen Agentの基本的な機能を理解していること。
- Bright Data MCPサーバーとその利用可能なツールについてある程度の知識があること。
- Pythonでの非同期プログラミングの経験。
ステップ1:プロジェクトのセットアップ
ターミナルを開き、MCPを搭載したAIエージェント用の新しいフォルダを作成する:
mkdir qwen-agent-mcp
qwen-agent-mcp
フォルダには、Python AI エージェントのすべてのコードが格納されます。
次に、プロジェクトフォルダーに移動し、その中に仮想環境を作成する:
cd qwen-agent-mcp
python -m venv venv
お好みのPython IDEでプロジェクトフォルダを開きます。Python拡張機能付きのVisual Studio CodeまたはPyCharm Community Editionを使用することを推奨します。
プロジェクトフォルダ内にagent.pyという
ファイルを作成します:
agent.py
ファイルは現在空ですが、近日中にQwen3とBright Data MCPサーバーを統合するためのロジックを含む予定です。
IDEのターミナルを使用して仮想環境をアクティブにします。LinuxまたはmacOSでは、次のコマンドを実行する:
source venv/bin/activate
同様に、Windowsでは、起動します:
venv/Scripts/activate
これで準備完了です!これでQwen-AgentとBright Data MCPサーバーを使用したAIエージェントを構築するためのPython環境が整いました。
ステップ2:環境変数の設定 読み込み
あなたのプロジェクトは、OpenRouterやBright Dataのようなサードパーティのサービスとやり取りします。API キーを Python コードにハードコードするのは避けましょう。代わりに、より良いセキュリティと保守性のために、環境変数からロードしてください。
このプロセスを簡単にするために、python-dotenv
ライブラリを利用します。仮想環境を起動した状態で、python-dotenv ライブラリをインストールします:
pip install python-dotenv
次に、agent.py
ファイルでライブラリをインポートし、load_dotenv()
で環境変数をロードします:
from dotenv import load_dotenv
load_dotenv()
これにより、スクリプトはローカルの.env
ファイルから環境変数を読み込むことができるようになります。それでは、プロジェクトフォルダー内に.env
ファイルを作成してください:
これで、コードの中で次のように環境変数にアクセスできる:
env_value = os.getenv("<ENV_NAME>")
Python標準ライブラリからos
モジュールをインポートすることを忘れないでください:
import os
素晴らしい!これで環境変数から秘密を安全にロードするための準備が整った。
ステップ #3: Google ADKを使い始める
起動した仮想環境で、Qwen-Agentライブラリをインストールしてください:
pip install "qwen-agent[gui,mcp]"
qwen-agent
はいくつかのオプションのサブモジュールをサポートしていることに注意してください。このチュートリアルでは、この二つで十分です:
[gui]
はGradioベースのユーザーインターフェース。[mcp]
はMCPサーバーと統合するためのものです。
次に、agent.py
ファイルを開き、以下のインポートを含めます:
from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI
これらは、次のステップで Qwen-Agent と MCP サーバを接続し、AI エージェントを実装するために使用されます。
デフォルトでは、Qwen-Agent は、Qwen モデルにアクセスするためのDashScope API キーを使用します。しかし、このチュートリアルでは、無料の OpenRouter プラットフォーム経由で Qwen3 を使用します。
⚠️警告:なぜアリババクラウドのDashScopeを使ってQwen3に直接アクセスしないのか不思議に思われるかもしれません。その理由は、この記事を書いている時点では、海外ユーザー(つまり中国国外のユーザー)には制限があるからです。この制限により、現在以下のような(やや誤解を招く)エラーメッセージが表示されます:
Error code: InvalidApiKey. Error message: Invalid API-key provided.
この問題を回避するには、OpenRouterや、地域制限なしにQwen3へのアクセスを提供する他のプラットフォームに頼ることができます。
それでは、Qwen3統合のためのOpenRouter APIキーの設定方法を説明しましょう!
ステップ #4: OpenRouter API キーを取得する
まだの場合は、OpenRouterアカウントにサインアップしてください。すでにお持ちの場合は、ログインするだけです。
次に、右上のプロフィール画像にカーソルを合わせ、”Keys “オプションを選択して “API Keys “ページに移動します:
Create API Key “ボタンをクリックし、指示に従ってキーを生成します。そのキーをコピーして、.env
ファイルに追加します:
OPEN_ROUTER_API_KEY="<YOUR_OPEN_ROUTER_API_KEY>"
プレースホルダを プレースホルダを実際の OpenRouter API キーに置き換えます。
次に、agent.py
ファイルでキーをロードします:
OPEN_ROUTER_API_KEY = os.getenv("OPEN_ROUTER_API_KEY")
素晴らしい!これで OpenRouter 経由で Qwen3 と Qwen-Agent を使う準備ができました。
ステップ#5: Bright Data MCPサーバーのセットアップ
まずは[Bright Dataアカウントを新規作成]() するか、既存のアカウントにログインしてください。
次に、公式の指示に従って次のことを行う:
- Bright Data API トークンを取得します。
- ウェブアンロッカーとスクレイピングブラウザをMCP統合用に設定する。
それが終われば、あなたはこうなるはずだ:
- Bright Data APIトークン。
- Web Unlockerゾーン(ここでは、ゾーン名をデフォルトの “mcp_unlocker “とする)。
<BRIGHT_DATA_SB_USERNAME>:<BRIGHT_DATA_SB_PASSWORD>の
形式でブラウザの認証情報をスクレイピングする。
次に、Bright Data MCPサーバーをNode.js環境にグローバルにインストールします:
npm install -g @brightdata/mcp
次に、ターミナルで2つの環境を指定する:
API_TOKEN="<YOUR_BRIGHT_DATA_API_TOKEN>"
BROWSER_AUTH="<BRIGHT_DATA_SB_USERNAME>:<BRIGHT_DATA_SB_PASSWORD>"
オペレーティング・システムに応じて、正しい手順で環境変数を定義してください。
これで、@brightdata/mcp
npmパッケージを使ってMCPサーバーを起動できる:
npx -y @brightdata/mcp
このコマンドはMCPサーバーをローカルに起動し、必要な環境変数(API_TOKENと
BROWSER_AUTH
)を読み込みます。すべてが正しく設定されていれば、次のような出力が表示されるはずです:
Checking for required zones...
Required zone "mcp_unlocker" already exists
Starting server...
よくやったブライト・データのMCPサーバーは魅力的に機能する。
次に、この2つの環境変数を.env
ファイルに追加する:
BRIGHT_DATA_API_TOKEN="<YOUR_BRIGHT_DATA_API_TOKEN>"
BRIGHT_DATA_BROWSER_AUTH="<BRIGHT_DATA_SB_USERNAME>:<BRIGHT_DATA_SB_PASSWORD>"
プレースホルダーを実際の値に置き換える。
agent.pyで
、これらの変数をロードします:
BRIGHT_DATA_API_TOKEN = os.getenv("BRIGHT_DATA_API_TOKEN")
BRIGHT_DATA_BROWSER_AUTH = os.getenv("BRIGHT_DATA_BROWSER_AUTH")
完璧です!これで、Bright Data MCP サーバと Qwen-Agent を統合するためのすべての設定が完了しました。
ステップ6: Qwen3 MCP対応エージェントの定義
Qwen3とMCPをサポートするAIエージェントを初期化する関数を作成します:
def initialize_mcp_agent():
# To connect to Qwen3 via OpenRouter
llm_cfg = {
"model": "qwen/qwen3-32b:free",
"model_server": "https://openrouter.ai/api/v1",
"api_key": OPEN_ROUTER_API_KEY,
}
# To connect to the Bright Data MCP server
tools = [{
"mcpServers": {
"brightdata": {
"command": "npx",
"args": ["-y", "@brightdata/mcp"],
"env": {
"API_TOKEN": BRIGHT_DATA_API_TOKEN,
"BROWSER_AUTH": BRIGHT_DATA_BROWSER_AUTH,
}
}
}
}]
# Define the Qwen-Agent assistant with MCP integration
agent = Assistant(
llm=llm_cfg,
function_list=tools,
name="MCP-Powered Assistant with Access to Live Data",
description="This agent can answer questions by retrieving up-to-date information from the Internet using configured MCP tools"
)
return agent
ご覧のように、上のコードでは
llm_cfg
辞書は、OpenRouter API 経由で Qwen3 の無料版へのアクセスを設定します。tools
配列は、Bright Data MCPサーバーへの接続方法を定義し、AIエージェントが外部のデータ検索ツールを呼び出せるようにします。- 最後に、Qwen-Agentが提供する
Assistant()
クラスを使用して、LLMとツールの両方を統合したAIエージェントを定義します。
これです!Qwen-Agentのおかげで、MCPをAIエージェントに統合するのに数行のコードで済みます。
ステップ #7: Qwen3 MCPエージェントの起動
agent.pyに
以下のコードを追加して、定義されたAIエージェントをGradioインターフェースで実行します:
if __name__ == "__main__":
# Initialize the MCP-powered agent
mcp_agent = initialize_mcp_agent()
# Launch the Gradio-based web UI to interact with the AI agent in the browser
WebUI(mcp_agent).run()
ミッションは完了した!あとはコードをテストして、AIエージェントの能力を見るだけだ。
ステップ8:すべてをまとめる
これがagent.pyの
最後のコードです:
from dotenv import load_dotenv
import os
from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI
# Load the environment variables from the .env file
load_dotenv()
# Read the API key from OpenRouter to use Qwen3
OPEN_ROUTER_API_KEY = os.getenv("OPEN_ROUTER_API_KEY")
# Read the envs for integration with the Bright Data MCP server
BRIGHT_DATA_API_TOKEN = os.getenv("BRIGHT_DATA_API_TOKEN")
BRIGHT_DATA_BROWSER_AUTH = os.getenv("BRIGHT_DATA_BROWSER_AUTH")
# Define the agent with Qwen 3 and MCP configuration
def initialize_mcp_agent():
# To connect to Qwen3 via OpenRouter
llm_cfg = {
"model": "qwen/qwen3-32b:free",
"model_server": "https://openrouter.ai/api/v1",
"api_key": OPEN_ROUTER_API_KEY,
}
# To connect to the Bright Data MCP server
tools = [{
"mcpServers": {
"brightdata": {
"command": "npx",
"args": ["-y", "@brightdata/mcp"],
"env": {
"API_TOKEN": BRIGHT_DATA_API_TOKEN,
"BROWSER_AUTH": BRIGHT_DATA_BROWSER_AUTH,
}
}
}
}]
# Define the Qwen-Agent assistant with MCP integration
agent = Assistant(
llm=llm_cfg,
function_list=tools,
name="MCP-Powered Assistant with Access to Live Data",
description="This agent can answer questions by retrieving up-to-date information from the Internet using configured MCP tools"
)
return agent
if __name__ == "__main__":
# Initialize the MCP-powered agent
mcp_agent = initialize_mcp_agent()
# Launch the Gradio-based web UI to interact with the AI agent in the browser
WebUI(mcp_agent).run()
すごい!Qwen-AgentとOpenRouterのおかげで、わずか50行程度のコードで、強力なMCP搭載AIエージェントを構築できる。
でAIエージェントを実行する:
python agent.py
ターミナルには、以下のような出力が表示されるはずだ:
2025-05-27 15:40:58,783 - mcp_manager.py - 122 - INFO - Initializing MCP tools from mcp servers: ['brightdata']
2025-05-27 15:40:58,800 - mcp_manager.py - 340 - INFO - Initializing a MCP stdio_client, if this takes forever, please check the config of this mcp server: brightdata
2025-05-27 15:41:01,098 - mcp_manager.py - 350 - INFO - No list resources: Method not found
* Running on local URL: http://127.0.0.1:7860
これは、MCP サーバーが稼働し、AI エージェントがhttp://127.0.0.1:7860
に接続され、アクセス可能であることを示します。
GradioのウェブUIを通じてエージェントと対話するには、ブラウザでそのURLにアクセスしてください。
例えば、次のようなプロンプトを出してみてください:
From the Amazon product page "https://www.amazon.com/PlayStation%C2%AE5-console-slim-PlayStation-5/dp/B0CL61F39H/", extract the main info and return it in JSON format
これは、AIエージェントがアマゾンのPS5の商品ページからリアルタイムのデータを取得できるかどうか(したがって、そこから利用/学習できるかどうか)を検証するための素晴らしいテストである:
このプロンプトをUIで実行すると、次のようになるはずだ:
まず、右側のパネルに利用可能な Bright Data MCP サーバツールのリストがあることに注意してください。また、Qwen-Agent がどのように Bright Data MCP サーバからweb_data_amazon_product
ツールを使用して要求を満たすかを見てください。
ツールの実行結果を示すインターフェイスの箇条書きリストをチェックすることで、それを確認することができる:
最終的なJSON出力は次のようになる:
{
"title": "PlayStation®5 console (slim)",
"url": "https://www.amazon.com/PlayStation%C2%AE5-console-slim-PlayStation-5/dp/B0CL61F39H",
"brand": "Sony",
"model_number": "CFI-2015",
"price": {
"currency": "USD",
"final_price": 499
},
"availability": "In Stock",
"rating": 4.7,
"reviews_count": 6824,
"description": "The PS5 console unleashes new gaming possibilities that you never anticipated. Experience lightning fast loading with an ultra-high speed SSD, deeper immersion with support for haptic feedback, adaptive triggers, and 3D Audio*, and an all-new generation of incredible PlayStation games...",
"key_features": [
"Custom CPU, GPU, and SSD with Integrated I/O",
"Support for haptic feedback, adaptive triggers, and 3D Audio",
"Backward compatibility with PS4 games",
"1TB SSD and 10.6 lb console weight",
"Includes DualSense Wireless Controller"
],
"delivery_info": "FREE delivery Sunday, June 1. Or Prime members get FREE Same-Day delivery Today 10 AM - 3 PM.",
"images": [
"https://m.media-amazon.com/images/I/41ECK5cY-2L.SL1000.jpg",
"https://m.media-amazon.com/images/I/41srF-iY93L.SL1000.jpg"
// more image URLs...
],
"product_details": {
"ASIN": "B0CL61F39H",
"Release Date": "December 10, 2023",
"Dimensions": "14 x 17 x 7 inches",
"Weight": "10.6 pounds",
"Best Seller Rank": "#18 in Video Games",
"Manufacturer": "Sony"
},
// omitted for brevity...
}
さて、この単純な例は、あなたのAIエージェントがいかに強力であるかを示している。このAIエージェントは、あらゆるサイトから生きた構造化データをその場で抽出することができる。これは、ライブ検索、RAG(Retrieval-Augmented Generation)、最新の意思決定に最適です。
さらに良いことに、エージェントはAgent Browser(以前はScraping Browser)を使ってウェブページと直接やりとりすることもでき、高度な自動化と複雑なワークフローを可能にします。
これで出来上がりです!これが、Qwen3 + MCP と Qwen-Agent の統合による、次世代 AI エージェント構築のパワーです。
結論
このブログ記事では、Qwen3とBright Data MCPを組み合わせたQwen-Agentライブラリを使用して、Pythonで強力なAIエージェントを構築する方法を学びました。
このように、機能豊富な MCP サーバーを Qwen-Agent と統合することで、AI エージェントがウェブからリアルタイムのデータを取得し、高度なタスクを自律的に実行できるようになります。これは、Bright Dataのツールがインテリジェントな自動AIワークフローをどのように強化できるかの一例に過ぎません。
AIインフラストラクチャのソリューションをご覧ください:
- 自律型AIエージェント:強力なAPIセットを使って、あらゆるウェブサイトをリアルタイムで検索、アクセス、対話。
- 業種別AIアプリ:信頼性の高いカスタムデータパイプラインを構築し、業種固有のソースからウェブデータを抽出します。
- 基礎モデル:ウェブスケールのデータセットにアクセスし、事前学習、評価、微調整を行うことができます。
- マルチモーダルAI:AIに最適化された世界最大の画像、動画、音声のリポジトリを利用できます。
- データプロバイダー:信頼できるプロバイダーと接続し、高品質でAIに対応したデータセットを大規模に調達。
- データパッケージ:キュレーションされた、すぐに使える、構造化された、エンリッチされた、注釈付きのデータセットを入手。
詳しくはAIハブをご覧ください。
ブライトデータのアカウントを作成し、AIエージェント開発のためのすべての製品とサービスをお試しください!
クレジットカードは必要ありません