快手开源KAT-Coder-V2.5-Dev :35B-A3B MoE 编程智能体,七项基准拿下同规模 Agentic Coding SOTA!
快手 KAT 团队开源编程智能体模型 KAT-Coder-V2.5-Dev。它是 KAT-Coder-V2.5 的开源版本,采用 Apache-2.0 协议,总参数量 35B、激活参数量仅 3B(MoE 架构),面向真实软件工程任务中的自主编程(Agentic Coding)场景。
按团队公布的内部复现结果,在同等参数规模的模型中,KAT-Coder-V2.5-Dev 在 Agentic Coding(智能体编程) 领域取得了 SOTA:SWE-bench Verified 69.40、SWE-bench Multilingual 63.00、SWE-bench Pro 45.96,七项编码智能体基准全部位列同规模第一。

除分数外,团队还通过 RL 阶段针对性的奖励设计显著抑制了模型的异常行为:异常工具标签从 9.34% 降至 0.28%,单轮持续重复从 0.34% 降至 0%。对于需要长程多轮工具调用的智能体场景,这类行为稳定性往往比单点分数更能决定实际可用性。
模型权重与配置文件已全面开源,欢迎下载使用:
- ModelScope:https://modelscope.cn/models/Kwaipilot/KAT-Coder-V2.5-Dev
- 技术报告:https://modelscope.cn/papers/2607.05471
核心指标
表中所有指标均为KAT内部复现:下载公开的模型 checkpoint,通过 vLLM 或 SGLang 部署,并在统一标准化的流程下进行评测,不直接采用任何相应模型的官方报告结果。每个模型在每个评测集上仅测试一次,仅当发现明显错误时才进行重测。
1. 编程智能体(Coding Agent)

其中 Terminal-Bench 2.1 的 41.02 为两套智能体 harness 的平均值,单独得分为 Terminus-2 32.60 / Claude Code 49.44。
几个值得注意的点:
- SWE-bench 系列全面领先。 Verified 上以 3B 激活参数超过 Qwen3.5-27B(68.60)这类稠密模型;Multilingual 与 Pro 的领先幅度更大(分别领先 5.33 与 3.83 个百分点),说明优势不只体现在英文主流仓库上。
- Scicode 44.20,领先第二名近 7 个百分点。 该评测考察科学计算代码生成,对模型的领域知识与长程推理都有要求。
- Terminal-Bench 2.1 在两套 harness 上表现均衡。 部分对比模型在更换 harness 后波动很大,而稳定性恰恰是智能体落地的关键。
2. 评测配置
- SWE-bench Verified / Multilingual / Pro,KAT-Code-Bench:agent=claude_code@2.1.195,pass@k=1,temperature=1.0,top_p=0.95,256k 上下文
- Terminal-Bench 2.1:agent=terminus-2 / claude_code,pass@k=1,temperature=0.7,top_p=1.0,256k 上下文
- PinchBench:agent=openclaw@2026.3.13,pass@k=1,temperature=0.7,top_p=1.0,256k 上下文
- Scicode:pass@k=1,temperature=0.6,top_p=1.0,256k 上下文
3. 异常情况说明
为保持评测透明,团队如实说明三处与官方结果或预期不符的情况:
- Qwen3.6-35BA3B:在 SWE-bench Verified / Multilingual / Pro 上,本次结果与官方结果约有 10 个百分点的差距。团队认为这主要由 harness 版本以及 Qwen 团队对测试集所做的一些优化导致,应当不是模型本身的问题。
- Qwen3.5-35BA3B:评测中观察到频繁的幻觉,包括尝试调用当前智能体环境下不可用的 MultiEdit 工具,对最终指标产生了负面影响。
- Gemma4-26B-A4B-it:两个因素拉低了表现——上下文溢出(超过 256k 限制),以及对不支持的 MultiEdit 工具的幻觉调用。
上述偏差源于模型的工具偏好与评测 harness 所允许的工具集之间的不匹配,而非模型本身能力的局限。
核心技术点
1. 整体思路:在公认强基座上验证后训练方案
为系统性地展示团队在数据与算法方面的工作,KAT 团队没有从零训练基座,而是采用被广泛认可的 Qwen3.6-35B-A3B 作为后训练起点,在其之上构建 KAT-Coder-V2.5-Dev。
这个选择本身就是一种实验设计:当基座公开可查、社区已充分评测时,后训练带来的增益就变得可归因、可复现。
KAT-Coder-V2.5-Dev 在很大程度上沿用了 KAT-V2.5 的后训练方案,大多数设置——包括数据构建、训练流程与优化策略——保持不变。整个流程包含两个阶段:先在 127K 条样本的数据集上对 Qwen3.6-35B-A3B 进行监督微调(SFT),再在得到的 SFT 模型上进行强化学习(RL)。
对照核心指标可以看到:同一基座 Qwen3.6-35BA3B 的 SWE-bench Verified 为 64.40,经过SFT + RL 后达到 69.40,七项基准全面提升。
2. 可验证环境与高价值数据
KAT-Coder-V2.5-Dev 的训练数据建立在两条已验证的流水线上。其一是面向软件工程的 AutoBuilder:以智能体驱动的方式,从真实仓库自动重建可复现、可执行、可验证的沙箱环境,并用 fail-to-pass / pass-to-pass 测试校验每个任务;借助基础环境、语言与构建系统模板以及可复用配置库,环境构建成功率从 16.5% 提升到 57.2%,最终产出覆盖 12 种语言、超过 10 万个可验证环境。其二是数据飞轮:对「近失败」轨迹注入过程级提示做二次挖掘(可把原本零通过任务的通过率提升到约 20%),再用过程打分过滤掉依赖硬编码、绕过机制、测试作弊等低质量轨迹,让训练信号既稠密又干净。

