在本指南中,您将了解到
- 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 工具有
工具 | 说明 |
---|---|
|
从 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 驱动的人工智能代理!
先决条件
要学习本教程,您必须具备以下条件:
- 本地已安装Python 3.10 或更高版本。
- 本地已安装Node.js。
您还需要
- 一个 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 Code或PyCharm Community Edition。
在项目文件夹中创建名为agent.py 的
文件,该文件现在应该是这个样子:
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_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 密钥 “页面:
点击 “创建 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 帐户]() 或直接登录您的现有帐户。
接下来,请按照官方说明进行操作:
- 读取您的 Bright Data API 令牌。
- 配置 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/mcp
npm 软件包启动 MCP 服务器:
npx -y @brightdata/mcp
该命令在本地启动 MCP 服务器,读取所需的环境变量(API_TOKEN
和BROWSER_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 产品页面获取实时数据(从而利用/学习这些数据):
在用户界面中运行此提示时,应该会出现以下情况:
首先,请注意右侧面板上列出了所有可用的 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...
}
现在,这个简单的例子展示了人工智能代理的强大功能。它可以从任何网站即时提取结构化数据。这非常适合实时搜索、RAG(检索增强生成)和最新决策。
更妙的是,代理还可以使用代理浏览器(以前的抓取浏览器)直接与网页交互,从而实现高级自动化和复杂的工作流程。
就是这样!这就是 Qwen3 + MCP 与 Qwen-Agent 集成的威力,可用于构建下一代人工智能代理。
结论
在这篇博文中,您将了解到如何使用 Qwen-Agent 库结合 Qwen3 和 Bright Data MCP 在 Python 中构建一个功能强大的人工智能代理。
如图所示,将功能丰富的 MCP 服务器与 Qwen-Agent 集成后,您的人工智能代理就能从网络上检索实时数据并自主执行高级任务。这只是 Bright Data 工具如何为智能、自动化人工智能工作流程提供动力的一个例子。
探索我们人工智能基础设施中的解决方案:
- 自主人工智能代理:使用一套功能强大的应用程序接口,实时搜索、访问任何网站并与之互动。
- 垂直 AI 应用程序:建立可靠的自定义数据管道,从特定行业来源提取网络数据。
- 基础模型:访问符合要求的网络规模数据集,以便进行预训练、评估和微调。
- 多模态人工智能:利用世界上最大的图像、视频和音频资源库,为人工智能进行优化。
- 数据提供商:与值得信赖的提供商建立联系,大规模获取高质量的人工智能就绪数据集。
- 数据包:获取精心策划、随时可用、结构化、丰富和注释的数据集。
如需了解更多信息,请访问我们的人工智能中心。
创建 Bright Data 帐户,试用我们为人工智能代理开发提供的所有产品和服务!
支持支付宝等多种支付方式