Blog / AI
AI

将 Qwen-Agent 与 MCP 集成,构建可访问实时数据的代理

将 Qwen-Agent 与 Bright Data MCP 服务器连接,通过实时网络数据检索和自动化为人工智能代理提供动力。
6 分钟阅读
Qwen-Agent 与 Bright Data 的 MCP

在本指南中,您将了解到

  • Qwen-Agent 库是什么,它如何帮助您构建人工智能代理。
  • 为什么使用 Qwen3 和 Bright Data MCP 服务器是创建下一代人工智能代理的理想选择?
  • 如何将 Qwen-Agent 与 Bright Data 的 MCP 集成,以构建由 Qwen3 支持的合格代理。

让我们深入了解一下!

什么是 Qwen-Agent?

Qwen-Agent是阿里巴巴云开发的一个开源框架,用于构建由 LLM 驱动的高级应用。它利用 Qwen 模型的功能创建人工智能代理,支持指令跟踪、工具使用、规划和内存管理。

该库主要用作Qwen Chat 的后台。它为构建人工智能代理提供了核心组件,并为函数和工具调用(甚至通过 MCP(模型上下文协议))提供本地支持。

无论是通过阿里云的 DashScope 服务还是自托管的 Qwen 模型,Qwen-Agent 都能实现灵活的模型部署。它还包括一个基于 Gradio 的 Web UI,用于在浏览器中快速部署和测试代理。

为什么要将 Qwen3 与 Qwen-Agent 中的 MCP 服务器相结合

Qwen3是阿里云开发的最新机型。它性能强大,而且开源,可通过多个在线提供商免费获取(您甚至可以自行托管!)。因此,它是构建经济高效、功能强大的人工智能代理的理想选择。

现在,由 Qwen3 支持并使用 Qwen-Agent 构建的人工智能代理已经具备了能力。不过,它们仍然继承了底层 LLM 的局限性。这些局限性(如无法获取实时信息)可以通过为代理提供准确数据并使其能够执行实时网络探索来克服。

这就是 Bright Data MCP 服务器的用武之地。MCP 服务器基于 Node.js 构建,与Bright Data 的人工智能数据检索工具套件集成。通过这些工具,您的代理可获得访问实时网络内容、查询结构化数据集和执行实时网络搜刮的能力。

目前,支持的 MCP 工具

工具 说明
search_engine 从 Google、Bing 或 Yandex 抓取搜索结果。以 markdown 格式(URL、标题、描述)返回 SERP 结果。
scrape_as_markdown 抓取单个网页,并以 Markdown 格式返回提取的内容。即使是受僵尸保护或验证码保护的网页也能正常运行。
scrape_as_html 同上,但返回原始 HTML 内容。
session_stats 提供当前会话期间工具使用情况的摘要。
web_data_amazon_product 使用/dp/URL 检索结构化亚马逊产品数据。由于有缓存,因此比刮擦更可靠。
web_data_amazon_product_reviews 使用/dp/URL 检索结构化亚马逊评论数据。缓存且可靠。
web_data_linkedin_person_profile 访问结构化的 LinkedIn 个人资料数据。高速缓存,保证一致性和速度。
web_data_linkedin_company_profile 访问结构化的 LinkedIn 公司数据。缓存版本提高了可靠性。
web_data_zoominfo_company_profile 读取结构化的 ZoomInfo 公司数据。需要有效的 ZoomInfo URL。
web_data_instagram_profiles 结构化 Instagram 个人资料数据。需要有效的 Instagram URL。
web_data_instagram_posts 检索 Instagram 帖子的结构化数据。
web_data_instagram_reels 检索 Instagram 卷轴的结构化数据。
web_data_instagram_comments 以结构化数据形式检索 Instagram 评论。
web_data_facebook_posts 访问 Facebook 帖子的结构化数据。
web_data_facebook_marketplace_listings 从 Facebook Marketplace 检索结构化列表。
web_data_facebook_company_reviews 检索 Facebook 公司评论。需要公司 URL 和评论数量。
web_data_x_posts 从 X(原 Twitter)帖子中检索结构化数据。
web_data_zillow_properties_listing 访问结构化的 Zillow 房源数据。
web_data_booking_hotel_listings 从 Booking.com 检索结构化酒店列表。
web_data_youtube_videos 结构化 YouTube 视频数据。需要有效的视频 URL。
scraping_browser_navigate 将刮擦浏览器导航到新的 URL。
scraping_browser_go_back 返回上一页。
scraping_browser_go_forward 在浏览器历史记录中向前浏览。
scraping_browser_click 点击页面上的特定元素。需要使用元素选择器。
scraping_browser_links 读取当前页面上的所有链接及其选择器和文本。
scraping_browser_type 模拟在输入框中输入文本。
scraping_browser_wait_for 等待特定元素变为可见。
scraping_browser_screenshot 给当前页面截图。
scraping_browser_get_html 读取当前页面的 HTML 全文。如果不需要完整页面内容,请谨慎使用。
scraping_browser_get_text 读取当前页面的可见文本内容。

