Moonshot AI (Kimi Team) | 2026-04 | https://www.kimi.com/blog/kimi-k2-6 HF Model: https://huggingface.co/moonshotai/Kimi-K2.6 Category: llm | Tags: agent, coding, agent-swarm, MoE, MLA, quantization Read: 2026-04-21
Kimi K2.6 是 K2.5 的 post-training + 量化 + orchestration 发布,不是新底模。config.json 与 K2.5 的关键维度逐字相同(61L · d=7168 · MLA · 384E top-8 + 1 shared · YaRN 64× → 262K context),主要变化全部在:(1) 默认 INT4 compressed-tensors 出版(仅量化 routed MoE experts,attention + shared + head 保留 FP16);(2) 长程 agentic coding RL(单次 4000+ 工具调用 · 12-13 小时自主执行 · 改 4000+ LoC),是迄今开源模型最极端的长程 coding 证据;(3) Agent Swarm 横向扩到 300 sub-agent × 4000 步(K2.5 是 100 × 1500);(4) 新开 Claw Groups 异构 agent 编排范式。Benchmark 最大跳跃在 agentic 工具调用:Toolathlon 27.8→50.0(+80%)、MCPMark 29.5→55.9(+89%)、Terminal-Bench 2.0 50.8→66.7(+31%),在 coding + 长程 agent 类 benchmark 基本与 Claude Opus 4.6 / GPT-5.4 持平,纯 reasoning(HLE-Full / AIME / HMMT)仍略逊 Gemini 3.1 Pro / GPT-5.4。
Q1: 试图解决什么核心痛点? 开源 agentic 模型在持续小时级的 coding / 工具调用场景下掉链子——模型会在几十次 tool call 之后丢掉目标、做出回退式修改、或把简单任务做成 quick-hack。Kimi K2.5 已经证明架构可用,但长程稳定性、工具调用成功率、跨 session 编排仍是短板。
Q2: 怎么解? 保持 K2 / K2.5 的 1T 级 MoE + MLA 主干不动(config.json 完全相同),把所有工程投入放在 (a) 长程 coding 的 agentic RL(blog 报告 4-13 小时连续 rollout、1000-4000 次 tool call、14 轮内部迭代);(b) Agent Swarm 3× 扩容(100→300 sub-agent, 1500→4000 coordinated steps);(c) Claw Groups 异构 agent 编排(K2.6 当协调器,子 agent 可跑任何模型、部署在 laptop / 手机 / 云);(d) 默认 compressed-tensors INT4 量化发布,让 1.04T MoE 主模型单 8×H200 节点可服务。
Q3: 最终效果? 在 agentic / coding benchmark 上跳跃最显著:Toolathlon 27.8 → 50.0(+80%), MCPMark 29.5 → 55.9(+89%), Terminal-Bench 2.0 50.8 → 66.7(+31%), SWE-Bench Pro 50.7 → 58.6(+16%), BrowseComp (swarm) 78.4 → 86.3。长程 case study:Zig 语言 + Mac 环境,12 小时 4000+ 工具调用把 Qwen3.5-0.8B 推理从 15 tok/s 提到 193 tok/s(~13×,比 LM Studio 快 20%);exchange-core(8 年老 OSS 撮合引擎)13 小时 1000+ 工具调用修改 4000+ LoC,medium throughput +185% / peak throughput +133%。
Kimi K2.6 以 Kimi K2.5 的 1T MoE + MLA + MoonViT 多模态主干 整模复用为前提,通过 长程 agentic coding RL 把单次工具调用/代码编辑会话从"分钟级"推到"4-13 小时、4000+ 次工具调用"级别;同时把 Agent Swarm 扩到 300 sub-agent × 4000 steps 并打开 Claw Groups 异构 agent 编排层;默认以 INT4 compressed-tensors 发布,单节点可服务 1.04T 主模型。
Kimi K2.6 的发布哲学延续 K2.5 的"主干别动、创新放在训练和 orchestration"路线——并把它做到极致。HuggingFace config.json 显示,K2.6 的所有架构维度与 K2.5 字字相同:DeepseekV3ForCausalLM 作为文本主干(61 层,d_model=7168,MLA with q_lora=1536 / kv_lora=512 / qk_nope_head_dim=128 / qk_rope_head_dim=64 / v_head_dim=128,64 heads),384 routed experts top-8 + 1 shared expert(expert hidden=2048 SwiGLU),首层 dense(first_k_dense_replace=1),sigmoid + noaux_tc 路由,routed_scaling_factor=2.827,YaRN factor=64 扩到 262,144 context;视觉侧仍是 MoonViT-3D(27 层,d=1152,patch=14,sd2_tpool 2×2 空间 merge,vocab=163,840)。唯一的 config 新增项是 quantization_config——INT4 symmetric group_size=32 的 compressed-tensors pack-quantized 权重,仅作用在 routed MoE experts(lm_head、self_attn.、shared_experts.、mlp.(gate|up|down)_proj 全部在 ignore 名单里保持 FP16)。
真正的"新内容"完全在 post-training 和 orchestration 层:(1) 长程 agentic coding RL —— blog 两个 flagship case 证明模型能连续 4-13 小时、1000-4000+ 次工具调用、14 轮迭代下持续改善一个真实 OSS 代码库的性能(Zig 推理 15→193 tok/s,exchange-core +185% MT/s);(2) Agent Swarm 规模 3× —— 从 K2.5 的 100 sub-agent × 1500 步扩到 K2.6 的 300 sub-agent × 4000 步,且产物形态从"搜索/报告"扩展到"documents + websites + slides + spreadsheets 同轨输出";(3) Skills —— 把高质量 PDF / slides / sheets 吸收为"结构 + 风格 DNA"可复用模板(McKinsey 式 PPT、astro-paper 可视化风格等);(4) Claw Groups 研究预览 —— 异构 agent 编排层,K2.6 做协调器,子 agent 可跑任何模型、部署在 laptop / 手机 / 云,人和 agent 以"真正合作者"身份同台协作。
效果上,在 agentic + coding benchmark 基本追平 Claude Opus 4.6 / GPT-5.4(SWE-Bench Pro 58.6 领先、Terminal-Bench 2.0 66.7 仅次 Gemini 3.1 Pro 68.5、DeepSearchQA f1 92.5 大幅领先闭源对手);在纯 reasoning(HLE-Full 34.7 vs Gemini 44.4 / GPT 39.8,AIME 2026 96.4 vs GPT 99.2)上仍略逊顶尖闭源。视觉侧小幅提升但仍非重点(MMMU-Pro 78.5→79.4,BabyVision 36.5→39.8)。
pack-quantized INT4 symmetric group_size=32,仅作用于 routed MoE experts (~98% 参数);attention / shared expert / lm_head / embedding 保留 FP16。kimi_k25.py 模型文件直接复用(DeepseekV3ForCausalLM + KimiK25ForConditionalGeneration),新增 compressed-tensors quant 分支;调度器需要支持长程 agentic 会话的 prefix-cache 跨小时复用(4-13h rollout 的 262K 上下文反复增长)。




