Kimi K2.5: Visual Agentic Intelligence

Moonshot AI · Kimi Team · 2026-02-02 · arXiv:2602.02276
关键词: multimodal · agentic · Agent Swarm · zero-vision SFT · joint multimodal RL · MoonViT-3D · PARL

速读卡片 (TL;DR)

一句话:K2.5 用原生多模态联合训练 + zero-vision SFT + joint multimodal RL 让 vision 与 text 互相增强,再用 Agent Swarm (PARL) 把"长串 sequential tool-call"变成"orchestrator + 一群 frozen 专精 sub-agent 的并行执行",在 BrowseComp 拿到 78.4% (vs single-agent 60.6%) 同时提速 3–4.5×。

15T
vision-text 联合预训练 token
+17.8
BrowseComp Swarm vs Single-Agent
4.5×
WideSearch wall-clock 加速上限

立场:这是一份"系统报告"而非单点 idea 论文。两条主线: (1) 把 vision 当作 text 的"训练泛化器"而不是后挂模块;(2) 把 multi-agent orchestration 从 prompt-engineering 提升为 RL 学出来的策略,用 critical-step 做 latency 优化指标。


1 · 动机:为什么 K2.5 必须做 Agent Swarm + 多模态联合优化

1.1 历史脉络:从 VLM 拼接到原生多模态再到 agentic

2023–2024 主流路线把 vision 当作"后挂模块":先训一个纯文本 LLM,然后在训练后期注入 vision token (Qwen2-VL, LLaVA, Seed1.5-VL 都是 50%+ 的 vision ratio 集中在末段)。这种做法的 implicit 假设是:"语言能力是基底,vision 是 capability add-on。" K2.5 直接挑战了这个假设——他们做了一组 ablation (Table 1):在固定总 token 预算下,early fusion + 低 vision ratio (10%) 在 vision-knowledge / vision-reasoning / OCR / text 等所有指标上都打过 mid-fusion (20%) 和 late-fusion (50%)。

另一条线是 agentic:从 ReAct → Toolformer → Kimi-Researcher (端到端 RL) → K2-Thinking (能跑数百 step 的 long-horizon)。但 K2-Thinking 撞上了一个新天花板:sequential 推理深度有限。一个 episode 几百 step,context 累积 →100k+ token,最后 model 注意力分散,reasoning 退化。

1.2 单 agent 为什么"够呛"——别的方案为什么不够

路线怎么做限制
更长 context (Kimi K2-Thinking)把 context 拉到 256k,sequential 多 step每 step linear scaling, latency 与 task 复杂度成 O(N)
Hide-Tool-Result / Discard-all (DeepSeek-V3.2)溢出时反应式截断/丢弃 history丢失中间 reasoning,信息损失不可控
Static planner + workers (LangGraph 类)用人工/prompt 写好 DAG不能根据问题特性动态决定要不要并行
End-to-end multi-agent RLorchestrator + sub-agent 一起训credit assignment ambiguity + 训练不稳定
Vision SFT (manual CoT)人工标注"看图 → tool 调用"轨迹多样性差,只覆盖 crop/rotate 这类原始操作
K2.5 Agent Swarm + zero-vision SFT 👈orchestrator 训,sub-agent freeze;text-only SFT 激活 vision tool-use解耦 credit assignment + 借 text 数据多样性激活 vision

1.3 为什么这事不平凡

三个非显然的工程/理论难点:

