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

猛裁1.6万人后,网站再崩6小时、一周4次重大事故!官方“紧急复盘”:跟裁员无关,也不是AI写代码的锅

猛裁1.6万人后,网站再崩6小时、一周4次重大事故!官方“紧急复盘”:跟裁员无关,也不是AI写代码的锅

整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 过去几年里,科技公司几乎都在同一件事上加速:让 AI 参与写代码。 从自动补全、自动生成函数,到直接修改系统配置,生成式 AI 已经逐渐走进真实生产环境。但最近发生在亚马逊的一连串事故,却给整个行业泼了一盆冷水——当 AI 开始真正参与生产环境开发时,事情可能远比想象复杂。 最近,多家媒体披露,本周二亚马逊内部紧急召开了一场工程“深度复盘(deep dive)”会议,专门讨论最近频繁出现的系统故障——其中,一个被反复提及的关键词是:AI 辅助代码。 一周 4 次严重事故,亚马逊内部紧急复盘 事情的起点,是最近一段时间亚马逊系统稳定性明显下降。 负责亚马逊网站技术架构的高级副总裁 Dave Treadwell 在一封内部邮件中坦言:“各位,正如大家可能已经知道的,最近网站及相关基础设施的可用性确实不太理想。” 为此,公司决定把原本每周例行举行的技术会议

By Ne0inhk
这回真的“装”到了!来OpenClaw全国纵深行,你只需要带一台电脑……

这回真的“装”到了!来OpenClaw全国纵深行,你只需要带一台电脑……

AI Agent 的风,已经从 GitHub 吹到了线下。 过去几个月,越来越多开发者开始讨论一个问题: 当 AI 不再只是聊天,而是可以执行任务,软件会变成什么样? 在这股浪潮中,一个开源项目迅速进入开发者视野——OpenClaw,在 GitHub 上获得大量关注,相关教程、实践案例不断出现。有人用它自动整理资料,有人用它管理开发流程,还有人尝试让它执行复杂的工作流。 很多开发者第一次意识到: AI 不只是工具,它可能成为“执行者”。 不过,在技术社区之外,大多数人对 Agent 的理解仍停留在概念层面。 * AI Agent 到底是什么? * 如何在自己的电脑上运行? * 普通开发者能否真正用起来? 带着这些问题,一场围绕 OpenClaw 的开发者城市行动正在展开。 ZEEKLOG 发起的OpenClaw 全国纵深行将走进 20 个城市,用最直接的方式回答一个问题——如果

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 objectid — 离线分布式高可用 ID 引擎

Flutter for OpenHarmony:Flutter 三方库 objectid — 离线分布式高可用 ID 引擎

欢迎加入开源鸿蒙跨平台社区:开源鸿蒙跨平台开发者社区 前言 如果在利用鸿蒙(OpenHarmony)构建具备“去中心化”、“集群防碰撞协同”或者是大宗“断网盘点及复杂离线同步”的系统时,我们仍然幼稚地使用类似 1, 2, 3 这样的自增数字作为数据库主键,那么在设备恢复网络并尝试向云端同步的那一刻,必然会爆发大规模的主键覆盖与冲突,从而引发系统的毁灭性崩塌。 如果您不想引入极为冗长、解析缓慢且极占存储宽带的 UUID,那么彻底源于 MongoDB 内核设计的原生且硬核的发号器:objectid,绝对是你在大型离线应用开发中的最佳选择!它不仅能将复杂的主键标识压缩在极小的 12 字节空间内,更利用极致的编码策略,原生隐蔽携带有“精确生成时间戳”、“端设备唯一标识印戳”以及“抗压极高的高频自增段”等多维复合关键大信息! 一、原理解析 / 概念介绍 1.1 基础概念 这套发号引擎通过严密的序列特征输出,将 4 字节的毫秒级时间戳、5 字节的机器特征码和 3

By Ne0inhk
Flutter 组件 reaxdb_dart 适配鸿蒙 HarmonyOS 实战:响应式 NoSQL 数据库,构建高性能本地持久化与分布式状态同步架构

Flutter 组件 reaxdb_dart 适配鸿蒙 HarmonyOS 实战:响应式 NoSQL 数据库,构建高性能本地持久化与分布式状态同步架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 reaxdb_dart 适配鸿蒙 HarmonyOS 实战:响应式 NoSQL 数据库,构建高性能本地持久化与分布式状态同步架构 前言 在鸿蒙(OpenHarmony)生态迈向全场景协同、涉及极高频率的端侧数据持久化、实时 UI 数据绑定及分布式节点状态同步的背景下,如何实现一套既能保障数据“强一致性”、又能提供毫秒级检索性能且具备天然“响应式(Reactive)”特性的本地存储引擎,已成为决定应用交互流畅度与底层架构灵活性。在鸿蒙设备这类强调 AOT 极致效能与沙箱存储严格隔离的环境下,如果应用依然依赖臃肿的传统 SQL 或非响应式的 Key-Value,由于由于由于由于 UI 与数据库间的频繁轮询,极易由于由于“数据 IO 阻塞”导致鸿蒙应用在高并发读写时发生明显的帧率抖动。 我们需要一种能够解耦存储逻辑、支持 Stream 级变更监听且具备高性能二进制序列化架构的嵌入式

By Ne0inhk