3. RL 基础设施:四个已验证的关键设计
Agentic Coding 的 RL 训练难点不在算法本身,而在「训练信号是否可信」。一次执行超时、一个验证器误判、一次 tokenizer 行为差异,都会被模型当作真实反馈学进去。团队保留了在 KAT-V2.5 中已验证的四个组件:
(1)Token-in-Token-out(TITO)一致性。 团队使用 TITO 确保 rollout 阶段与训练阶段的 token 序列严格一致,避免因 chat 模板、序列化或 tokenizer 行为差异而导致的训练偏差。这类偏差在多轮工具调用场景下会被逐轮放大,是最容易被忽视的「静默 bug」。

(2)截断重要性采样(Truncated Importance Sampling,TIS)。 为缓解异步 rollout 引入的策略陈旧(policy staleness)与 off-policy 问题,团队应用 TIS 截断重要性采样权重,降低由过大权重带来的方差与不稳定性。
(3)可靠的沙箱与验证器。 团队系统性地检查并验证沙箱与验证器的稳定性与正确性。这有助于避免基础设施故障——例如执行超时、环境错误或验证器误判——被错误地当作模型失败,从而污染奖励信号。
(4)基于 harness 执行反馈的分层奖励。 团队基于 harness 提供的细粒度执行反馈构建分层奖励。这使模型在朝最终任务目标优化的同时,也能因未成功轨迹中的有意义进展而获得奖励,从而提升失败尝试的训练价值,并提供更稠密的奖励信号。
4. 换基座带来的新问题:并行工具调用崩溃与针对性奖励适配
换基座过程中最值得一提的,是一段关于并行工具调用崩溃的经历。
Qwen3.6 表现出与 KAT-V2.5 所观察到的不同的轨迹模式,需要针对其行为进行额外的奖励适配。在初步实验中,简单的 0–1 二值奖励会导致模型早在第二个 epoch 就发生崩溃。
对训练轨迹的分析揭示了原因:随着训练推进,模型越来越倾向于在单轮内发起大量并行工具调用——有时甚至超过 70 次。这一行为导致上下文长度快速增长,产生大量无效轨迹与执行错误,最终破坏了 RL 训练的稳定性。
值得注意的是,从二值奖励的视角看,这种行为并不「错」——模型只是在用尽可能多的并行探索去撞对答案。真正的问题在于奖励函数没有对「探索成本」和「轨迹合法性」作出任何约束。
为解决该问题,团队在原有分层奖励的基础上,增加了若干针对 Qwen3.6 的惩罚项(包括但不限于以下几项):
- 单轮内过多的并行工具调用;
- 失败的工具调用;
- 空的工具调用块;
- 大量重复内容。
这些有针对性的奖励调整有效地抑制了病态的工具使用与重复生成行为,使得 RL 训练能够稳定进行 10 个 epoch。下图为 RL 训练过程中,一个 batch 的样本内通过单元测试(通过为 1,失败为 0)的样本占比:

奖励适配的效果可以直接从训练轨迹中统计出来。在某一训练步的 240 条成功轨迹、共 6489 个含工具调用的回合中,单回合并行工具调用数的分布为:
单回合并行工具调用数
1
2
3
4
5
6
7
回合数
1666
2932
1756
124
8
2
1
均值 2.06,中位数 2,最大值 7,超过 8 的回合占比为 0。对照崩溃期「单轮有时超过 70 次并行调用」,可以看到惩罚项并非把分布整体压低了一点,而是给它加上了一个明确的上限:模型仍然会并行(超过七成回合发起 2–3 个并行调用,说明并行探索的能力保留了下来),但不再用「一次撒 70 个网」的方式去撞答案。前文效果预览中那条轨迹的第一个回合正好并行发起 2 个 Grep,就是这一分布的典型形态。
这也解释了开篇提到的行为指标改善:异常工具标签 9.34% → 0.28%,单轮持续重复 0.34% → 0%。在智能体场景中,奖励设计需要同时对齐「任务目标」和「行为规范」,缺了后者,前者也难以稳定达成。
整体训练流程与针对 Qwen3.6 的奖励设计的有效性与可行性,已在实验中得到验证。
模型推理
KAT-Coder-V2.5-Dev 采用 Hugging Face Transformers 格式,兼容 Transformers、vLLM、SGLang、KTransformers 等主流框架。
重要:本次开放权重仅包含语言模型权重。vLLM 部署时 –language-model-only 是必需的——它让 vLLM 跳过视觉编码器与多模态 profiling;不加该参数,vLLM 会尝试初始化 checkpoint 中不存在的视觉塔权重并启动失败。
使用 vLLM 部署
推荐 vllm>=0.19.0,在全新环境中安装:
uv pip install vllm --torch-backend=auto
启动 API 服务(8 卡张量并行,262,144 tokens 上下文),端点为
http://localhost:8000/v1\
:
vllm serve Kwaipilot/KAT-Coder-V2.5-Dev \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--language-model-only
需要支持工具调用时(智能体场景建议开启):
vllm serve Kwaipilot/KAT-Coder-V2.5-Dev \
--port 8000 \
--tensor-parallel-size 8 \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--language-model-only
使用 SGLang 部署
推荐 sglang>=0.5.10,在全新环境中安装:
uv pip install sglang[all]
启动带工具调用支持的服务:
python -m sglang.launch_server \
--model-path Kwaipilot/KAT-Coder-V2.5-Dev \
--port 8000 \
--tp-size 8 \
--mem-fraction-static 0.8 \
--context-length 262144 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
若你使用的 SGLang 版本在加载时尝试构建多模态/视觉组件,启动可能因缺少视觉权重而失败;此时请使用该版本的纯语言模型选项(参见 python -m sglang.launch_server –help)。
调用示例
服务启动后可通过 OpenAI SDK 调用:
pip install -U openai
export OPENAI_BASE_URL="http://localhost:8000/v1"
export OPENAI_API_KEY="EMPTY"
from openai import OpenAI
client = OpenAI()
chat_response = client.chat.completions.create(
model="Kwaipilot/KAT-Coder-V2.5-Dev",
messages=[
{"role": "user", "content": "写一个返回第 n 个斐波那契数的 Python 函数。"},
],
max_tokens=32768,
temperature=0.7,
top_p=0.8,
presence_penalty=1.5,
extra_body={"top_k": 20},
)
print(chat_response.choices[0].message.content)
模型默认会先思考再作答。若需要直接输出(非思考模式),在
extra_body
中加入
"chat_template_kwargs": {"enable_thinking": False}
即可。
此外,KAT-Coder-V2.5-Dev 经过额外训练以保留并利用历史消息中的思考轨迹,通过 "chat_template_kwargs": {"preserve_thinking": True} 开启。这一能力对智能体场景尤为有益:维持完整推理上下文可以增强决策一致性,在很多情况下还能通过减少冗余推理来降低整体 token 消耗,同时改善 KV cache 利用率。
更完整的部署说明(含超长文本 YaRN 配置、KTransformers 与 Transformers 方式)请见仓库 README。
更多推荐




所有评论(0)