Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

系列文章目录

一、Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

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


前言

要说最近人工智能界最火热的开源大模型,必定是阿里发布不久的Qwen3系列模型。Qwen3模型凭借赶超DeepSeek-V3/R1的优异性能,创新的混合推理模式,以及极强的MCP能力迅速成为AI Agent开发的主流基座模型。大家可参考我的文章一文解析Qwen3大模型详细了解Qwen3模型的核心能力。有读者私信我: “Qwen3官网特地强调增强了Agent和代码能力,同时加强了对MCP的支持,那么我该如何利用Qwen3快速开发MCP应用呢?” 这就就需要使用我们今天的主角——Qwen官方推荐的开发工具Qwen-Agent ,本期分享我们就一起学习快速使用Qwen3+QwenAgent 接入MCP服务端,快速开发AI Agent应用!

一、注册 Qwen3 API-Key

本次分享通过阿里云百炼大模型服务平台API Key请求方式调用Qwen3大模型,获取服务平台API Key的步骤如下:

  1. 登录阿里云百炼大模型服务平台,如果页面顶部显示如下消息,大家需要开通百炼的模型服务,点击立即开通即可。

  1. 前往 我的API-KEY页面,单击创建我的API-KEY。
  2. 在已创建的API Key操作列,单击查看,获取API KEY。该API KEY是我们请求Qwen3大模型的重要凭证。
在这里插入图片描述

二、Qwen-Agent快速入门

2.1 Qwen-Agent简介

Qwen-Agent 是阿里通义团队推出的开源智能体(Agent)开发框架,基于 Qwen 大语言模型(LLM)构建,旨在帮助开发者快速构建具备指令遵循、工具调用、规划与记忆等能力的 AI 应用。它提供了从底层原子组件到高级智能体抽象的完整开发工具链,适用于多种复杂任务场景。

在这里插入图片描述


Qwen-Agent具备如下核心特性:

  • 更强的工具调用(Function Calling)能力:框架支持智能体自动调用外部工具或函数,包括内置的代码解释器、浏览器助手等,也支持开发者自定义工具,扩展智能体的能力。
  • 便捷的MCP工具接入流程:最新版的Qwen-Agent已经集成了MCP工具接入流程,我们仅需写入MCP配置,即可在Qwen-Agent中调用MCP工具:
  • 规划与记忆能力: 智能体具备任务规划能力,能够根据用户需求自动制定执行步骤。同时,具备上下文记忆功能,能在对话中保持状态,提供连贯的交互体验。
  • 长文本处理与 RA: Qwen-Agent 集成了检索增强生成(RAG)机制,支持处理从 8K 到 100 万 tokens 的长文档,通过文档分块和相关性检索,提升上下互与展示
  • UI前端交互与展示

2.2 Qwen-Agent 构建多轮对话机器人

Qwen-Agent具备快速接入Qwen系列模型能力,通过Assistant组件,可以实现工具调用、Agent编排和MCP接入等一系列功能。下面通过使用Qwen-Agent开发多轮对话机器人的小案例让大家快速掌握Qwen-Agent的使用方法。完整代码在: https://www.codecopy.cn/post/q1vq4b

  1. 安装相关软件,这里使用anaconda创建虚拟环境并安装相关库,对anaconda使用有疑问的可参照anaconda安装和使用(管理python环境看这一篇就够了)
conda create -n qwen_agent python=3.12 pip install -U "qwen-agent[rag,code_interpreter,gui,mcp]" pip install uv 
  1. 导入需要的类和函数, Assistant是用来创建智能体对象的类, typewriter_print用于格式化和打印消息,会处理函数调用和普通对话的不同执行逻辑(Function Calling),同时对于推理类模型,会判断消息中是否包含 reasoning_content,如果存在,则将其添加到 content 列表中,并在前面加上 THOUGHT_S(表示思考的符号或字符串),从而支持推理类模型和对话模型的不同输入输出形式。
from qwen_agent.agents import Assistant from qwen_agent.utils.output_beautify import typewriter_print 
  1. 配置所使用的模型服务, 注意api_key填入你在百炼平台注册的api_key