要了解一些实际案例,请阅读我们的MCP 服务器刮擦指南,或了解它如何与 Google SDK 等工具集成

:Bright Data 将继续扩展 MCP 工具集,因此,随着时间的推移,您将获得更多的功能。

现在来看看如何通过 Qwen3 和 Qwen-Agent 使用这些 MCP 工具!

如何用 Python 将 Qwen-Agent 与 Bright MCP 服务器整合在一起

在本节中,您将学习如何使用 Qwen-Agent 构建一个由 Qwen3 支持的强大 Python AI 代理。该代理将通过 Bright Data MCP 服务器具备实时数据搜刮、检索和转换功能。

举例来说,我们将展示人工智能代理如何从亚马逊检索实时产品数据,而亚马逊因其刮擦难题而闻名。请注意,这只是一个可能的用例。人工智能代理可以利用 MCP 服务器提供的 20 多种工具中的任何一种来处理各种任务。

:只需给人工智能代理不同的提示,就能完成任何其他场景或用例

请按照以下步骤使用 Qwen-Agent 和 Qwen 3 构建由 Bright Data MCP 驱动的人工智能代理!

先决条件

要学习本教程,您必须具备以下条件:

您还需要

  • 一个 Bright Data 账户。
  • OpenRouter API 密钥。

下面的步骤将指导您在需要时设置 Bright Data 和 OpenRouter 凭据。因此,现在不用担心这些问题。

以下知识虽然不是必需的,但可以帮助您从本教程中获得最大收益:

  • 大致了解 MCP 的工作原理。
  • 基本熟悉 Qwen Agent 的功能。
  • 对 Bright Data MCP 服务器及其可用工具有一定了解。
  • 具有一定的Python 异步编程经验。

步骤 #1:项目设置

打开终端,为你的 MCP 驱动的人工智能代理创建一个新文件夹:

mkdir qwen-agent-mcp

qwen-agent-mcp文件夹将包含 Python 人工智能代理的所有代码。

接下来,导航进入项目文件夹,并在其中创建一个虚拟环境

cd qwen-agent-mcp
python -m venv venv

在你喜欢的 Python IDE 中打开项目文件夹。我们建议使用带有 Python 扩展的 Visual Studio CodePyCharm Community Edition

在项目文件夹中创建名为agent.py 的文件,该文件现在应该是这个样子:

Qwen-Agent MCP 代理项目的文件结构

agent.py文件目前是空的,但很快就会包含将 Qwen3 与 Bright Data MCP 服务器整合的逻辑。

使用集成开发环境中的终端激活虚拟环境。在 Linux 或 macOS 中,执行此命令:

source venv/bin/activate

同样,在 Windows 上,启动

venv/Scripts/activate

一切就绪!现在您有了一个 Python 环境,可以使用 Qwen-Agent 和 Bright Data MCP 服务器构建一个人工智能代理。

步骤 #2:设置环境变量 阅读

您的项目将与 OpenRouter 和 Bright Data 等第三方服务交互。避免在 Python 代码中硬编码 API 密钥。相反,从环境变量中加载它们可以获得更好的安全性和可维护性。

为了简化这一过程,我们将利用python-dotenv库。激活虚拟环境后,运行以下命令进行安装:

pip install python-dotenv

接下来,在agent.py文件中导入该库,并使用load_dotenv() 加载环境变量:

from dotenv import load_dotenv

load_dotenv()

这样,脚本就能从本地.env文件读取环境变量。因此,请在项目文件夹中创建一个.env文件:

嵌套代理文件夹中的 .env 文件

现在,您可以像这样在代码中访问环境变量:

env_value = os.getenv("<ENV_NAME>")

不要忘记从 Python 标准库中导入os模块:

import os

太好了!现在你已经可以从环境变量中安全加载秘密了。

步骤 #3:开始使用 Google ADK

在已激活的虚拟环境中,运行Qwen-Agent 程序库以安装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 服务器,并实施人工智能代理。

默认情况下,Qwen-Agent 希望在您的环境中使用DashScope API 密钥来访问 Qwen 模型。不过,在本教程中,我们将通过免费的 OpenRouter 平台使用 Qwen3。

⚠️警告:您可能会问,为什么我们不使用阿里云的 DashScope 直接访问 Qwen3。原因是,截至本文撰写之时,国际用户(即中国以外的用户)受到了限制。这些限制目前会导致以下错误信息(有些误导性):

Error code: InvalidApiKey. Error message: Invalid API-key provided.

为了避免这个问题,您可以使用 OpenRouter 或任何其他不受区域限制的平台来访问 Qwen3。

现在让我们来了解一下如何设置 OpenRouter API 密钥以集成 Qwen3!

步骤 #4:获取 OpenRouter API 密钥

如果尚未注册,请注册 OpenRouter 账户。如果您已经有一个,只需登录即可。

接下来,将鼠标悬停在右上角的个人资料图片上,选择 “密钥 “选项,即可进入 “API 密钥 “页面:

