screwdriver-wrench本地 LLM 的工具调用指南

工具调用是指允许大语言模型通过发出结构化请求来触发特定功能(例如“搜索我的文件”、“运行计算器”或“调用 API”),而不是通过猜测文本答案。当你使用工具调用时,输出会变得 更可靠且更为最新,并且它们使模型能够 采取真实行动 (查询系统、验证事实、强制执行模式)而不是产生幻觉。

在本教程中,你将学习如何通过工具调用使用本地 LLM,示例包括数学、故事、Python 代码和终端功能。推理通过 llama.cpp、llama-server 和 OpenAI 端点在本地完成。

我们的指南应适用于几乎所有 任何模型 包括:

Qwen3-Coder-Next 教程GLM-4.7-Flash 教程

🔨工具调用设置

我们的第一步是获取最新的 llama.cpp此处的 GitHubarrow-up-right。你也可以按下面的构建说明操作。若要更改 -DGGML_CUDA=ON-DGGML_CUDA=OFF 如果你没有 GPU 或者只想使用 CPU 推理。

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp

在一个新终端中(如果使用 tmux,请使用 CTRL+B+D),我们创建一些工具,例如相加两个数字、执行 Python 代码、执行 Linux 功能等等:

然后我们使用下面的函数(复制并粘贴执行),它们会自动解析函数调用并针对任何模型调用 OpenAI 端点:

circle-info

在此示例中我们使用的是 Devstral 2,切换模型时,请确保使用正确的采样参数。你可以在我们的 此处指南.

现在我们将展示多种在不同用例下运行工具调用的方法:

写故事:

数学运算:

执行生成的 Python 代码

执行任意终端命令

🌠 Qwen3-Coder-Next 工具调用

在一个新终端中,我们创建一些工具,例如相加两个数字、执行 Python 代码、执行 Linux 功能等等:

然后我们使用下面的函数,这些函数会自动解析函数调用并为任何 LLM 调用 OpenAI 端点:

现在我们将展示多种在不同用例下运行工具调用的方法:

执行生成的 Python 代码

执行任意终端命令

我们确认文件已创建,确实如此!

GLM-4.7-Flash + GLM 4.7 调用

我们首先下载 GLM-4.7GLM-4.7-Flash 通过一些 Python 代码,然后在单独的终端(例如使用 tmux)中通过 llama-server 启动它。在此示例中,我们下载大型 GLM-4.7 模型:

如果你成功运行它,你应该会看到:

现在通过 llama-server 在新终端中启动它。如果你愿意可以使用 tmux:

你将会得到:

现在在一个新终端并执行 Python 代码,提醒你运行 Tool Calling Guide 我们使用 GLM 4.7 的最优参数:temperature = 0.7 和 top_p = 1.0

用于 GLM 4.7 的数学运算工具调用

用于 GLM 4.7 的执行生成 Python 代码的工具调用

📙 Devstral 2 工具调用

我们首先下载 Devstral 2 通过一些 Python 代码,然后在单独的终端(例如使用 tmux)中通过 llama-server 启动它:

如果你成功运行它,你应该会看到:

现在通过 llama-server 在新终端中启动它。如果你愿意可以使用 tmux:

如果成功,你将看到如下内容:

然后我们用下面的消息调用模型,并仅使用 Devstral 建议的参数 temperature = 0.15。提醒你运行 Tool Calling Guide

最后更新于

这有帮助吗?