Single Agent (sequential) s1 s2 s3 s4 s5 s6 s7 s8 wall = 8 Agent Swarm (orchestrator + frozen sub-agents) orch A:web B:doc C:code a2 b2 (max) c2 orch:agg critical = 1 + 2 + 1 = 4 同样工作量 8 step → 并行后 critical path 只 4 step (sub-agent B 是瓶颈)
对比图: 单 agent 把 8 个 step 串行跑;Agent Swarm 让 orchestrator 拆出 3 路并行 sub-agent (web 检索 / 文档读取 / 代码),critical step 由最慢的那一条 branch决定。这就是 K2.5 把 latency metric 从 total-step 改为 critical-step 的原因——奖励"balanced 拆分"而不是"无脑切片"。
核心 motivation 一句话:当 task 复杂度增加时,sequential 路径的 latency 是 O(N);并行 + 学出来的拆分策略可以把 latency 压到接近 O(max branch) ≈ O(√N) 甚至常数。但前提是 RL 必须能学出"什么时候并行才有意义"——这不是 prompt 模板能做到的事。

2 · 背景速查

2.1 关键术语

术语含义
MoonViT-3DK2.5 的 vision encoder。NaViT 风格 patch packing,共享参数处理 image + video,4 帧组合做 spatiotemporal volume,4× temporal compression
Native-resolution不切 sub-image,把原图直接 patch + flatten,支持任意宽高比
Zero-Vision SFT纯 text SFT 数据(图像操作通过 IPython 的 PIL 等程序化操作 proxy),无人工 vision trajectory。竟然能激活 visual tool-use
Joint Multimodal RLRL 不按模态分 expert,而按"能力"(knowledge / reasoning / coding / agentic) 分,text 和 vision 同 batch 训
Agent SwarmK2.5 的多 agent framework: trainable orchestrator + frozen sub-agents
PARLParallel-Agent RL,K2.5 训 orchestrator 的 RL 方法。仅 orchestrator 更新,sub-agent 是 environment
Critical Steps并行 episode 的 latency 指标 = Σₜ (S_main + maxᵢ S_sub,i),源自 critical-path scheduling
Serial collapseRL 局部最优:orchestrator 学到"全自己干"——这是要主动避免的退化
Spurious parallelismreward hacking:疯狂开 sub-agent 但都不完成。需要 r_finish 惩罚
GRMGenerative Reward Model,让一个 LLM 生成 fine-grained rubric 评分,用于 open-ended task
ToggleK2.5 的 token-efficient RL 调度,Phase0 (限 budget) 和 Phase1 (放开) 交替,降低 25–30% 输出 token
DEPDecoupled Encoder Process: 训练时 vision encoder 与 backbone 解耦执行,把 multimodal 训练效率拉到 90% (相对纯 text)

2.2 K2.5 总览


3 · 原生多模态预训练: early fusion + low ratio

核心结论一句话: 固定 total token 预算下,vision ratio 不重要;但 vision 数据"早进来"比"末段集中"好。这与"先把语言练好再加 vision"的传统直觉相反。

策略vision ratiovision 知识vision 推理OCRtext 知识text 推理code
Early10:9025.843.865.745.558.524.8
Mid20:8025.040.764.143.958.624.0
Late50:5024.239.061.543.157.824.0
三种策略的 vision 数据投放时间线 Early (K2.5) low & long Mid ramp up Late (传统) spike 训练 step → 深度 (蓝/橙/红) ∝ vision token 比例 关键: Early 在同等 vision token 量下,因为 vision-text 共训时长更久 → cross-modal alignment 更深
"低比例但持续"赢过"高比例但集中"。这是因为 cross-modal alignment 是time-on-task 性质的——vision token 与 text token 在同一 backbone 上 co-occur 的训练 step 数越多,跨模态表征越融合。Late fusion 只学到"贴标签",early fusion 学到"vision 是 text 的另一种 view"。

Worked example: 两条策略下 1B vision token 怎么花

设总 budget = 16T (1T vision + 15T text):

反向论证

如果 K2.5 还是用 late fusion:zero-vision SFT 不会 work——下一节会看到 zero-vision SFT 之所以能"用纯 text 数据激活 vision tool-use",前提就是 pretrain 已经把 vision token 嵌入到 text 的 reasoning circuit 里。Early fusion 是 zero-vision SFT 的必要条件。


4 · Zero-Vision SFT: 不喂 vision 数据也能激活 visual tool-use

