Qwen3+Qwen Agent +MCP智能体开发实战(二)—10分钟打造“MiniManus“_qwen3 agent

前言

上篇文章Qwen3 + Qwen Agent实战:解锁大模型MCP开发新范式(一)介绍了如何利用阿里发布的Qwen3系列大模型和Qwen-Agent工具快速接入MCP服务端。同时上篇文章通过SQLite数据库AI Agent开发案例带大家贯通了从Qwen3模型API Key注册、Qwen-Agent基本使用和Qwen-Agent接入mcp-server-sqlite的完整开发流程。然而,Qwen-Agent除了具备极强工具调用和接入能力,更有完备的UI展示和用户体验。有不少读者也在后台私信想复现Qwen3官网的github统计分析项目,本期分享就和大家一起利用Qwen-Agent 接入 MCP 10分钟完成项目开发,打造属于你的"MiniManus"~
在这里插入图片描述

一、项目准备

1.1 开发环境依赖

编写该项目前我们需要完成如下准备工作:

  1. 注册Qwen3 API Key (阿里百炼大模型云服务平台
  2. 使用conda创建虚拟环境,安装uvQwen-Agent等python库。

以上环境全部步骤已在我的文章Qwen3 + Qwen Agent实战:解锁大模型MCP开发新范式(一)中详细说明,大家可阅读操作~

1.2 Firecrawl MCP Server接入

要完成github收藏量统计分析项目的开发,我们首先需要一个可以爬取网页的MCP服务器,我这里选择的是Firecrawl MCP Server。 该MCP Server实现了与Firecrawl工具的集成以支持网页抓取搜索、内容提取、批量爬取等功能。Firecrawl MCP Server使用需要以下几步:

  1. 打开Firecrawl登录页,这里可以选择github账号登录。
    在这里插入图片描述

  2. 注册成功后点击左边栏API Keys, 可以看到Firecrawl默认已经创建了一个api_key

在这里插入图片描述

二、代码编写

完成Firecrawl api key的注册之后就可以着手开发AI Agent项目。使用Qwen-Agent开发MCP项目流程特别简单,仅需如下几步,完整代码在: https://codecopy.cn/post/nttt97

  1. 导入相关包并初始化Assistant类, 编写firecrawl-mcp mcp server的json schema配置传入tools参数:
from qwen_agent.agents import Assistant
from qwen_agent.utils.output_beautify import typewriter_print

def init_agent_service():
    llm_cfg = {
        'model': 'qwen3-235b-a22b',
        'model_server': 'dashscope',
        'api_key': '你注册的百炼api key',
        'generate_cfg': {
            'top_p': 0.8
        }
    }

    tools = [{
        "mcpServers": {
            "firecrawl-mcp": {
                "command": "npx",
                "args": ["-y", "firecrawl-mcp"],
                "env": {
                    "FIRECRAWL_API_KEY": "你注册的Firecrawl api key"
                },
            },
        },

    },
    ]

    system = """
        你是一个数据分析师,可以提取网页信息进行数据分析
        """

    bot = Assistant(
        llm=llm_cfg,
        name='智能助理',
        description='具备查询高德地图、提取网页信息、数据分析的能力',
        system_message=system,
        function_list=tools,
    )

    return bot

  1. 定义智能助手,编写简单提示词描述本次任务,要求Qwen-Agent帮我们搜寻QwenLM首页的Markdown文档,分析该仓库下不同项目的收藏量并绘制条形图统计。
def run_query(query=None):
    # 定义智能助手
    bot = init_agent_service()

    from qwen_agent.gui import WebUI

    chatbot_config = {
        'prompt.suggestions': [
            "https://github.com/orgs/QwenLM/repositories 提取这一页的Markdown 文档,然后绘制一个柱状图展示每个项目的收藏量",
        ]
    }
    WebUI(
        bot,
        chatbot_config=chatbot_config,
    ).run()

if __name__ == '__main__':
    run_query()

Qwen-Agent内部实现了一个基于Gradio(大模型应用快速开发库)构建的前端页面,运行该程序后会执行 qwen3_mcp_apply显示内置的WebUI, 启动后即可在 localhost:7860 访问, 效果如下:

在这里插入图片描述

界面右侧就是我们在代码chatbot_config字典prompt.suggestions键中设置的推荐问题,我们点击该问题,点击提交,Qwen-Agent就会根据我们的问题自动查找所需Firecrawl工具函数,完成功能调用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

怎么样是不是不到10分钟我们就完成了Qwen3官网的github页面统计分析案例开发!

三、项目扩展

这时有人要反驳“不是说开发一个MiniManus嘛,这里只能爬取分析网页也没有其它功能呀?”其实这两篇分享只是想让大家体会Qwen-Agent开发智能体的便利性,要扩展功能只需在tools列表中加入新的mcp服务即可,受益于Qwen3大模型强大的工具调用和MCP功能,可以方便的使用Qwen-Agent框架开发Multi Agent应用。

下面我们就来实现在Qwen-Agent中接入高德地图MCP Server打造既可分析网页又可出行规划的多智能体!仅需如下两步修改:

  1. 修改init_agent_service函数中的tools MCP Servers 列表项,加入高德地图amap-mcp-server,关于高德地图API Key的注册可以参考我以前的文章 不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析), 同时修改system系统提示词,修改后的init_agent_service函数如下。
