Qwen3-Qwen Agent-MCP开发
一、 简介
Qwen-Agent 是阿里基于 Qwen3 的智能体开发框架,支持工具调用与 MCP 接入,助开发者构建具任务规划能力的 AI 应用;MCP 是解耦大模型与外部工具的标准化协议。
1、特性
- 强化工具调用能力:支持智能体自动调用内置工具(代码解释器、浏览器助手)及自定义工具,通过 Function Calling 扩展功能边界。
- 标准化 MCP 接入:集成 MCP 工具接入流程,仅需配置 MCP 参数即可调用外部工具(如数据库、API),降低开发成本。
- 任务规划与上下文记忆:自动拆解用户需求为执行步骤,同时保留对话状态,实现连贯交互体验。
- 长文本处理与 RAG 集成:依托检索增强生成机制,支持 8K 至 100 万 tokens 长文档处理,通过分块检索提升上下文理解效率。
- UI 前端交互支持:提供可视化界面组件,优化人机交互体验,便于多轮对话与结果展示。
二、运行步骤
1、Qwen-Agent接入mcp-server-sqlite
1.1 导入相关包并初始化Assistant类,同时接入mcp-server-sqliteMCP服务端, 接入mcp的流程需要先定义一个tools数组存放json schema格式的mcp服务器配置,我们需要在VsCode中安装Cline插件,在Cline中需要勾选Use MCP servers,以确保MCP Server服务功能正常并且需要确保node.js已安装,需要安装最新版本。
1.2 Cline连接MCP Server,首先点击Vs Code中的Cline,然后点击MCP Servers小图标,再点击右上角加号旁边的小图标,进入新界面后点击编辑 MCP Servers 配置文件,流程如下图所示:
1.3 在MCP Servers 的配置文件处导入相关的配置文件
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
}
}
# 定义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
2、python例程
2.1 在VS Code 中定义数据库助手,并构造提示词让Qwen-Agent帮助我们创建一个学生表并添加一些数据。
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
}
}
# 定义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
def run_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插入数据。
2.2 执行完程序发现本地目录下多了名为test.db
的数据库文件。
由此可见Qwen-Agent成功创建了数据表并插入了数据。利用Qwen3系列大模型和Qwen-Agent工具快速接入MCP服务端并开发AI Agent智能体的实操便至此完成。