llm_cfg={'model':'qwen3-235b-a22b',#可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models'model_server':'dashscope','api_key':'你注册的api-key','generate_cfg':{'top_p':0.8# top_p越高生成的文本越多样, 范围在0-1.0之间}}
  1. 创建一个智能体对象
bot = Assistant( llm=llm_cfg, system_message='你是一位乐于助人的小助理', name='智能助理')
  1. 构建多轮对话聊天
messages =[]#存储历史聊天内容whileTrue: query =input('\n用户请求:输入 quit 终止对话')if query =='quit':breakelse: messages.append({'role':'user','content': query }) response =[] response_plain_text =''print('AI 回复:')for response in bot.run(messages=messages): response_plain_text = typewriter_print(response, response_plain_text) messages.extend(response)

执行如上代码结果如下,可以看到我们已经成功开启与qwen3模型的对话~

在这里插入图片描述

三、Qwen-Agent接入MCP工具

3.1 项目简介

熟悉Qwen-Agent的基本操作后,下一步开始学习今天的重头戏——Qwen-Agent接入MCP工具。大家不了解MCP相关概念的可先阅读我的MCP系列分享:

Qwen-Agent接入MCP的原理采用stdio开发模式,将mcp服务作为Qwen-Agent应用的子进程, Qwen-Agent作为客户端与子进程服务通信。

本次分享采用Qwen-Agent+Qwen3开发一个sqlite数据库小助手,Qwen-Agent接入mcp-server-sqliteMCP服务器,能够理解自然语言并依据语言内容调用mcp-server-sqlite服务端的功能函数完成对sqlite数据库的相关操作。

3.2 Qwen-Agent接入mcp-server-sqlite

完整代码在https://www.codecopy.cn/post/fum1go

  1. 导入相关包并初始化Assistant类,同时接入mcp-server-sqliteMCP服务端, 接入mcp的流程需要先定义一个tools数组存放json schema格式的mcp服务器配置,和我们在不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析)中mcp的配置文件类似。
from qwen_agent.agents import Assistant from qwen_agent.utils.output_beautify import typewriter_print definit_agent_service(): llm_cfg={'model':'qwen3-235b-a22b','model_server':'dashscope','api_key':'你的api_key','generate_cfg':{'top_p':0.8}}# 定义MCP服务配置,优点类似Function Calling调用的JSON Schema格式 tools =[{"mcpServers":{"sqlite":{"command":"uvx","args":["mcp-server-sqlite","--db-path","test.db"]}}}] bot = Assistant( llm=llm_cfg, name='数据库管理员', description='你是一位数据库管理员,具有对本地数据库的增删改查能力', system_message='你扮演一个数据库助手,你具有查询数据库的能力', function_list=tools,)return bot 
  1. 定义数据库助手,并构造提示词让Qwen-Agent帮助我们创建一个学生表并添加一些数据。
defrun_query(query=None):# 定义数据库助手 bot = init_agent_service()# 执行对话逻辑 messages =[] messages.append({'role':'user','content':[{'text': query}]})# 跟踪前一次的输出,用于增量打印 previous_text =""print('数据库管理员: ', end='', flush=True)for response in bot.run(messages): previous_text = typewriter_print(response, previous_text)if __name__ =='__main__': query ='帮我创建一个学生表,表名是students,包含id, name, age, gender, score字段,然后插入一条数据,id为1,name为张三,age为20,gender为男,score为95' run_query(query)

执行代码得到如下结果, uvx检测到有些依赖库没有安装,自动安装所需依赖(红字部分)。完成相关依赖安装后Qwen-Agent检测到用户请求中要创建学生表并插入数据,Qwen3模型对mcp-server-sqlite服务端的函数理解生成思考过程,利用sqlite-create_table创建表,并使用sqlite-write_query插入数据。

在这里插入图片描述
  1. 执行完程序发现本地目录下多了名为test.db的数据库文件。

为进一步验证工具调用的正确性,我们使用sqlite3数据库工具查看数据库中的数据,在test.db同级目录下新建py文件并写入如下代码:

在这里插入图片描述
# 查看数据库中的数据import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor()# 先查看数据库中有哪些表 cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cursor.fetchall()print("数据库中的表:", tables)# 如果有表,则查询第一个表的数据if tables: table_name = tables[0][0] cursor.execute(f"SELECT * FROM {table_name}")print(f"{table_name} 表中的数据:", cursor.fetchall())else:print("数据库中没有表,需要先创建表并插入数据") conn.close()
在这里插入图片描述

可以看到Qwen-Agent成功创建了数据表并插入了数据。以上就是我们今天的分享,怎么样Qwen-Agent的能力是不是特别强大?还在等什么,赶紧利用Qwen-Agent开发属于你的AI Agent吧!