from qwen_agent.agents import Assistant
from qwen_agent.utils.output_beautify import typewriter_print

def init_agent_service():
    llm_cfg = {
        'model': 'qwen3-235b-a22b',
        'model_server': 'dashscope',
        'api_key': '你注册的百炼 api key',
        'generate_cfg': {
            'top_p': 0.8
        }
    }

    tools = [{
        "mcpServers": {
            "firecrawl-mcp": {
                "command": "npx",
                "args": ["-y", "firecrawl-mcp"],
                "env": {
                    "FIRECRAWL_API_KEY": "你注册的firecrawl api key"
                },
            },

            "amap-mcp-server": {
                "command": "npx",
                "args": [
                    "-y",
                    "@amap/amap-maps-mcp-server"
                ],
                "env": {
                    "AMAP_MAPS_API_KEY": "你注册的高德地图api key"
                }
            }
        },
    },]

    system = """
            你是一个规划师和数据分析师 \
                你可以调用高德地图规划旅行路线,同时可以提取网页信息进行数据分析
            """

    bot = Assistant(
        llm=llm_cfg,
        name='智能助理',
        description='具备查询高德地图、提取网页信息、数据分析的能力',
        system_message=system,
        function_list=tools,
    )

    return bot

  1. run_query函数中添加高德地图规划路线的描述,代码如下:
def run_query(query=None):
    # 定义智能助手
    bot = init_agent_service()

    from qwen_agent.gui import WebUI

    chatbot_config = {
        'prompt.suggestions': [
            "https://github.com/orgs/QwenLM/repositories 提取这一页的Markdown 文档,然后绘制一个柱状图展示每个项目的收藏量",
            '帮我查询从故宫去颐和园的路线'
        ]
    }
    WebUI(
        bot,
        chatbot_config=chatbot_config,
    ).run()

if __name__ == '__main__':
    run_query()

测试一下,我们发现Qwen-Agent不只能统计网页信息,更具备高德地图的全部功能啦。要扩展智能体的功能只需要将其与MCP服务结合即可获得相应能力,现在大家还觉得实现一个"MiniManus"只是我们的愿景嘛?

在这里插入图片描述

在这里插入图片描述

四、总结

本篇分享我们进一步使用Qwen-AgentMCPWebUI功能开发了用户友好的智能体应用。得益于Qwen3模型的强大能力和Qwen-Agent工具接入MCP的便捷性,我们可以方便的打造多功能AI Agent,让10min实现Manus成为可能~

