LangSmith Fine-Tuning 发布:用 smithtune 把 Agent 轨迹变成专属微调模型
LangSmith Fine-Tuning 发布:用 smithtune 把 Agent 轨迹变成专属微调模型
译者按:本文翻译自 LangChain 官方博客 Introducing LangSmith Fine-Tuning(作者 A. Gola、J. Broekhuizen、V. Trivedy,2026 年 9 月 24 日发布)。为符合中文技术阅读习惯,trajectory、post-training、SFT、harness、trace 等术语保留英文原文。
核心要点
- 用 LangSmith Fine-Tuning CLI 和它的 skill ——
smithtune—— 把存在 LangSmith 里的 agent 轨迹,端到端地转成一个微调模型,全部在一个工作流里完成。 - 除了驱动训练,
smithtuneCLI 还负责评估微调后的模型,并把评估结果上传回 LangSmith,方便分析。 - 我们与 Fireworks 和 Baseten 合作,在 LangSmith 轨迹与两家平台上的微调数据集之间建立了无缝衔接。
今天我们发布 LangSmith Fine-Tuning 和 smithtune —— 一个 CLI,帮团队把 LangSmith 轨迹变成自己 agent 的专属微调模型。它用一个 CLI 包办整个微调流程:从 LangSmith 轨迹创建和准备数据集、在 Fireworks 或 Baseten 上训练、用 LangSmith 做评估。你可以直接跑 smithtune,也可以让你的 coding agent 来执行命令并检查结果。
smithtune 是为 post-training 模型打造的,目前支持监督微调(SFT)——用"好行为"的示例来训练模型。你给模型输入/输出,它通过更新模型权重去模仿这些行为。LangSmith 的轨迹数据本身就是为支持 SFT 设计的,smithtune 负责把这些轨迹变成有用的训练数据。
这给了团队一条不用手搓数据管线、就能训练专属模型的路径。一个用你的示例训练出来的模型,在特定任务上往往能做到和通用前沿模型一样好、甚至更好,而且成本和延迟通常更低。
在 GitHub 上试用 LangSmith Fine-Tuning,让你的 coding agent 从仓库里安装 smithtune skill,端到端地驱动整个微调流程。
"微调收益最大的驱动因素之一就是数据选择。随着 smithtune 发布,把这个闭环打通容易多了——从 LangSmith 里精选过的生产 trace,到托管训练,再到 Fireworks 上部署好的模型。团队可以从数据无缝走到训练、再走到部署,中间不用自己搭任何基础设施。这正是我们很兴奋能和 LangChain 一起构建的路径。"
—— Pranav Jain,Fireworks 产品负责人
"smithtune 与 Baseten Loops 的集成,让团队能在几分钟内从数据收集走到跑微调实验。开发者可以持续收集、筛选更好的数据,借助 Loops 提供的全托管训练基础设施,让模型随时间变得越来越好,从而把精力放在设计最核心的客户用例上。"
—— Aaron Ellis-Bloor,Baseten 应用研究员
Agent 轨迹与 post-training
在深入讲 smithtune 的能力之前,我们先聊聊 agent 轨迹(trajectory)。
一条轨迹是一串有序的 message、tool call 和 tool result,展示了 agent 是怎么一步步完成任务的。LangSmith会从一个 trace 或 thread 里组装出这串序列,把受支持的消息格式统一成一种公共表示,保留 tool 定义,并去掉重复的历史。
LangSmith 的轨迹格式在设计时就考虑了 post-training。对于 SFT,student 模型需要 teacher 模型在产出成功结果时所拥有的那份完全相同的上下文。在复杂的长跑 agent 里,tool 的可用性上下文常常随着 agent 工作而变化(比如 deferred tool loading),如果只是朴素地把最终消息列表导出来,这种细微变化就丢了。LangSmith 的轨迹格式精确记录了模型在每一轮看到了什么,因此 smithtune 能把每个动作和它真实的上下文配对起来。
smithtune 在整个工作流里都用到轨迹。你筛选出成功的示例轨迹,针对选定的模型把它们准备好,用它们记录下来的 response 和 tool call 去训练。而那些被排除在训练集之外的轨迹,则为评估提供上下文和参考动作。
分步走一遍
建立你的数据集(Build your dataset)
数据集里装着 target 模型要去拟合的"黄金"轨迹。这份数据是监督微调的基础。
用 smithtune 创建数据集有几个关键阶段:
拉取数据集(Pull Dataset):
smithtune从一个 LangSmith tracing project 把轨迹拉到一个本地目录DIR,支持可选过滤条件。标注轨迹(Label Traces):
smithtune和人类(以及他们的 agent)一起,找出"好"trace 的特征,据此建一套评分标准(rubric),然后派出一组 agent 去审查并筛出适合 SFT 的候选轨迹。存储持久数据集(Store a persistent dataset):
smithtune确保任何用于训练的数据日后都能被审计,成为一个持久产物。它把达成一致的黄金轨迹集合上传到 LangSmith dataset,用于训练和评估。
整个过程里,smithtune 会处理这些细节:
- 通过过滤超出指定序列长度的 trace,确保轨迹和所选模型兼容
- 把数据切成 train/val/test 划分,供后续评估使用
训练一个模型(Train a model)
在真正提交训练之前,smithtune plan 帮人先过一遍设置,比如选定的模型、训练样本数量,以及学习率、batch size、epochs 之类的超参数。
你可以在运行 smithtune train 开始微调任务前调整这些设置。smithtune 把任务提交给 Fireworks managed SFT或 Baseten Loops,它们在你准备好的轨迹上支持 LoRA 训练。你这边不用管 GPU 供给,也不用管训练基础设施。训练期间,smithtune 还会检查验证集上的表现,挑选验证 loss 最低的那个 checkpoint 保存下来。
评估结果(Evaluate the result)
训练完成后,运行 smithtune evaluate 把选中的 checkpoint 和 base 模型做对比。
smithtune 用内置的 replay evaluation 来测试 base 模型和微调模型。评估的是模型能否完成黄金轨迹里的动作,再由一个 judge 把这些预测与真实记录下来的示例打分比对。
CLI 会返回一个 LangSmith 对比链接,随着评估推进,结果会陆续出现。你可以对比分数、检查单个 response 和 tool 选择,看清楚微调在哪些地方帮上了忙、又在哪些地方引入了回归。
部署你的模型(Deploy your model)
如果对评估结果满意,用 smithtune deploy 部署你调好的模型,并把它接到你的应用上。
如果结果不是你要的,就回头改数据集或调整训练设置,然后再训练、再评估。你可以和你的 coding agent 一起,在 LangSmith 里看这份对比,找出哪些 response 或 tool 选择还需要改进。
实践中的结果
为了评估 smithtune 这套流程的质量,我们把它用在了 LangChain 内部两个高频使用的 agent 上:
- Engine分析 agent trace,找出失败并归类相关问题。我们用它内部某个 agent 的精简版本,测试 SFT 能否提升它识别和归纳这些问题的能力。
- OpenSWE Review审查我们真实仓库里的代码变更。我们测试 SFT 能否在保持审查质量的同时,减少找 bug 所需的工作量。
Engine:靠专业化提升任务表现
我们筛选出一批好轨迹,用它们微调 base Kimi K3。base Kimi 模型本来就很强,但我们对它和 GPT-5.6 Sol 的 harness engineering 已经到了推不动的程度。微调后的模型在 IssueBench(我们内部的 issue 检测与归类 benchmark)的一个子集上,分数明显高于 base Kimi 和 GPT-5.6 Sol。
| 模型 | 任务分 ↑ |
|---|---|
| GPT-5.6 Sol | 87.0 |
| Kimi K3 | 90.0 |
| Kimi K3 + SFT | 96.0 |
OpenSWE Review:同等质量,更少调用
我们还在一个内部评估集上评估了 Qwen-3.8-27B,这个评估集用的是真实 pull request,用来衡量代码审查质量和 bug 检测。在这次对比里,SFT 把 F1 从 48.9% 提到 53.7%,同时模型调用少了 29.8%、tool 请求少了 29.4%。
| 模型 | F1 ↑ | Precision ↑ | Recall ↑ | 每次审查的模型调用 ↓ | 每次审查的 tool 请求 ↓ |
|---|---|---|---|---|---|
| Qwen-3.8-27B | 48.9% | 62.9% | 40.0% | 55.9 | 65.8 |
| Qwen-3.8-27B + SFT | 53.7% | 81.5% | 40.0% | 39.2 | 46.5 |
早先用的一套筛选不那么严格的数据集,SFT 之后 F1 反而下降了。于是我们回到数据筛选流程,为每条 Trace 加了一个审查阶段,刻意对"agent 认为潜在问题确实存在"的那些 trace 做上采样(oversample)。
实际的机会是:审查质量相当,但模型和 tool 调用更少。这意味着每次审查更便宜,每个 PR 的审查时间更短。
post-training 的注意事项
什么时候 SFT 划算
当你的应用在执行重复性任务、而且你手上有它应该怎么表现的示例时,SFT 特别有用。去找那些你想让模型学会的稳定模式,比如遵循工作流、用 tool result 决定下一步、以及验证自己的工作。
我们建议团队先从 harness engineering 入手,看看一个更好的 harness 是不是就能带来不错的表现。如果 agent 在某些任务上仍反复犯错,而你又有轨迹能展示这个任务正确的做法,那 SFT 就是很值得一试的候选。
数据选择
我们反复发现,最成功的 post-training 都来自在训练数据选择上投入的时间。smithtune 明确地帮助用户和 agent 一起看数据;我们也发现,让领域专家和 agent 协作审查 SFT 用的 trace,能提高 post-training 成功的概率。
上手 LangSmith Fine-Tuning
LangSmith Fine-Tuning 现已进入 Public Beta。要开始使用,你需要:
- 一个LangSmith 账号,里面有来自你 agent 的 trace
- 一个 Fireworks或 Baseten的 API key
smithtuneCLI
在 GitHub 上试用 smithtune,告诉我们你想看到什么。我们持续改进 LangSmith 里的微调工作流,非常期待你的反馈。
在 GitHub 上开始使用 LangSmith Fine-Tuning。
参考文档与链接
- Introducing LangSmith Fine-Tuning(原文) — LangChain 官方博客,A. Gola、J. Broekhuizen、V. Trivedy,2026-09-24
- langchain-ai/smithtune — smithtune CLI 开源仓库
- smithtune skill 定义 — 让 coding agent 驱动微调流程的 skill
- Trajectories now in LangSmith — 轨迹数据的由来与格式
- The anatomy of an agent harness — 先做 harness engineering 再考虑 SFT 的理由
- Fireworks 微调文档 — 托管 SFT 服务
- Baseten Loops — 托管训练基础设施
- Advanced tool use(Anthropic) — deferred tool loading 与轨迹上下文
- LangSmith Platform — 轨迹与评估的载体
- New in LangSmith: Engine v2, Managed Deep Agents, Fine-Tuning, and More — 同期发布的其他 LangSmith 新功能
你的 agent 有在 LangSmith 里攒轨迹吗?会考虑拿它们去微调吗?评论区聊聊。觉得有用的话,点个赞让更多人看到。
作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/
关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top
本文首发于 AI人工智能时代,转载请注明出处。