这个发现是 K2.5 最反直觉的部分。

4.1 问题: vision agentic 的 cold start

Pretrained VLM 不会主动"看着图调 tool"——你不告诉它,它只会生成 caption。传统做法是手工标 vision SFT 数据,问题:

4.2 K2.5 的 trick: 把 image 操作当成 IPython 任务

所有 image manipulation (例如"数图里有几只猫")都 proxy 成 PIL/numpy/matplotlib 程序操作。SFT 数据里全是纯文本对话:用户给问题(可能含图,可能纯文本),assistant 写 IPython 代码,代码里调 vision。这样 visual reasoning 被泛化成"程序控制 vision"。

Zero-Vision SFT 数据流 K2.5 base (joint pretrained) 已具 vision-text 对齐 Text-Only SFT "用 IPython 处理图像" PIL/numpy/matplotlib 调用 cold-start 模型 visual tool-use 已激活 SFT 样本(纯 text 但教会"看图"): User: "数一下这张图里有多少个红色圆点。" Asst: <think>binarize R 通道 → connectedComponents → count</think> <tool_call> img = PIL.Image.open(input.png); a = np.array(img) mask = (a[...,0]>200) & (a[...,1]<80) & (a[...,2]<80) print(scipy.ndimage.label(mask)[1]) # → 17 ↑ 图被 model "看"了,但 SFT 数据里完全没有"how to look at pixel"的人工示范
SFT 数据全是 text-form,但里面教模型"如果要看图,就用程序操作"。Pretrain 阶段已经让 image embedding 与 text 对齐,所以模型在 inference 时见到真图也能用同样的 reasoning pattern—— pixel-level 操作如二值化、连通域、目标定位、OCR 都自然 generalize 出来。

4.3 为什么这能成立 — 反向论证

"为什么不直接做 text-vision SFT?"——论文的 ablation 显示 text-vision SFT 反而 worse。原因猜测:高质量 vision SFT 数据稀缺,会引入噪声;而 text 数据多样性巨大,SFT 后模型学到的是"遇到任何 modality 都用 reasoning + tool 解决"这种 general policy。Pretrained vision-text alignment 让这个 policy 自动迁移到含图输入。

Worked Example

训练时 prompt: "图上数字之和是?"(只是 text 描述任务)。Asst 答: 写 IPython 用 OCR 库识别 → sum。Inference 时 prompt: 真给一张图加 "sum the numbers" → 模型生成同样的 IPython 代码,这次代码 import 后真能去解析 image 数组。同一段 reasoning trace 在两个 modality 上都 work,因为 vision encoder 已经把图编成与 text 同空间的 token。


5 · Joint Multimodal RL: vision RL 反向增强 text

5.1 Outcome-based Visual RL

Zero-vision SFT 解决了 cold start,但模型有时仍"忽略图像 input"。Outcome-based RL 用必须看图才能答对的任务把 vision 路径"逼出来":

每类任务有专属 reward: grounding 用 IoU-soft-match 的 F1, point 用 Gaussian-weighted 距离, polygon 用 mask IoU, OCR 用 normalized edit distance, counting 用 |pred - gt|。

5.2 反直觉发现: vision RL 同时让 text 变强

BenchmarkBefore vision RLAfter vision RLΔ
MMLU-Pro (text)84.786.4+1.7
GPQA-Diamond (text)84.386.4+2.1
LongBench v2 (text)56.758.9+2.2

论文给的解释:vision RL 改进了"structured information extraction" 的 calibration——counting / OCR / grounding 这类任务奖励的是"精确的结构化抽取",这种能力反过来让 text reasoning 也更"严谨"(降低 hallucination 倾向)。

5.3 Joint RL 的组织: 按 ability 分,不按 modality 分