OpenRouter 平台中的 "API 密钥 "页面

点击 “创建 API 密钥 “按钮,然后按照说明生成密钥。然后,复制密钥并将其添加到.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 帐户]() 或直接登录您的现有帐户。

接下来,请按照官方说明进行操作:

  1. 读取您的 Bright Data API 令牌。
  2. 配置 Web Unlocker 和 Scraping Browser,以便集成 MCP。

完成后,您就可以

  • 一个 Bright Data API 令牌。
  • 一个 Web 解锁区(在此,我们假设该区名称为默认的 “mcp_unlocker”)。
  • <BRIGHT_DATA_SB_USERNAME>:<BRIGHT_DATA_SB_PASSWORD> 格式抓取浏览器凭证。

现在,在 Node.js 环境中全局安装Bright Data MCP 服务器

npm install -g @brightdata/mcp

然后,确保在终端中指定两个环境:

API_TOKEN="<YOUR_BRIGHT_DATA_API_TOKEN>"
BROWSER_AUTH="<BRIGHT_DATA_SB_USERNAME>:<BRIGHT_DATA_SB_PASSWORD>"

根据操作系统,按照正确的程序定义环境变量。

现在,您可以使用@brightdata/mcpnpm 软件包启动 MCP 服务器:

npx -y @brightdata/mcp

该命令在本地启动 MCP 服务器,读取所需的环境变量(API_TOKENBROWSER_AUTH)。如果一切配置正确,就会出现如下输出:

Checking for required zones...
Required zone "mcp_unlocker" already exists
Starting server...

干得漂亮Bright Data MCP 服务器运行得非常好。

然后,将这两个环境变量添加到.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 支持初始化人工智能代理:

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 的访问。
  • 工具阵列定义了如何连接到 Bright Data MCP 服务器,使人工智能代理能够调用外部数据检索工具。
  • 最后,Qwen-Agent 提供的Assistant()类用于定义与 LLM 和工具集成的人工智能代理。

就是这样!有了 Qwen-Agent,只需几行代码就能将 MCP 集成到您的人工智能代理中。

步骤 #7:启动 Qwen3 MCP 代理

agent.py中添加以下代码,在 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()

任务完成!只剩下测试代码和看看人工智能代理的能力了。

步骤 #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 驱动的人工智能代理。

执行人工智能代理:

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 服务器已启动并运行,人工智能代理已连接并可访问http://127.0.0.1:7860。在浏览器中访问该 URL,即可通过 Gradio Web UI 与代理互动。

例如,试着向它提出这样的提示:

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

这是一个很好的测试,可以验证人工智能代理能否从亚马逊 PS5 产品页面获取实时数据(从而利用/学习这些数据):

亚马逊 PS5 页面

在用户界面中运行此提示时,应该会出现以下情况:

在 Qwen-Agent 中执行亚马逊数据提取请求

首先,请注意右侧面板上列出了所有可用的 Bright Data MCP 服务器工具。此外,请看 Qwen-Agent 如何使用 Bright Data MCP 服务器中的web_data_amazon_product工具来满足请求。

您可以通过查看界面中的弹出列表来验证这一点,该列表显示了工具的执行结果:

查看 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...
}

现在,这个简单的例子展示了人工智能代理的强大功能。它可以从任何网站即时提取结构化数据。这非常适合实时搜索、RAG(检索增强生成)和最新决策。

更妙的是,代理还可以使用代理浏览器(以前的抓取浏览器)直接与网页交互,从而实现高级自动化和复杂的工作流程。

就是这样!这就是 Qwen3 + MCP 与 Qwen-Agent 集成的威力,可用于构建下一代人工智能代理。

结论

在这篇博文中,您将了解到如何使用 Qwen-Agent 库结合 Qwen3 和 Bright Data MCP 在 Python 中构建一个功能强大的人工智能代理。

如图所示,将功能丰富的 MCP 服务器与 Qwen-Agent 集成后,您的人工智能代理就能从网络上检索实时数据并自主执行高级任务。这只是 Bright Data 工具如何为智能、自动化人工智能工作流程提供动力的一个例子。

探索我们人工智能基础设施中的解决方案:

  • 自主人工智能代理:使用一套功能强大的应用程序接口,实时搜索、访问任何网站并与之互动。
  • 垂直 AI 应用程序:建立可靠的自定义数据管道,从特定行业来源提取网络数据。
  • 基础模型:访问符合要求的网络规模数据集,以便进行预训练、评估和微调。
  • 多模态人工智能:利用世界上最大的图像、视频和音频资源库,为人工智能进行优化。
  • 数据提供商:与值得信赖的提供商建立联系,大规模获取高质量的人工智能就绪数据集。
  • 数据包:获取精心策划、随时可用、结构化、丰富和注释的数据集。

如需了解更多信息,请访问我们的人工智能中心

创建 Bright Data 帐户,试用我们为人工智能代理开发提供的所有产品和服务!

支持支付宝等多种支付方式