使用本地模型在你的电脑上调用工具!以qwen3模型为例手把手教你使用代码实现一个会用工具的agent。
·
前言
使用在线模型调用MCP服务器来使模型获得调用工具的能力相信大家已经在扣子、Dify、OpenAI这些平台上体验过了。本文将使用Ollama+QWEN3-0.6B+QWEN_AGENT简单实现一个会用工具的AI。
本文所有开发使用系统均为Windows 11 24H2,Linux系统可作为参考。
关于QWEN3
关于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
更多推荐


所有评论(0)