Joint Multimodal RL 信号流 Knowledge text + image-QA Reasoning math + chart Coding SWE + img2code Agentic browse + GUI Vision-only grounding/OCR πθ (shared policy, both modalities) cross-modal capability transfer (vision → text & text → vision)
不像 Qwen-VL 等"按 modality 分专家",K2.5 按 capability 分 RL domain;每个 domain 同时收 text-only 和 multimodal 样本,GRM 也跨 modality 评分。这等于在 RL 阶段强制要求"如果你在 vision 上学到了 calibration,这个 calibration 必须也能用在 text 上"——一种隐式的 cross-modal regularization。

5.4 Policy 优化目标

K2.5 用的是 GRPO 的变体:

L = E[ (1/N) Σⱼ Σᵢ Clip(πθ/πold, α, β) · (r(x,yⱼ) − r̄(x)) − τ · (log πθ/πold)² ]

关键改动: token-level clipping——传统 PPO 是按 advantage 符号 clip,K2.5 直接对 log-ratio clip,无视 advantage 正负。设计目的:RL 训练时 rollout 用 inference 框架 (vLLM / SGLang),与训练框架精度有 drift,token-level clip 把 rollout/train 不一致的 token 直接 mask 掉,稳住 long-horizon agentic RL。

Optimizer: MuonClip (K2 的标志性配方,带 QK-Clip 防 attention logit 爆炸)。


6 · Agent Swarm × PARL: orchestrator 学出并行

6.1 架构: trainable orchestrator + frozen sub-agents

Orchestrator πθ trainable (the only one) ∇ RL SubAgent A: Web frozen, browse + search SubAgent B: Doc frozen, long-doc reading SubAgent C: Code frozen, code exec SubAgent D: GUI frozen, computer-use ↓ outputs treated as environment observation (no gradient flow back) Orchestrator (aggregate / replan) 受 PARL reward 训练: r_perf + λ₁·r_parallel + λ₂·r_finish Final answer y
Agent Swarm 架构。关键设计:只有 orchestrator 有梯度;sub-agent (从 intermediate policy checkpoint 取样,frozen) 输出被当作 environment observation。这样 RL 的 credit assignment 退化到单 agent 设定—— orchestrator 学的是"何时 spawn 谁、如何聚合"。

6.2 PARL Reward

r_PARL(x, y) = λ₁ · r_parallel + λ₂ · r_finish + r_perf(x, y)
含义解决什么问题
r_perf整体任务成功 + quality主目标 (verifiable / GRM)
r_parallel奖励 sub-agent 实例化serial collapse — orchestrator 学到全自己干就给 0
r_finish奖励 sub-agent 实际完成spurious parallelism — 乱开一堆但都 fail 没有奖励

λ₁, λ₂ 在训练过程中 anneal 到 0,这样 final policy 只对 r_perf 负责,辅助 reward 只是 exploration 引导。

6.3 Critical Steps 作为 latency 指标

CriticalSteps = Σₜ ( S_main^(t) + maxᵢ S_sub,i^(t) )

反向论证: 如果用 total steps 作为 cost, orchestrator 只要"少干活"就 win, 但这会退化到 single agent;如果用 wall-clock,parallel 内 max 反映瓶颈,但惩罚"开 5 个 sub-agent 但其中 4 个无关"——max 一项替代了 sum,正好编码了"并行加速的价值是看最长那条 branch 缩了多少"。

6.4 Prompt construction: 不显式说要并行,只 shape task distribution

训练 prompt 故意构造成"sequential 完不成"的形式: wide search (并查多源)、deep search (多 reasoning branch)、long-context analysis、batch download。在 fixed step / tool-call budget 下,model 只有学并行才能拿到 reward。但 prompt 里从不写"please parallelize"——所有的并行决策都是 RL 自己探索出来的。

6.5 训练流程

  1. 先用 small-size sub-agent 训 orchestrator (省算力,快速 explore)
  2. 切换到 large sub-agent (final 对齐部署配置)
  3. 动态调整 sub-agent vs orchestrator 的 inference instance 比例 (一些 step 多开 sub-agent worker,一些 step 多开 orchestrator)