KimiK25ForConditionalGeneration = MoonViT3dPretrainedModel + K2VLMultiModalProjector + DeepseekV3ForCausalLM (验证来源: sglang kimi_k25.py:678-793)
易错点 cheatsheet:
KimiK25ForConditionalGeneration (HF auto_map 未变), 代码路径 100% 复用 K2.5; 只是 quant_config 传 compressed-tensors 分支。<|kimi_k25_video_placeholder|> token id = 163605 (HF config.json 明确)。vision_tower + mm_projector, 只靠 grid_thws 的 T 维区分。DeepseekV2DecoderLayer (sglang deepseek_v2.py:1596); layer 0 走 dense, layer 1-60 走 MoE (first_k_dense_replace=1)。
关键常量 (来自 HF config.json, 与 mermaid 图的值一致):
| config 字段 | 值 | 出现位置 |
|---|---|---|
hidden_size | 7168 | x.shape[-1] 处处 |
q_lora_rank / kv_lora_rank | 1536 / 512 | q_a_proj / kv_a_proj_with_mqa 输出 |
qk_nope_head_dim / qk_rope_head_dim / v_head_dim | 128 / 64 / 128 | 每 head 维度 split |
num_attention_heads | 64 | MLA 不做 GQA |
n_routed_experts / num_experts_per_tok | 384 / 8 | MoE |
moe_intermediate_size | 2048 | 每 expert FFN 中间维 |
routed_scaling_factor | 2.827 | combine 乘性放大 |
first_k_dense_replace | 1 | layer 0 走 dense |
易错点:
num_key_value_heads=64 看似 MHA, 实际是 MLA 用 latent 压缩代替 GQA)kv_lora_rank + qk_rope_head_dim); K_nope / V 由 kv_b_proj 运行时展开, 不进 cachere:.mlp\.(gate|up|gate_up|down)_proj. 匹配 DeepseekV2MLP 的属性名 → layer 0 dense 和 shared expert 都 命中 ignore, 保 FP16。真正 INT4 的是 mlp.experts.N.* (FusedMoE)易错点 (容易看 paper 看错的地方):
pre_norm 在 reshape 之前 — K2VLMultiModalProjector.forward 先对 [N_patches, 1152] 做 LayerNorm, 再 view(-1, 4608)。"先 merge 再 norm" 是天真实现, K2.x 不是这样linear_2 输出是 7168, 不是 1152 — sglang 的 K2VLMultiModalProjector 用 text_hidden_size (7168)。注意 vLLM 的旧同名类用 mm_hidden_size (1152) 是 legacy 路径sd2_tpool 只保留 1 帧等效K2.6 config.json 唯一比 K2.5 新增的字段: quantization_config。
量化策略推理:
group_size=32 是 AWQ 家族细粒度设置, 精度损失通常 <0.5 MMLUsymmetric 避免 zero-point 存储开销, 只存 FP16 scale per groupkv_cache_scheme = null → KV cache 仍 FP16 (MLA 的 576 fp/token 本就紧凑){{drawio:kimi-k2-6_arch.drawio#page=0&height=700}}
关键代码锚点 (走读时在你本地编辑器打开):
| 代码锚点 | 做什么 |
|---|---|
sglang/kimi_k25.py:678 | class KimiK25ForConditionalGeneration — 三件套顶层构造器 |
sglang/kimi_k25.py:700-717 | 构造 vision_tower / mm_projector / language_model 三件套的位置 |
sglang/kimi_k25.py:728 | get_image_feature — 图像路径入口 |
sglang/kimi_k25.py:774 | forward → general_mm_embed_routine 合流 |
关键易错点:
KimiK25ForConditionalGeneration — HF auto_map 未变, 代码路径 100% 复用 K2.5<|kimi_k25_video_placeholder|> token id = 163605 (HF config.json) — 图像 embed 合流的锚点 tokenvision_tower + mm_projector, 只是 grid_thws 的 T 维不同 (image T=1, video T=4)关键代码锚点:
| 代码锚点 | 做什么 |
|---|---|
sglang/deepseek_v2.py:1596 | class DeepseekV2DecoderLayer — 单层构造, 判 MoE vs dense |
sglang/deepseek_v2.py:1732-1736 | _is_layer_sparse = layer_id >= first_k_dense_replace(1) — layer 0 走 dense, layer 1-60 走 MoE |
sglang/deepseek_v2.py:1130 | class DeepseekV2AttentionMLA — MLA 的 q_a/q_b/kv_a/kv_b/o 投影构造 |
sglang/deepseek_v2.py:1191-1239 | q_a_proj + q_a_layernorm + q_b_proj 的构造逻辑 (有 fused_qkv_a_proj_with_mqa 融合路径) |
sglang/deepseek_v2.py:1219-1290 | kv_a_proj_with_mqa + kv_a_layernorm + kv_b_proj 构造 |
sglang/deepseek_v2.py:1556-1582 | prepare_qkv_latent + rebuild_cp_kv_cache — KV cache 的 576 float 布局位置 |
sglang/deepseek_v2.py:354 | class DeepseekV2MoE — gate + routed + shared + combine |
sglang/deepseek_v2.py:268 | class MoEGate — sigmoid + noaux_tc top-8 路由 |
sglang/deepseek_v2.py:189 | class DeepseekV2MLP — routed expert / shared expert / layer 0 dense FFN 都是这个类 |
关键常量 (来自 config.json):
| config 字段 | 值 | 架构图位置 |
|---|---|---|
hidden_size | 7168 | 所有 x.shape[-1] 标注 |
q_lora_rank / kv_lora_rank | 1536 / 512 | q_a_proj / kv_a_proj_with_mqa 的输出维 |
qk_nope_head_dim / qk_rope_head_dim / v_head_dim | 128 / 64 / 128 | Q/K/V split 之后的每 head 维度 |
num_attention_heads | 64 | heads 数 (MLA 不做 GQA) |
n_routed_experts / num_experts_per_tok | 384 / 8 | MoE page 的 routed experts 盒子 |
moe_intermediate_size | 2048 | 每个 expert 的 FFN 中间维 |
routed_scaling_factor | 2.827 | combine 阶段的乘性放大 |
first_k_dense_replace | 1 | 决定 layer 0 走 DeepseekV2MLP 而非 MoE |
易错点:
num_key_value_heads=64 看似 "同 MHA", 实际是 MLA 用 latent 压缩代替 GQA, 两种机制不同kv_a_proj_with_mqa 输出里的 64-dim k_pe 段是单份, 不是 64 份 per-headkv_lora_rank(512) + qk_rope_head_dim(64); K_nope 和 V 通过 kv_b_proj 运行时展开, 不进 cachere:.mlp\.(gate|up|gate_up|down)_proj. 匹配的是 DeepseekV2MLP 内部的属性名 gate_proj / up_proj / down_proj. 因为 layer 0 dense 和 shared expert 都是 DeepseekV2MLP 实例, 它们的 proj 同时命中 ignore pattern → FP16 保留。真正走 INT4 的是 mlp.experts.N.* (FusedMoE 的 routed experts)。详见上方「架构 4」关键代码锚点:
| 代码锚点 | 做什么 |
|---|---|
vllm/kimi_k25_vit.py:183 | class MoonVision3dPatchEmbed — Conv2d(3,1152,k=14,s=14) + pos emb |
vllm/kimi_k25_vit.py:126 | class Learnable2DInterpPosEmbDivided_fixed — 64×64×4 divided_fixed grid |
vllm/kimi_k25_vit.py:340 | class MoonViTEncoderLayer — 单层 encoder (attention + MLP2) |
vllm/kimi_k25_vit.py:463 | class MoonViT3dEncoder — 27 层堆叠, video_attn_type="spatial_temporal" |
vllm/kimi_k25_vit.py:523 | tpool_patch_merger — sd2_tpool 合并: spatial 2×2 merge + temporal pool |
sglang/kimi_k25.py:572 | class K2VLMultiModalProjector — 4608 → 4608 GELU → 7168 (= text_hidden_size) |
关键常量:
| config 字段 | 值 |
|---|---|
vt_num_hidden_layers | 27 |
vt_hidden_size | 1152 (= 16 heads × 72 head_dim) |
vt_intermediate_size | 4304 |
patch_size | 14 |
merge_kernel_size | [2, 2] |
merge_type | sd2_tpool |
init_pos_emb_height/width/time | 64 / 64 / 4 |
mm_hidden_size / text_hidden_size | 1152 / 7168 |
易错点 (容易看 paper 看错的地方):
pre_norm 在 reshape 之前 — K2VLMultiModalProjector.forward 先对 [N_patches, 1152] 做 LayerNorm, 再 view(-1, 4608) merge。"先 merge 再 norm" 是天真实现, K2.x 不是这样linear_2 输出是 7168, 不是 1152 — sglang 的 K2VLMultiModalProjector 用 text_hidden_size (7168). 注意 vLLM 的同名类用 mm_hidden_size (1152) 是旧路径, K2.5/K2.6 走 sglang 路径sd2_tpool 只保留 1 帧的 H×W×4608 等效详见 §1b 最后一段 + §3 Quantization & Compression。Page 4 把 quantization_config.ignore 正则精确 mapping 到 forward 图里的具体 nn.Module, 用红框标 INT4 区, 绿框标 FP16 保留区, 附每个区的 GB 估算。
因为 K2.6 和 K2.5 架构完全一样,本节重点是"证明等价"和"指出 config 的唯一增量"。
| 来源 | URL / 路径 | K2.5 | K2.6 | 结论 |
|---|---|---|---|---|
| HF config | https://huggingface.co/moonshotai/Kimi-K2.6/raw/main/config.json | — | ✅ 本次参考 | K2.6 唯一新增 quantization_config 字段 |
| HF config (K2.5 比对) | moonshotai/Kimi-K2.5/config.json | ✅ | — | |
| HF modeling | auto_map → modeling_kimi_k25.KimiK25ForConditionalGeneration | ✅ 同 | ✅ 同 | 类名仍是 KimiK25 — 说明架构 完全复用 K2.5 代码路径 |
| Text backbone | text_config.architectures = ["DeepseekV3ForCausalLM"] | ✅ | ✅ | 同 |
| SGLang 实现 | sglang/python/sglang/srt/models/kimi_k25.py (895 LOC) | ✅ | ✅ | 应可直接加载 K2.6 权重(处理 compressed-tensors 分支即可) |
| vLLM 实现 | vllm/vllm/model_executor/models/kimi_k25.py (440 LOC) | ✅ | ✅ | 同 |
| vLLM ViT | vllm/vllm/model_executor/models/kimi_k25_vit.py | ✅ | ✅ | 同 |
| 前代论文 | Kimi K2.5 arXiv:2602.02276 | ✅ 详见 notes | 复用 | K2.6 blog 未发论文 |
精确对照 K2.6 config.json 关键字段(与 K2.5 config.json 逐字比对):
| 字段 | K2.5 | K2.6 | 一致? |
|---|---|---|---|
num_hidden_layers | 61 | 61 | ✅ |
hidden_size | 7168 | 7168 | ✅ |
intermediate_size (dense) | 18432 | 18432 | ✅ |
moe_intermediate_size | 2048 | 2048 | ✅ |
num_attention_heads | 64 | 64 | ✅ |
num_key_value_heads | 64 | 64 | ✅ |
q_lora_rank | 1536 | 1536 | ✅ |
kv_lora_rank | 512 | 512 | ✅ |
qk_nope_head_dim / qk_rope_head_dim / v_head_dim | 128 / 64 / 128 | 128 / 64 / 128 | ✅ |
n_routed_experts | 384 | 384 | ✅ |
num_experts_per_tok | 8 | 8 | ✅ |
n_shared_experts | 1 | 1 | ✅ |
first_k_dense_replace | 1 | 1 | ✅ |
routed_scaling_factor | 2.827 | 2.827 | ✅ |
scoring_func / topk_method | sigmoid / noaux_tc | sigmoid / noaux_tc | ✅ |
vocab_size | 163840 | 163840 | ✅ |
max_position_embeddings | 262144 | 262144 | ✅ |
rope_theta | 50000 | 50000 | ✅ |
rope_scaling.factor | 64 | 64 | ✅ |
vision_config.vt_num_hidden_layers | 27 | 27 | ✅ |
vision_config.vt_hidden_size | 1152 | 1152 | ✅ |
vision_config.patch_size | 14 | 14 | ✅ |
vision_config.merge_kernel_size | [2,2] | [2,2] | ✅ |
vision_config.merge_type | sd2_tpool | sd2_tpool | ✅ |
quantization_config | ❌ (BF16) | ✅ 新增 INT4 pack-quantized | ❌ 唯一差异 |
结论:从 HF 配置文件判断,K2.6 不是新模型,而是 K2.5 的权重更新 + 默认量化发布。架构诊断深度分析 → 直接沿用 K2.5 notes 的 §1a / §1c 的 MLA / MoE / MoonViT 展开,本笔记不再重复。
K2.6 的 quantization_config 结构:
"quantization_config": {
"quant_method": "compressed-tensors",
"format": "pack-quantized",
"quantization_status": "compressed",
"config_groups": {
"group_0": {
"targets": ["Linear"],
"weights": {
"num_bits": 4, "type": "int", "symmetric": true,
"strategy": "group", "group_size": 32,
"observer": "minmax"
}
}
},
"ignore": [
"lm_head",
"re:.*self_attn.*",
"re:.*shared_experts.*",
"re:.*mlp\\.(gate|up|gate_up|down)_proj.*"
]
}
解读(必须细读 ignore 正则):
.self_attn. → 所有 MLA 投影(q_a/q_b、kv_a/kv_b、o_proj)保持 FP16;.shared_experts. → 1 个 shared expert 的 gate/up/down 保持 FP16;.mlp\.(gate|up|gate_up|down)_proj. → 注意这个正则通常匹配 dense 层的 MLP 投影 —— 也就是第 0 层(首 dense 层)的 FFN 保持 FP16;lm_head → 输出头保持 FP16;量化策略推理:
1.04T total / 32B active 的分布(推算自 config.json):
| 参数块 | 每 token 激活 | FP16 总大小 (GB) | K2.6 quant |
|---|---|---|---|
| Routed MoE experts (384 × 60 层 × 3 × (7168×2048) / 2 hidden) | 8×60×3×(7168×2048)/2 ≈ 27 B active | ~930 | INT4 g=32 → ~235 GB |
| Shared expert (60 × 3 × 7168×2048 / 2) | 60×3×(7168×2048)/2 ≈ 1.3 B active | ~2.5 | FP16 保留 |
| Dense MLP 第 0 层 (3 × 7168×18432 / 2) | 0.2 B | ~0.8 | FP16 保留 |
| MLA (61 × (q_a + q_b + kv_a + kv_b + o)) | ~2.5 B | ~5 | FP16 保留 |
| Embedding + lm_head (2 × 7168 × 163840) | — | ~4.7 | FP16 保留 |
| MoonViT-3D (27 × full stack) | — | ~0.5 | FP16 保留 |
| Total | ~32 B active | ~1043 | ~258 GB INT4 总权重 |
~258 GB 意味着 单节点 8×H200 (141 GB HBM × 8 = 1128 GB) 有充足空间同时承载 262K context 下几百到几千 token 的 KV cache——这正是 K2.6 默认 INT4 发布的部署语境。MLA 的 KV cache 576 float/token 在 262K 下约 1.2 GB/seq,余量足以支持多并发。
| 维度 | 数值 |
|---|---|
| 总参数 | ~1.04 T (MoE) |
| 激活参数 | ~32 B |
| 主干层数 × d_model | 61 × 7168 |
| Expert × top-k | 384 routed top-8 + 1 shared |
| Vision 塔 | 27 × 1152, 16 heads |
| Context | 262,144 (YaRN factor=64, orig 4096) |
| Vocab | 163,840 |
| 默认部署精度 | INT4 (MoE routed only) + FP16 (others) |
| Blog 推荐推理超参 | temperature=1.0, top-p=1.0 |
Blog 对预训练数据完全未披露。由于架构与 K2.5 同,可合理假设 K2.6 复用 K2.5 的 15T text + 1T ViT + 15T joint 预训流水线,主要重做 post-training(尤其 agentic RL 和 coding SFT)。
[未披露,推测复用 K2.5 基础 checkpoint][未披露] — 但 blog 强调长程 coding 案例证据,推测专门构造了长程 coding SFT trace[未披露] — 推测延续 K2.5 token-level log-ratio clip + KL penalty + MuonClip + Toggle,但 reward horizon 显著扩大到 4-13 小时 tool-use rollout[未披露] #| Stage | K2.5 (已披露) | K2.6 (推断/blog) |
|---|---|---|
| Text Pretrain | 15T tokens | 复用 K2.5 checkpoint(推测) |
| ViT Stage | ~1T | 复用 |
| Joint Pretrain | ~15T, vision:text=10:90 | 复用 |
| Mid-train (long ctx) | 500B → 200B, 32K → 262K | 复用 |
| Zero-vision SFT | text-only + IPython | 可能微调 |
| Joint Multimodal SFT | 合成 + 人工 | 可能微调 |
| Joint Multimodal RL | 按 ability 组织 | 显著重做——长程 coding / 工具调用 reward |
| Agent Swarm RL (PARL) | 100 × 1500 ceiling | 300 × 4000 ceiling, 新增 Skills |
| Quantization | 未默认量化 | INT4 compressed-tensors 出厂 |
| 类别 | K2.5 已用 | K2.6 blog 信号 |
|---|---|---|
| Optimizer | MuonClip | [推测沿用] |
| RL objective | token-level log-ratio clip + KL penalty | [推测沿用,但 rollout horizon 显著扩大] |
| Reward | rule + vision-specific + GRM + LLM-judge | [推测扩充 tool-call success + perf regression 等长程 signal] |
| Token efficiency | Toggle (budget/full alternation) | [推测延续] |
| Long-context | YaRN factor=64 | 同 |
| Quantization | [无] | compressed-tensors INT4 g=32 symmetric |
| Agent training | PARL (orchestrator RL, frozen sub-agents) | PARL + 3× swarm 扩容 + Skills 概念 |
真正难复现的一件事:长程 agentic rollout 的 reward shaping 和稳定性。blog 报告的案例(12-13 小时、4000+ tool calls)远超当前 RL 基础设施的典型 rollout 长度(分钟到小时)。这需要:
这个工程壁垒可能是开源社区短期无法复现 K2.6 长程 coding 能力的核心原因。
完整配置见 §1b。关键观察:
没有影响。kv_cache_scheme: null 明确未量化 KV cache,这与 MLA 的设计契合——MLA latent 每 token 仅 576 float(512 + 64 RoPE),FP16 就 1.15 KB/token,262K ≈ 290 MB/seq,已经足够小,不需要 KV 量化。
| 部署场景 | 硬件 | 权重 | KV cache (262K, 1 seq) | Note |
|---|---|---|---|---|
| Single seq | 4× H100 80GB (NVL4) | ~258 GB INT4 | ~290 MB (MLA FP16) | 勉强(320 GB total,需 TP+EP) |
| Single node | 8× H100 80GB | ~258 GB | 64× 290MB = 18 GB | 舒适 |
| Single node | 8× H200 141GB | ~258 GB | 100× 290MB = 29 GB | 可跑 100+ seq 并发 |
| 2 node | 16× H100 / 16× H200 | ~258 GB | 几乎无限 | 大规模推理 |
对比 K2.5 BF16 需要 ~2.1 TB 权重,必须 16× H100 以上节点;K2.6 INT4 把门槛拉到单 8 卡节点,这是开源 1T MoE 部署门槛的重要拐点。
| Benchmark | K2.6 | K2.5 | Δ | GPT-5.4 | Claude 4.6 | Gemini 3.1 Pro |
|---|---|---|---|---|---|---|
| Agentic | ||||||
| HLE-Full w/tools | 54.0 | 50.2 | +3.8 | 52.1 | 53.0 | 51.4 |
| BrowseComp | 83.2 | 74.9 | +8.3 | 82.7 | 83.7 | 85.9 |
| BrowseComp (agent swarm) | 86.3 | 78.4 | +7.9 | — | — | — |
| DeepSearchQA f1 | 92.5 | 89.0 | +3.5 | 78.6 | 91.3 | 81.9 |
| DeepSearchQA accuracy | 83.0 | 77.1 | +5.9 | 63.7 | 80.6 | 60.2 |
| Toolathlon | 50.0 | 27.8 | +22.2 (+80%) | 54.6 | 47.2 | 48.8 |
| MCPMark | 55.9 | 29.5 | +26.4 (+89%) | 62.5\* | 56.7\* | 55.9\* |
| APEX-Agents | 27.9 | 11.5 | +16.4 (+143%) | 33.3 | 33.0 | 32.0 |
| OSWorld-Verified | 73.1 | 63.3 | +9.8 | 75.0 | 72.7 | — |
| Coding | ||||||
| Terminal-Bench 2.0 | 66.7 | 50.8 | +15.9 | 65.4\* | 65.4 | 68.5 |
| SWE-Bench Pro | 58.6 | 50.7 | +7.9 | 57.7 | 53.4 | 54.2 |
| SWE-Bench Multilingual | 76.7 | 73.0 | +3.7 | — | 77.8 | 76.9\* |
| SWE-Bench Verified | 80.2 | 76.8 | +3.4 | — | 80.8 | 80.6 |
| LiveCodeBench v6 | 89.6 | 85.0 | +4.6 | — | 88.8 | 91.7 |
| SciCode | 52.2 | 48.7 | +3.5 | 56.6 | 51.9 | 58.9 |
| Reasoning | ||||||
| HLE-Full | 34.7 | 30.1 | +4.6 | 39.8 | 40.0 | 44.4 |
| AIME 2026 | 96.4 | 95.8 | +0.6 | 99.2 | 96.7 | 98.3 |
| HMMT 2026 | 92.7 | 87.1 | +5.6 | 97.7 | 96.2 | 94.7 |
| GPQA-Diamond | 90.5 | 87.6 | +2.9 | 92.8 | 91.3 | 94.3 |
| Vision | ||||||
| MMMU-Pro | 79.4 | 78.5 | +0.9 | 81.2 | 73.9 | 83.0\* |
| BabyVision | 39.8 | 36.5 | +3.3 | 49.7 | 14.8 | 51.6 |
| V* w/python | 96.9 | 86.9 | +10.0 | 98.4\* | 86.4\* | 96.9\* |
\* = blog re-evaluated under same conditions (标注原文脚注 1)
问题:短程 RL 训练出来的模型在分钟级任务很好,但 3 小时以上会退化——上下文漂移、目标遗忘、回滚到错误假设、过早提交的 hack solution。
K2.6 的做法(推断自 blog 案例 + K2.5 论文):
measured impact:
通用性:仅适用于有明确外部 reward 的场景(代码性能、测试通过率),不能直接迁移到自由对话 / 创意写作。
问题:K2.5 的 Agent Swarm 假设所有 sub-agent 跑同一个 K2.5 frozen 权重;实际用户的 agent 生态是异构的(不同厂商模型、不同设备、不同工具栈)。
K2.6 的做法:
机制(blog 描述,未量化):
通用性:挑战 LangGraph / AutoGen 等现有框架的"homogeneous agent + explicit graph"假设;如果 coordinator 可靠性足够高,可能成为开源 multi-agent 新范式。
问题:当前 LLM 处理高质量文档(McKinsey PPT、astro paper)只能"一次性阅读",每次从零理解;想复用"这种风格"很难。
K2.6 的做法:吸收高质量 PDF / slides / sheets 的结构 + 风格 DNA作为 skill,之后 agent 可调用这个 skill 让新 task 产出同样风格/质量的产物。Blog 举例:
机制:blog 未披露,推测是template extraction + few-shot conditioning:从示例文档抽结构 (sections, slide layouts, data table schemas) + 风格 (tone, figure style, color palette) 存到可检索的 skill repo,task-time 由 K2.6 读入并 condition 生成。
通用性:需要高质量 input;容易被现有方案(RAG + 风格 prompting)近似,但把它作为一等公民 agent 能力暴露给终端用户是产品级创新。
已在 §3 详述。核心价值:把 1T MoE 部署门槛从 "16+ GPU 节点" 拉到 "单 8 卡节点",对开源生态可部署性是质的变化。
| Layer | Impact |
|---|---|
| Algorithm | 长程 agentic RL(几千步 tool-use rollout)把 trajectory horizon 拉到前所未见水平;Claw Groups coordinator 训练是新的多 agent RL 子方向;Skills 把模板提取/复用提到一等公民 |
| Kernel | 无新 kernel 需求(复用 DeepSeek-V3 MLA + MoE 路径);compressed-tensors INT4 dequant + GEMM 融合在 vLLM/SGLang 已成熟 |
| Framework | 调度器需支持 4-13 小时长程 session 的 prefix-cache 跨会话复用;coordinator 需新的 task queue / failure detection / heterogeneous agent routing 抽象;长程 agentic RL 训练栈需支持超长 rollout 的 off-policy reuse |
| LLM | 证明"架构 freeze + 训练/部署大改"对 1T MoE 仍奏效;INT4 routed-only 量化是 MoE 部署的 reference point |
| Agent | 开源侧长程 coding / swarm 扩容 / 异构编排三合一发布,raising the bar for LangGraph/AutoGen/CrewAI 等现有框架;Toolathlon +80% / MCPMark +89% 的跳跃会把整个开源 agent 生态向 K2.6 的评测配置迁移 |
| Code | Kimi Code(CLI)、OpenClaw(24/7 代理)、Claw Groups(异构编排层)同步落地形成完整 agentic coding 栈;第三方集成(Vercel AI Gateway、Ollama、baseten、fireworks、blackbox.ai、factory.ai、codebuddy.ai、qoder.com、opencode.ai、hermes-agent、kilo.ai)说明生态反应速度快 |
2026 年 Q2,开源 1T MoE 生态已过"架构 low-hanging fruit"阶段——MLA、MoE、YaRN 都是社区共识。竞争重心从"模型够不够好"转移到"模型能不能做长活":
现有开源 agent 框架(LangGraph, AutoGen, CrewAI)在长程任务上有三类问题:
| 替代方案 | 为何 K2.6 不采用 | 约束证据 |
|---|---|---|
| 换架构(新 MoE / SSM / 线性注意力) | 2 个月迭代窗口太短;K2 栈已被 vLLM/SGLang 深度集成 | config.json 逐字未变 |
| 更大底模(2T、3T) | 1T MoE 已在 8×H100 单节点紧张,再大必须强制多节点 → 部署生态收窄 | INT4 发布恰好把门槛压到单节点 |
| 纯 SFT 做长程 | 长程工具调用的 reward 无法在 SFT 阶段人工标注(1 条轨迹 = 几万 token),必须依赖 过程奖励 + 最终奖励的 RL | blog 强调"less likely to hack"—— SFT 无法显式惩罚 hack |
| 同构 swarm(K2.5 路线) | 生态接纳度低,只能做 Kimi 自己的子 agent;限制第三方 agent 接入 | Claw Groups 的异构需求 |
| W4A4 全量化 | MLA + shared expert 对量化误差敏感,全量化会掉 MMLU/GPQA 2-5 分 | ignore 名单排除 self_attn 和 shared_experts |
用一句话抓住关键:当底模架构达到"够用"的饱和点,下一步的杠杆是把 RL rollout horizon 从分钟级推到小时级——本质是让模型在训练阶段就"体验过"数千步 tool use 的长时依赖,把长程规划能力"刻进"权重里。
类比:就像一个刚会写 CRUD 的初级工程师(K2.5)vs. 一个能独立重构遗留系统的中级工程师(K2.6)——二者的差别不在算法知识,而在耐心 + 系统性 + 对失败的鲁棒性,这些都是通过大量真实项目的反馈循环磨出来的,而不是更多理论书。
博客性质决定 作者证明 只有 empirical form(不是 technical report),因此:
可攻击面:
从 作者证明 到 reported numbers 的一阶映射:
最难复现的一件事(见 §2f):长程 agentic RL 的 trajectory-level reward shaping + rollout 基础设施。具体三个难点:
| Step | Premise (cite) | Conclusion | Evidence |
|---|---|---|---|
| 1 | K2.5 架构已能支持 1T MoE + MLA + 262K context(K2.5 paper Table 1, config.json) | 继续在底模上改性价比不高,饱和点已近 | K2.6 config.json 与 K2.5 逐字相同 |
| 2 | 开源 agent 在几十次 tool call 后退化(benchmark 数据 K2.5 Toolathlon 27.8 / MCPMark 29.5) | 长程 agentic 稳定性是最大短板 | Toolathlon / MCPMark 分数水平 |
| 3 | 长程 RL rollout(4000+ step, 4-13h)能在训练时"刻入"长程规划 | 这是攻克 step 2 的钥匙 | Zig/exchange-core 两个 13h case 的存在性证明 |
| 4 | + Agent Swarm 3× 扩容 + Claw Groups 异构编排,把单 agent 突破放大到 multi-agent 系统 | 形成从模型能力→编排能力→生态接纳的完整栈 | 300 sub-agent / Skills / 11 合作伙伴 |
| 5 | + INT4 默认发布把部署门槛从多节点拉到单节点 | 让上述能力普惠开源社区 | compressed-tensors config + ~258 GB 推算 |
| Final | K2.6 在"底模冻结 + RL/编排/量化三轴并行"策略下,是开源 agent 生态在 2026 Q2 的最佳可部署选项 | benchmark 表 + 案例 + 第三方评价 |
Load-bearing steps: 1, 3, 5(若其中任一 false,整个论点失效)。
Decorative steps: 4(Claw Groups 即使未发布,K2.6 本身仍有价值,但 step 5 不行,因为 1T 模型不普惠部署就没有开源价值)。
| 来源 | 路径 | 用途 |
|---|---|---|
| HF config | https://huggingface.co/moonshotai/Kimi-K2.6/raw/main/config.json | K2.6 架构 + 量化 ground truth |
| HF config (K2.5 对照) | https://huggingface.co/moonshotai/Kimi-K2.5/raw/main/config.json | 证明 K2.6 架构未变 |
| HF modeling | modeling_kimi_k25.KimiK25ForConditionalGeneration (trust_remote_code) | 类名仍是 K25,说明 K2.6 完全复用 K2.5 代码 |
| SGLang | sglang/python/sglang/srt/models/kimi_k25.py (895 LOC) | 端到端 multimodal 推理路径 |
| vLLM | vllm/vllm/model_executor/models/kimi_k25.py (440 LOC) + kimi_k25_vit.py | 多模态 processor + ViT |
| Blog | https://www.kimi.com/blog/kimi-k2-6 | 发布信息、benchmark、case study、合作伙伴引言 |
| K2.5 论文 | arXiv:2602.02276 → notes/2602.02276.md | 继承架构、训练细节、PARL 公式 |
| K2 论文 | arXiv:2507.20534 | 最早的 K2 主干设计 |
| 外部参考 | Kimi Linear arXiv:2510.26692 | K2 系列的 linear attention 变体方向 |
Paper × code 对照核验:
config.json.text_config.architectures = ["DeepseekV3ForCausalLM"] → 文本主干 100% DeepSeek-V3 风格auto_map.AutoModel = "modeling_kimi_k25.KimiK25ForConditionalGeneration" → 模型类名 K25 未变 → K2.6 不需要新 modeling 代码, 只需加载权重 + 处理 compressed-tensors 量化vision_config.merge_type = "sd2_tpool" + patch_size=14 + merge_kernel_size=[2,2] → MoonViT-3D 完全同 K2.5(SigLIP-SO-400M 派生 + 2×2 spatial merge + temporal pool)rope_scaling.type = "yarn" + factor=64 + original_max_position_embeddings=4096 → YaRN 64× 扩到 262,144,与 K2.5 一致quantization_config.quant_method = "compressed-tensors" + format = "pack-quantized" → 唯一的部署层新增