SMITH:让 LLM 学会写工具并泛化到自身使用之外
Training LLMs to write tools generalized beyond self use
台湾大学与 Appier AI Research 提出 SMITH,一个用强化学习联合训练工具创建与工具使用的框架,论文已被 NeurIPS 2026 接收。
已被 NeurIPS 2026 接收(海报展示)
SMITH:Schema-grounded Multi-task Iterative Tool Honing
- Zhi Rui Tam1,2
- Chieh-Yen Lin1
- Yun-Nung (Vivian) Chen2
- Shao-Hua Sun1,2
- Hung-yi Lee2
1Appier AI Research 2National Taiwan University
摘要
工具增强语言模型受限于人类愿意编写的 API;现有的工具创建系统通过在推理时提示一个冻结的 LLM 来弥补这一点,导致编写工具的模型与使用工具的模型相互脱节,且没有信号表明它生成的 schema 是它实际能够调用的 schema。我们提出 SMITH(Schema-grounded Multi-task Iterative Tool Honing),一个在单一策略内联合训练工具创建与工具使用的强化学习框架。每次 rollout 要么是一个 build 任务(根据少量示例编写一个工具),要么是一个 use 任务(在留出问题上调用池中的工具)。三个独立的奖励维度分别捕捉 schema、代码和结果层面的失败,因此每种失败模式都贡献自己的梯度。一个 4B Qwen3 在 13 个带精确验证器的程序性推理任务上用 SMITH 训练后,在留出任务上达到 79.9 的宏平均准确率,在所有评估方法中最佳,并领先于一个未经训练的 30B-A3B 工具编写者。它还在 TabMWP-Hard 上达到 40.4,在域外 GQA 上达到 42.6(比最佳同骨干推理时基线高出 +7.6),且没有任何视觉或表格训练数据。当由一个冻结的 350M 学生模型调用时,我们的 4B 编写的工具与一个大一个数量级的编写者所产出的工具相当。同样的配方还能在不做修改的情况下提升 Qwen3-8B 和 Granite-3.3-8B。
79.9RG(未见)宏准确率,所有方法中最佳
32×输出 token 数比标准 CoT 少
+7.6在域外 GQA 上相比最佳基线的提升点数
42.9使用 SMITH 工具的 350M 模型的留出准确率
为什么工具创建和工具使用需要一起训练
工具增强 LLM 的能力仅限于别人已经为它写好的工具:一个计算器、一个搜索 API、一个 Python 沙箱。当合适的工具不存在时,智能体就卡住了。近期工作(LATM、CRAFT、TroVE、KTCE)让模型能够即时合成新工具,但几乎总是由一个强大的模型编写工具,再由另一个更弱的模型使用它。编写者永远不知道它的接口是否真的易于调用。
解耦的流水线
- 大型冻结 LLM 在推理时编写工具
- 另一个更弱的模型尝试调用它
- schema 模糊 → 调用错误 → 答案错误
- 没有梯度:编写者永远不知道它的 schema 失败了
SMITH:一个闭环
- 同一个策略编写工具(代码 + JSON schema)
- 同一策略稍后仅凭 schema 调用它
- 奖励根据该次使用是否成功来计算
- 梯度直接回传到工具编写者
这产生了论文必须解决的两个具体训练问题。奖励分解: 一个工具可能因为其代码错误、其schema错误、两者相互不一致,或者工具技术上正确但设计不佳而失败。每种情况都需要不同的纠正信号。循环评估:评估工具质量需要一个评判者,但模型评判自己的实时权重是不可靠的,而冻结的外部评判者永远不会随策略一起改进。
SMITH:基于 Schema 的多任务迭代工具打磨
SMITH 是一个多任务 RL 框架,使用 DAPO(GRPO 的 clip-higher 变体)训练,它将两种 rollout 类型混合到每个批次中:构建和 使用。两者都在同一策略内优化,因此工具创建和工具使用的梯度每一步都会更新相同的权重。
任务 1构建:编写工具
策略看到 N = 4 个问题–答案对,必须推断出它们背后的通用过程,然后将其表达为一个 OpenAI 兼容的 (Python function, JSON
schema) 对。然后该工具会针对 K = 16 个留出问题运行,
这些问题取自比构建它所用示例更难的难度区间;模型在生成时从未看到真实答案。一个只对简单归纳示例进行模式匹配的工具得分接近零;只有真正可复用的抽象才能存活。
走一遍示例
4 个上下文示例(简单区间)
- 问:42 的二进制形式中有多少个 1 位?答:3
- 问:255 的二进制形式中有多少个 1 位?答:8
- ……还有 2 个
策略编写的工具
def solve(question: str) -> str:
n = int(re.search(r"\d+", question).group())
return str(bin(n).count("1")){
"name": "solve",
"description": "Counts the 1-bits in the
binary form of the integer named in
the question.",
"parameters": {
"type": "object",
"properties": {
"question": { "type": "string" }
},
"required": ["question"]
}
}13 / 16 个留出(更难)问题正确 → 被纳入工具池
任务 2使用:调用工具
策略接收一个目标问题和一个工具池条目:一个匹配的 领域工具加上两个来自无关类别的干扰工具,迫使它 识别正确的 schema。它最多有 T = 5 轮来调用工具并回答; 效率惩罚会阻止耗尽轮次预算。如果该类别还没有池工具, 模型必须先从相同的上下文示例中构建一个。
试一试:选择正确的工具
目标问题
“92,401 的二进制形式中有多少个 1 位?”
池条目——每个 schema 都命名为 solve(question);只有描述能区分它们
三个奖励轴,有意保持分离
SMITH 没有把所有东西都压缩成一个分数,而是将 格式、 执行 和 评判 反馈保留为独立的轴,输入到 DAPO 中,这样 每种失败模式都有自己的梯度,而不会被平均掉。
格式奖励
检查响应是否恰好包含一个 Python 块和一个 JSON 块,且其函数名 和参数确实匹配。格式错误的配对会终止 rollout,并在每个 轴上获得零奖励。
$$r^{\mathrm{fmt}} \in \{0,\ 0.5\}$$
评估奖励
该工具被交给一个评估器模型,评估器必须调用它来回答每个留出问题。 只有通过真实工具调用得到的答案才计入。模型不能通过在文本中推理出答案来 走捷径。
$$r^{\mathrm{eval}} = \frac{1}{|\mathcal{T}|}\sum_{j=1}^{|\mathcal{T}|} \mathbf{1}\!\left[\pi^{\mathrm{eval}}(q_j \mid \mathcal{C}, \mathcal{S}) \approx a_j\right]$$
评判奖励
一个 LLM 评判器对代码正确性、schema 质量和整体质量进行评分,并将其作为与执行奖励 分离 的轴,而不是合并进去。语法错误会被直接惩罚; schema/代码不匹配会使分数减半。
$$r^{\mathrm{judge}} = \begin{cases}-0.5 & \text{syntax error}\\ 0.5\, s_{\mathrm{overall}} & \text{schema}\neq\text{code}\\ s_{\mathrm{overall}} & \text{otherwise}\end{cases}$$
打破自我评判的循环性。 评估器 \(\pi^{\mathrm{eval}}\) 和评判器 \(\pi^{\mathrm{judge}}\) 都从与策略相同的基座检查点开始,然后 定期重新同步到最新的策略权重。这让评估器能够与 策略一起改进,而不会出现针对实时、仍在更新的权重进行评分的不稳定性。
使用任务正确性,并带有效率惩罚
令 \(c \in \{0,1\}\) 标记最终答案是否与真实答案匹配。奖励会按一个 效率乘数 \(\eta(\rho)\) 缩放,该乘数随着轮次比例 \(\rho = \min(n/T, 1)\) 的增长而衰减, 并带有下限 \(\eta_{\min}=0.3\),因此即使在轮次 限制下,策略也绝不会对正确性无动于衷(\(\eta_{\mathrm{mid}} = 0.7\)):
$$ r^{\mathrm{correct}} = 2c\,\eta(\rho), \qquad \eta(\rho) = \begin{cases} 1 - 2(1-\eta_{\mathrm{mid}})\rho & \rho \le 0.5 \\[2pt] \max\!\bigl(\eta_{\min},\ \eta_{\mathrm{mid}}\,(1-2(\rho-0.5))^2\bigr) & \rho > 0.5 \end{cases} $$
每个训练批次都被均匀拆分,\(\mathcal{B} = \mathcal{B}_{\mathrm{build}} \sqcup \mathcal{B}_{\mathrm{use}}\),其中 \(|\mathcal{B}_{\mathrm{build}}| = |\mathcal{B}_{\mathrm{use}}| = B/2\),并且 DAPO 在单次反向传播中累积两个损失: \(\mathcal{L} = \mathcal{L}_{\mathrm{DAPO}}(\mathcal{B}_{\mathrm{build}}) + \mathcal{L}_{\mathrm{DAPO}} (\mathcal{B}_{\mathrm{use}})\)。因此,构建和使用梯度在每一步都会更新相同的参数 \(\theta\)。任何具有 \(r^{\mathrm{eval}} > 0\) 的工具都会被推入一个共享的 Tool Pool,以供未来的使用任务 rollout 复用。这就是 SMITH 名称中的“迭代打磨”。
实验设置
SMITH 在来自 Reasoning-Gym 的 13 个程序性任务类别上训练,涵盖算术、算法、代数、博弈和逻辑推理,选择这些类别是因为它们的答案精确且可自动验证,并且每个类别都提供难度课程。工具在简单示例上被诱导,但在同一任务族中最难的最难区间上进行评分,从而有意将工具编写质量与实例难度分开。
13RG 训练任务类别
10完全留出的 RG 类别
N=4 / K=16构建示例 / 留出评估问题
T=5每次 rollout 的最大工具使用轮数
主要骨干模型是 Qwen3-4B-Instruct,使用 LoRA(r = 64,α = 128)进行微调, 采用 DAPO 进行 60 个梯度步,构建/使用 rollout 以 1:1 混合。该配方也未经修改地应用于 Qwen3-8B 和 Granite-3.3-8B,以测试跨模型家族的通用性。基线尽可能共享 Qwen3-4B-Instruct 骨干:推理时工具编写器 LATM、CRAFT、TroVE 和 KTCE; 蒸馏基线 ReTool(来自 Qwen-32B 轨迹)和 LATM (从 GPT-4.1 蒸馏);以及一个刻意的规模探测,Qwen3-30B-A3B 上的 LATM。 迁移在 TabMWP-Hard(一个增强的表格推理基准)和 GQA(视觉问答)上测量,两者在训练期间均未见过,并在 BFCL v4(一个外部指定的函数调用基准)上测量。
结果
Reasoning-Gym 上的主要结果
SMITH 是唯一在真正留出的任务上领先,同时使用最少 token 的方法。 与蒸馏相比,使用 SMITH 的 RL 目标训练的 4B 模型比从远更大的 oracle 蒸馏的 4B 模型更可靠地泛化:ReTool 在已见任务上领先(92.2),但在未见任务上下降近 30 分,这表明它过拟合了演示者的分布,而不是学习可迁移的构建和使用策略。与更复杂的推理时脚手架(CRAFT、TroVE、 KTCE)和更大的工具编写器(Qwen3-30B-A3B)相比,SMITH 在未见任务上仍然胜出,使用的输出 token 大约比标准思维链少 32 倍。
| 方法 | 已见 平均 |
未见 RG | I/O token | |||||
|---|---|---|---|---|---|---|---|---|
| 逻辑 | 博弈 | 代数 | 算术 | 算法 | 平均 | |||
| 标准 CoT | 58.0 | 49.9 | 60.3 | 56.8 | 62.7 | 48.6 | 55.7 | 173 / 3,206 |
| LATM* [Cai et al.] | 77.6 | 53.9 | 55.5 | 38.6 | 53.0 | 90.2 | 58.3 | 607 / 174 |
| LATM* – Qwen3-30B-A3B | 74.0 | 68.7 | 64.2 | 97.3 | 56.5 | 84.0 | 74.1 | 659 / 405 |
| CRAFT [Yuan et al.] | 74.1±0.7 | 27.4±1.3 | 89.5±0.0 | 94.2±1.2 | 76.6±1.1 | 95.0±0.0 | 76.5±0.4 | 1,226 / 418 |
| TroVE [Wang et al.] | 52.6±0.4 | 60.7±2.4 | 10.6±1.3 | 51.2±3.5 | 59.8±0.8 | 97.0±0.0 | 55.9±0.6 | 347 / 575 |
| KTCE [Ma et al.] | 61.0±1.5 | 60.2±1.5 | 79.8±1.6 | 70.6±0.3 | 45.6±0.4 | 69.3±1.8 | 65.1±0.2 | 319 / 404 |
| ReTool(蒸馏 Qwen-32B) | 92.2±0.8 | 50.3±2.3 | 55.0±0.8 | 48.7±0.6 | 79.8±2.7 | 82.4±0.1 | 63.2±0.4 | 1,707 / 633 |
| LATM(蒸馏 GPT-4.1) | 81.7±4.4 | 37.6±15.2 | 58.1±12.2 | 91.3±7.7 | 51.6±10.4 | 93.2±5.9 | 65.8±4.1 | 638 / 207 |
| SMITH | 85.2±2.7 | 74.2±0.6 | 63.7±1.1 | 97.9±2.6 | 70.6±2.1 | 93.0±0.4 | 79.9±2.2 | 664 / 100 |
工具跨模型规模迁移
SMITH 的工具编码的是真正可复用的解决方案,还是只有编写者理解的私有约定?我们测试两个方向:将 RL 训练的 4B 编写器与一个小得多的消费者配对, 以及与一个大得多的消费者配对。
将经过 RL 训练的 4B 工具编写器与冻结的 LFM2.5-350M 消费者配对,可将其留出准确率从 11.6 提升至 42.9,与一个大八十倍的工具编写器(Qwen3-30B-A3B,未训练,41.5)相当。
无工具
11.6
+ Qwen3-4B(未训练编写器)
23.4
+ Qwen3-30B-A3B(未训练编写器)
41.5
+ SMITH 4B 编写器(我们的)
42.9
LFM2.5-350M 的 RG(未见)准确率随工具编写来源变化;编写器本身从未在 LFM2.5 的输出上微调。
反向也成立。将 SMITH 的 4B 编写工具与更强的 Qwen3-30B-A3B 消费者配对,在每个任务组上都优于该 30B 模型为自己编写工具(LATM*),在 TabMWP-Hard 上尤为明显(0.7 → 38.8),将任务加权总分从 70.2 提升至 76.6。更大的工具使用者并不会让自写工具更可取。无论哪种方式,SMITH 的 4B 编写器仍是更好的工具来源。
域外泛化
TabMWP-Hard(表格推理)和 GQA(视觉问答)均未出现在 SMITH 的训练数据中。SMITH 在 TabMWP-Hard 上 outright 领先,并且是唯一在任一列上登顶的 4B、非蒸馏方法。与 GPT-4.1 蒸馏的 LATM 在 GQA 上的差距,是未从更强 oracle 蒸馏视觉原语的公认代价。
| 任务 | CoT | LATM | LATM*(30B) | CRAFT | TroVE | KTCE | ReTool | LATM(蒸馏) | SMITH |
|---|---|---|---|---|---|---|---|---|---|
| TabMWP-Hard | 7.2 | 19.7 | 0.7 | 30.0 | 36.4 | 27.2 | 3.0 | 7.1 | 40.4 |
| GQA | 11.5 | 35.0 | 29.8 | 21.9 | 21.4 | 0.0 | 26.1 | 56.0 | 42.6 |
跨主干扩展
同一 RL 配方未经修改地应用,可改善所有测试的主干,包括从更弱基础开始的 Granite-3.3-8B。一个 Self-Judge 变体(Qwen3-8B 评判自己的 rollout,而非外部 30B-A3B 评判器)将留出 RG 推得更高(85.9),但牺牲了 OOD GQA,表明较小的自评判器更弱,但在分布内数据上偏差更小。
| 方法 | RG(已见) | RG(未见) | TabMWP | GQA |
|---|---|---|---|---|
| Qwen3-8B(基线) | 72.6 | 72.2 | 42.4 | 17.3 |
| SMITH: Qwen3-8B | 79.4 | 81.7 | 56.7 | 28.7 |
| SMITH: Self-Judge | 74.7 | 85.9 | 54.5 | 16.3 |
| Granite-3.3-8B(基线) | 31.2 | 22.0 | 3.9 | 7.8 |
| SMITH: Granite-3.3-8B | 39.1 | 28.5 | 4.5 | 11.7 |
对外部工具调用的泛化
SMITH 从未在 BFCL v4 的 schema、多轮轨迹或评判器上训练,因此这里的提升隔离出的是学到的工具使用先验,而非基准特定的拟合。它在两个 Qwen 主干上都提升了 BFCL 总体准确率,在 Qwen3-8B 上尤为明显。
| Qwen3-4B-Instruct | Qwen3-8B | Granite-3.3-8B | ||||
|---|---|---|---|---|---|---|
| 指标 | Base | SMITH | Base | SMITH | Base | SMITH |
| BFCL v4 | 45.1 | 48.6 | 43.3 | 55.8 | 36.3 | 38.7 |
消融:究竟是什么在驱动增益?
我们隔离联合训练——而非仅仅拥有一个专家构建器和一个专家使用者——是否是有效成分。将一个单独训练的 30B-A3B 构建器与一个单独训练的 4B 工具使用专家配对(Decoupled Create/Use)并未胜过仅在工具创建上训练的单一模型(58.9 vs. 68.8 RG Unseen)。只有完整目标——将执行奖励和评判奖励保持为解耦轴并在一个策略中闭环——才能达到最佳综合得分。
| 方法 | πeval | 使用工具? | RG(已见) | RG(未见) | TabMWP | GQA |
|---|---|---|---|---|---|---|
| Qwen3-4B-Instruct(基础) | 不适用 | 不适用 | 61.9 | 47.0 | 19.7 | 20.9 |
| 工具创建 | 30B-A3B | 否 | 77.4 | 59.4 | 15.6 | 37.0 |
| 工具创建 | 4B | 否 | 73.9 | 68.8 | 17.7 | 35.8 |
| 解耦创建/使用 | 30B-A3B | 是 | 76.4 | 58.9 | 13.9 | 35.0 |
| SMITH:无同步 | 4B | 是 | 80.3 | 66.9 | 25.8 | 24.6 |
| SMITH:无 LLM 评判 | 自身 | 是 | 82.6 | 67.8 | 18.3 | 42.6 |
| SMITH:K = 1 | 自身 | 是 | 78.6 | 73.9 | 46.8 | 32.3 |
| SMITH:完整 | 自身 | 是 | 86.6 | 78.3 | 40.4 | 42.6 |
仅工具创建带来了强劲的分布内提升,但在分布外 GQA 上表现不佳;将构建 与使用耦合而不解耦奖励,提升了分布内准确率,却损害了留出迁移。只有 将过程质量(格式、评判)与结果正确性(执行、使用)作为独立的奖励 维度保留,才能两者兼得。
结论
SMITH 联合训练单个语言模型来创建和使用可复用工具, 闭合工具编写者与工具使用者之间的反馈回路,使策略直接在其自身的执行结果上 得到优化。在 13 个 Reasoning-Gym 任务上训练后,4B 模型在所有评估方法中 取得了最高的留出准确率,在 TabMWP-Hard 上领先,并且其编写的工具能够迁移到 训练中从未见过的 350M 学生模型,与规模大一个数量级的编写者所编写的工具相媲美。 同样的配方无需修改即可提升 Qwen3-8B 和 Granite-3.3-8B:在单个训练策略内 耦合创建与使用,是一条可扩展的泛化路径,无需更大的冻结教师模型、 更复杂的脚手架或域外监督。
BibTeX
@inproceedings{tam2026smith,
title = {Joint Optimization of Tool Creation and Use for Large Language Model Agents},
author = {Tam, Zhi Rui and Lin, Chieh-Yen and Chen, Yun-Nung and Sun, Shao-Hua and Lee, Hung-yi},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
year = {2026},
eprint = {2608.24571},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2608.24571}
}来源:Hacker News · tool-use-smith.github.io