7 · Worked Example: 从一张网页截图到一份报告

这是一个虚构但典型的 K2.5 Agent Swarm trace,贴近 WideSearch/BrowseComp 的真实分布。

用户输入

给定截图: 一个 e-commerce 商品详情页 (含价格、规格、reviews、相关链接)。请帮我:(a) 比较该商品在亚马逊、ebay、淘宝的当前价格 (b) 总结 top-10 review 的优缺点 (c) 给出 BeautifulSoup 抓 reviews 的代码 (d) 整合成 markdown 报告。
orchestrator: parse intent 看图 → 识别 SKU/title decompose → 4 sub-tasks a) price b) reviews c) code d) merge — parallel cohort 1 (critical = max 4 sub-steps) — SubAgent A1: amazon browse(query=SKU) → $X 3 steps SubAgent A2: ebay browse(query=SKU) → $Y 3 steps SubAgent A3: taobao browse → ¥Z 4 steps (max) SubAgent B: reviews scrape + summarize 4 steps orchestrator: aggregate (1 step) 价格表 + reviews 摘要进 context — cohort 2 (critical = 2) — SubAgent C: write BeautifulSoup code 2 steps
K2.5 Swarm 一个具体 trace。Total work = 1 + (3+3+4+4) + 1 + 2 = 18 sub-steps;但 critical = 1 + 4 + 1 + 2 = 8。Single agent 跑同一任务 ≈ 18 step;Swarm 拿到 ~2.25× wall-clock 加速。注意 orchestrator 没有显式被告知"taobao 那条 branch 可能慢"—— RL 自己学会了在 cohort 1 把所有独立检索同时发起,因为 r_parallel 鼓励并行 + critical-step 惩罚最长 branch。

反向论证: 为什么 orchestrator 不把 c) 也放到 cohort 1?

因为 c) 的 prompt 输入 (BeautifulSoup 代码片段需要参考实际 review HTML 结构) 依赖于 cohort 1 中 B 的输出。RL 在训练时见过类似数据依赖图,学到"有依赖的任务要分 cohort"。这是 PARL 优于 prompt-engineered DAG 的地方:数据依赖关系是出来的,不是写死的。


8 · 实验关键结果

8.1 多模态主线: 与 frontier 闭源模型并肩

BenchmarkKimi K2.5Claude Opus 4.5GPT-5.2Gemini 3 Pro
HLE-Full30.130.834.537.5
HLE w/ tools50.243.245.545.8
AIME 202596.192.810095.0
MathVision84.277.183.086.1*
MathVista (mini)90.180.282.889.8
OCRBench92.386.580.790.3
InfoVQA92.676.984.057.2
OSWorld-Verified63.366.38.620.7

读法: 在 OCR / chart / math-vision / computer-use 几个 task 上 K2.5 是开源里 SOTA, 与 Claude Opus 4.5 接近;tool-augmented HLE 反超所有人。 GPT-5.2 仍在 pure-text math 上更强。

8.2 Agent Swarm 增益

BenchmarkK2.5 SwarmK2.5 SingleΔClaude 4.5GPT-5.2 Pro
BrowseComp78.460.6+17.837.077.9
WideSearch79.072.7+6.376.2
In-house Swarm58.341.6+16.745.8

读法: Swarm 的增益随任务并行机会增加——In-house swarm bench 故意为并行设计,绝对增益最大。但 BrowseComp 增益也很大(+17.8),说明真实 deep-research 的并行机会被严重低估。

8.3 Latency: 3–4.5× 加速

WideSearch 上,target Item-F1 从 30% 升到 70%,single-agent 执行时间从 1.8× 暴涨到 7.0× (随 difficulty 线性增长);Swarm 维持在 0.6–1.6× 几乎平的曲线。Critical-step constraint 起效。

8.4 Token Efficiency (Toggle)