四、总结

本篇分享介绍了如何利用阿里发布的Qwen3系列大模型和Qwen-Agent工具快速接入MCP服务端并开发AI Agent智能体。主要内容包括:

  1. 注册Qwen3 API-Key:通过阿里云百炼平台获取API密钥。
  2. Qwen-Agent入门:介绍了Qwen-Agent核心功能(工具调用、MCP接入、规划与记忆等),并演示了如何构建多轮对话机器人。
  3. 接入MCP工具:以SQLite数据库助手为例,展示了如何配置MCP服务端,实现自然语言操作数据库的功能。

当然这篇分享只是简单的Qwen3+Qwen-Agent+MCP智能体开发案例,别忘了Qwen-Agent 出色的前端交互展示能力我们还没有利用。别着急,下一篇分享我将和大家一起利用Qwen Agent能力复现Qwen3官方网站上自动搜索github数据并生成统计信息的可视化智能体,让你在超短时间内实现一个“Manus”!感兴趣大家点个关注吧。大家也可关注我的同名微信公众号:大模型真好玩,免费分享工作生活中大模型开发教程和资料~

在这里插入图片描述

Read more

Android WebView 版本升级方案详解

Android WebView 版本升级方案详解 目录 1. 问题背景 2. WebViewUpgrade 项目介绍 3. 升级方法详解 4. 替代方案对比 5. 接入与使用步骤 6. 注意事项与限制 7. 总结与建议 问题背景 WebView 版本差异带来的问题 Android 5.0 以后,WebView 升级需要去 Google Play 安装 APK,但即使安装了也不一定能正常工作。像华为、Amazon 等特殊机型的 WebView 的 Chromium 版本一般比较低,只能使用它自己的 WebView,无法使用 Google 的 WebView。 典型问题场景 H.265 视频播放问题:

By Ne0inhk
AI Skills:前端新的效率神器

AI Skills:前端新的效率神器

近来,AI 领域有个火爆的话题:Skills。 Github 上被疯狂 star 的仓库,很多都是和 skills 有关的。 有的仓库仅仅上线三个月就获得了快 50K 的 star,Skills 的火热可见一斑。 不管是大模型,还是 Cursor、Codex、Claude、Trae、Copilot 等编程 IDE 都在争先支持 Skills。 围绕 Skills,它们在做的就是为了完成一件事情:技能是通过学习和反复练习获得的,而 Skills 是把经验和最佳实践沉淀为 AI 能力,将“知道”转化为“做到”的本领。 详解什么是 Skills 要说清楚什么是 Skills,先来了解一下关于 AI 的 2

By Ne0inhk
前端正则表达式完全指南:从记不住、写不出,到手写、调试、面试一把抓

前端正则表达式完全指南:从记不住、写不出,到手写、调试、面试一把抓

【正则表达式】+【前端开发】:从【核心语法】到【实战应用】,彻底搞懂【字符串匹配/校验/提取】的最佳写法,避开lastIndex/贪婪匹配/回溯爆炸高频坑! 📑 文章目录 * 一、正则表达式到底是什么 * 二、正则的两种创建方式 * 2.1 字面量写法(推荐日常使用) * 2.2 构造函数写法(需要动态拼接时用) * 2.3 什么时候该用哪种? * 2.4 踩坑提醒:构造函数里反斜杠要双写 * 三、基础语法:一块一块拼出来 * 3.1 普通字符——就是它自己 * 3.2 特殊字符(元字符)——正则的核心能力 * 3.3 量词——控制&

By Ne0inhk
Vue入门到精通:从零开始学Vue

Vue入门到精通:从零开始学Vue

目录 一、第一个Vue程序 第一步 Vue构造函数的参数:options template配置项 第二步 模板语句的数据来源 Template配置项 Vue实例和容器 二、Vue模板语法 Vue 插值 Vue 指令 v-bind指令 v-model指令 三、MVVM分层思想 四、VM defineProperty 五、数据代理机制 Vue数据代理机制对属性名的要求 手写Vue框架数据代理的实现 六、解读Vue框架源代码 data(函数) 七、Vue事件处理 事件绑定 Vue事件绑定 事件回调函数中的this methods实现原理 八、事件修饰符 按键修饰符 九、计算属性 反转字符串methods实现 反转字符串计算属性实现 计算属性用法 十、侦听属性 比较大小的案例watch实现 computed实现

By Ne0inhk