MCP技术在 AI 与 应用 之间架起一座桥梁,通过 MCP 服务器和 MCP 客户端,实现“万物互联”, 让大模型不再拘泥于简单的对话转而获得了丰富的能力更好为用户服务。MCP技术必将成为未来开发的主流,受到大家广泛关注的同时也在如火如荼的发展着。

MCP官方在5月9号的1.8.0版本更新中,正式在SDK中加入了HTTP流式MCP服务器的相关功能支持。自此开发者可以通过MCP SDK,高效快速开发流式HTTP MCP服务器,并顺利进行多通道并发的企业级MCP工具部署。毫无疑问,这将是MCP技术迈向企业级应用的至关重要的一步。在以后的文章中我也会对MCP HTTP流式 协议进行深度解析与案例实战。

与此同时众多的开发者也发挥自己的聪明才智,开发了多种多样的MCP服务端,极大的丰富了MCP应用生态。在以后文章中我同时也会通过亲身实践,为大家推荐便捷好用的MCP服务器,方便大家日常应用开发。感兴趣大家点个关注吧。大家也可关注我的同名微信公众号:大模型应用开发LLM,免费分享工作生活中大模型开发教程和资料~

如何高效转型AI大模型领域?

给大家推荐一个非常优质的 AI 大模型资料,由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。入口直接给放下面了,扫描下方二维码即可领取↓

在这里插入图片描述

AI大模型知识脑图

在这里插入图片描述

AI大模型精选书籍

在这里插入图片描述

AI大模型视频教程

在这里插入图片描述

AI大模型面试场景题

在这里插入图片描述

在这里插入图片描述

### 关于Qwen-AgentMCP结合使用的文档或指南 Qwen-Agent 是一种基于大模型的能力扩展框架,能够通过集成多种工具来增强其功能。其中,MCP(Multi-Client Protocol)作为 Qwen-Agent 的一个重要组成部分,提供了对多个客户端工具的支持能力[^1]。 #### MCPManager 单例模式的作用 MCPManager 使用单例模式设计,主要负责初始化和管理 MCP 工具以及 clients。它可以通过配置文件动态加载不同的工具和服务。例如,在 `mcp_servers` 配置中定义了一个 SQLite 数据库服务,并指定了启动命令及其参数: ```python {'mcpServers': {'sqlite': {'command': 'uvx', 'args': ['mcp-server-sqlite', '--db-path', 'test.db']}}} ``` 此部分日志表明 MCPManager 正在尝试初始化一个标准的 stdio_client 客户端实例[^1]。如果该过程耗时过久,则可能是因为配置错误或者外部依赖未正常工作。 #### 实际应用中的代码示例 下面是一个完整的 Python 脚本案例,展示如何利用 Qwen-AgentMCP 来实现时间查询的功能[^2]: ```python from qwen_agent.agents import Assistant from dotenv import load_dotenv import os load_dotenv() API_KEY = os.getenv("API_KEY") BASE_URL = os.getenv("BASE_URL") MODEL = os.getenv("MODEL") # 定义LLM配置 llm_cfg = { 'model': MODEL, 'model_server': BASE_URL, 'api_key': API_KEY, 'enable_thinking': False # 禁用思考模式 } # 定义工具列表 tools = [ {"mcpServers": { "time-sse": { "url": "https://time.mcp.minglog.cn/sse", "name": "time-sse" } }}, 'code_interpreter' # 内置工具 ] # 初始化Agent bot = Assistant(llm=llm_cfg, function_list=tools) # 执行对话请求 messages = [{'role': 'user', 'content': '现在几点了?'}] for responses in bot.run(messages=messages): final_response = responses[-1]['message']['content'] print(final_response) print("___________________") ``` 这段脚本展示了如何设置 LLM 参数、指定可用工具并运行实际的任务交互逻辑。特别注意的是,“time-sse” 这一远程 SSE 时间服务器被成功嵌入到工具链当中。 #### 总结 以上内容涵盖了从理论层面理解 MCPManager 到实践操作编写具体程序的过程。希望这些资料可以帮助开发者更好地掌握 Qwen-Agent 结合 MCP开发技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一粟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值