Toggle 让 K2.5 在不掉点(甚至升点)的情况下,平均输出 token 减 25–30%。但仍比 Gemini 3 Pro 用更多 token (例如 AIME 25k vs Gemini 15k);意味着 K2.5 推理仍偏冗长。


9 · 与同类工作对比

系统多模态训练Vision SFTAgent 路线RL 学并行?
K2.5early fusion + low ratio (15T joint)zero-vision (text-only)Agent Swarm + frozen sub-agent是 (PARL)
Qwen3-VL-235Bvision-heavy late stagemultimodal SFT (人工标)single-agent + tool
GPT-4V / GPT-5.2未公开,推测 late fusionmultimodal SFTtool-use planner (private)未公开
Claude Opus 4.5未公开multimodal SFTcomputer-use, 单 agent未公开
Gemini 3 Pro多 modality 原生multimodal SFTsingle agent + tool未公开
Anthropic 多 agent (Research)orchestrator + Claude sub-agent (prompt-engineered)否(prompt 静态)
LangGraph / AutoGen静态 DAG 或 chat group
Kimi-Researcher (前作)text-onlytext SFTsingle agent end-to-end RL

真正"独有"的两点:


10 · 局限 / 个人 take / 待验证问题

想验证的问题

  1. Zero-vision SFT 在 vision-text alignment 较弱的开源 base (例如 Llama-Vision) 上是否还 work?如果 work,说明 "early fusion 是必要" 的判断错了。
  2. 把 PARL 用到比 K2.5 小 10× 的 model (例如 7B) 上, 还能学出 parallel decomposition 吗?是否 emergent capability 与 scale 强相关?
  3. r_parallel 和 r_finish 的 anneal schedule 多敏感?如果不 anneal 到 0,会 reward-hack 到什么程度?
  4. Critical-step 在 sub-agent 长尾分布 (有的 sub-agent 偶尔 hang) 下的 training stability 如何?
  5. Agent Swarm 在并行天然友好的 task 上(例如纯数学证明)是否会退化到 single agent?能否做这条 ablation?

11 · Memory Points

立场Vision 不是 add-on:固定 token budget 下,early fusion + 低 vision ratio 在所有 metric 上压过 late fusion。
反直觉Zero-vision SFT:纯 text SFT 数据(图像操作 proxy 成 IPython 程序)就能激活 visual tool-use。前提是 pretrain 做对了。
反直觉Vision RL → text 提升:MMLU-Pro 84.7 → 86.4, GPQA 84.3 → 86.4。 视觉 calibration 反向迁移到 text reasoning。
立场RL domain 按 ability 分而非 modality 分:knowledge / reasoning / coding / agentic 同时收 text + multimodal 样本,GRM 也跨模态。
架构Agent Swarm = trainable orchestrator + frozen sub-agents。Sub-agent 输出当 environment observation,credit assignment 退化为单 agent。
公式r_PARL = r_perf + λ₁ r_parallel + λ₂ r_finish。前者治 serial collapse,后者治 spurious parallelism;λ → 0。
指标CriticalSteps = Σₜ (S_main + maxᵢ S_sub,i)。借用 critical path 概念,奖励 balanced 拆分。
数据WideSearch 加速 3–4.5×; BrowseComp +17.8 (60.6 → 78.4)。
Optimizertoken-level log-ratio clip + MuonClip。Mask 掉 rollout/train 不一致的 token,稳住 long-horizon agentic RL。
TrickToggle: Phase0 限 budget / Phase1 放开,交替 m iter。Token 减 25–30%,精度几乎不变。
TrickDEP (Decoupled Encoder Process):vision encoder 与 backbone 解耦执行三阶段,multimodal 训练效率 ≈ 90% 纯 text。
个人 take报告价值 > 算法新颖度。真正的杠杆是 (1) "用 text 数据 leverage vision capability" 的方法论 (2) PARL 把 multi-agent 拉回 single-agent RL 的工程化解法。