前言

使用在线模型调用MCP服务器来使模型获得调用工具的能力相信大家已经在扣子、Dify、OpenAI这些平台上体验过了。本文将使用Ollama+QWEN3-0.6B+QWEN_AGENT简单实现一个会用工具的AI。
本文所有开发使用系统均为Windows 11 24H2,Linux系统可作为参考。

关于QWEN3

QWEN3-0.6B-魔塔社区
QWEN3-github

关于MCP

  • 相关概念已有博客详细介绍这里不再赘述,简单而言,MCP是一种标准化的协议,目的在于同一不同模型调用工具时使用相同的标准避免重复造轮子的操作。
  • 更多介绍可以参考B站视频来入门👇
    10分钟讲清楚 Prompt, Agent, MCP 是什么-哔哩哔哩

环境准备

本地模型

  • 首先,你的电脑需要一个运行模型的东西,在这里我以ollama作为示例。
  • 安装一个ollama
  • 安装完成后,使用快捷键win+R,运行powershell进入控制台并输入ollama,如果出现命令提示则代表你的ollama安装成功
  • 安装后,如果你的电脑拥有英伟达显卡,在控制台输入以下命令
nvidia-smi

如果你的控制台输出这样的字符串:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.52                 Driver Version: 576.52         CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 5090      WDDM  |   00000000:01:00.0  On |                  N/A |
|  0%   55C    P8             33W /  600W |    3043MiB /  32607MiB |      3%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            2228    C+G   C:\Windows\explorer.exe               N/A      |
+-----------------------------------------------------------------------------------------+

注意这里的CUDA VERSION,这代表你电脑上的显卡支持使用CUDA对模型进行推理加速。

  • 如果你没有👆,你可以忽略这一步:在你的【设置】>【系统】>【高级系统设置】>【高级】>【环境变量】>【系统变量】中添加下面这一行参数
# 变量名
OLLAMA_GPU_LAYER
# 变量值
cuda

这个变量的意思是告诉Ollama,使用Cuda对你的模型进行加速。

  • 现在,我们可以开始下载模型到电脑上了,我选用qwen3的0.6B版本以便任何个人电脑上都能正常运行,如果你在前文中配置了Cuda加速,可以使用更高参数的版本,qwen3-模型列表-参考文档
ollama run qwen3:0.6B

这个命令会自动拉取模型并在你的本地运行。

python环境与依赖

现在我们的电脑上已经拥有一个模型了,接下来,我们需要一个python的环境来为模型添加工具的调用。实际上,除了python,Java、C#、Node.JS都有对应的SDK来处理本地模型,不过这些SDK都较为零散,以及我们会用到一个阿里官方的示例项目,因此这里先使用python。

  • 安装python,网上教程很多这里不过多讲解
  • 安装uv -可选项,使用conda进行依赖管理也可以
pip installl uv
  • 打开一个文件夹cd ~/your_projects,执行
uv init my_demo #初始化一个my_demo项目

现在进入你的项目文件夹cd ~/your_projects/my_demo然后执行

uv venv --python 3.12

这时会形成一个pyproject.toml配置文件,替换为以下配置

[project]
name = "my_demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "qwen-agent[gui,mcp]",
    "fastmcp",
    "random"
]

[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

执行

uv sync #同步你配置文件中的依赖到项目中

正式开始

准备好了环境,现在,我们可以正式开始进行开发了

MCP

让我们先准备一个简单的本地工具:让模型生成一个0到N之间的随机整数,这个N由模型来决定。

  • 打开之前准备好的python项目,创建一个python文件random_mcp.py,然后输入以下代码:
from mcp.server.fastMCP import FastMCP
import random

mcp = FastMCP("my first mcp")
@mcp.tool()
def get_Random_0_to_N(input):
    """返回从0到N的随机数"""
    return random.randint(0, input)

if __name__ == '__main__':
    mcp.run()

这样,我们的一个简单工具就做好了,@mcp.tool()会将这个函数自动注册为工具,后面我们会用到它。

QWEN-AGENT

  • 依然是前文生成的项目,打开根目录,打开main.py文件,将其中的代码替换为
from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI

# 创建智能体,指定使用本地 ollama/qwen3:0.6B 模型,并绑定 MCP 工具
tools = [
    {
        "mcpServers": {
            "random-stdio": {
                "command": "uv",
                "args": [
                    "run",
                    ".\\random_mcp.py"
                ],
                "name": "random"
            }
        }
    },
    ToolRandom()
]
llm_config = {
    "model": "qwen3:0.6B",
    "api_key": "EMPTY",
    "model_server": "http://localhost:11434",
}
agent = Assistant(llm=llm_config,function_list=tools)

WebUI(agent).run()
  • 现在,我们可以体验到完全部署于本地,能够使用一个生成随机数的智能体了!在项目根目录执行 uv run main.py你将能看到一个完整的UI界面!

参考文档

github:Qwen-Agent README_CN.md
github:Qwen-Agent assistant_qwen3.py
github:fastmcp README.md

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