#CL-Bench:为什么“会读长上下文”还不等于“会从上下文中学习”

一句话总结:CL-Bench 试图测的不是模型能不能在长文档里“找到答案”,而是模型能不能把一段陌生、复杂、带局部规则的上下文当成一个临时世界来学习,然后在这个世界里正确行动。

这里有一个容易混淆的点:现在论文里有两个名字很像的 benchmark:

  1. CL-bench: A Benchmark for Context Learning:这里的 CL 指 Context Learning,关注“从复杂上下文中学习新知识、新规则、新流程”。这是本文重点讲的 CL-Bench。
  2. Continual Learning Bench, CL-BENCH:这里的 CL 指 Continual Learning,关注 agent / LLM 系统能不能在一串连续任务中利用过去经验持续变强。它和第一个 CL-bench 不是同一个 benchmark,但研究问题高度相邻,所以后面也会一起讲。

如果把它们放到 LLM Agent 的长期能力图谱里,可以这样理解:

  • Context Learning:在一次任务或一个大上下文里,模型能不能快速学会“这个局部世界”的知识和规则。
  • Continual Learning:在一连串 episode / session / task 中,系统能不能把过去经验变成未来表现提升。
  • Agent Memory / Skill / Parametric Memory:这些是为了解决上述问题提出的不同机制。

#1. CL-Bench 到底想测什么?

传统长上下文 benchmark 很多时候测的是:

  • 这句话在不在文档里?
  • 能不能从长文档中检索出某个事实?
  • 能不能总结一篇长报告?
  • needle-in-a-haystack 里能不能找到针?

但现实中的任务经常不是这样。现实任务更像:

我给你一套陌生公司的 API 文档、内部流程、命名规范、异常处理规则、历史案例和输出格式要求。你不能上网,也不能靠预训练知识。你要先读懂这套局部规则,然后帮我完成一个真实操作。

这就是 context learning:模型要从上下文中学习任务相关知识,并把它应用到新任务上。

CL-bench 论文给出的定义大致是:当前语言模型擅长基于预训练知识对 prompt 推理,但真实任务更复杂、更依赖上下文;模型必须从任务特定上下文中学习,并利用预训练之外的新知识解决问题。

所以它强调三个差异:

能力典型任务CL-Bench 认为还不够的原因
长上下文检索在 100K token 里找一个事实只测“找得到”,不测“学会规则并迁移应用”
阅读理解根据文章回答问题往往答案在局部文本中比较直接
few-shot ICL看几个例子学输入输出模式通常模式简单,且上下文不像真实任务那样复杂
Context Learning从陌生文档/规则/流程/数据中学会一个局部世界要综合规则、隐含约束、流程、格式、经验规律,并正确执行

#2. Benchmark 的规模和结构

CL-bench 的核心数据规模是:

  • 500 个复杂上下文
  • 1,899 个任务
  • 31,607 条验证 rubrics
  • 平均每个上下文 3.8 个任务,最多 12 个任务
  • 平均输入长度约 10.4K tokens,最长约 65K tokens
  • 每个任务平均 16.6 条 rubrics,最多 114 条
CL-bench 数据统计与四大类别
CL-bench 的数据统计与上下文类别

它把任务分成四大类:

#2.1 Domain Knowledge Reasoning:领域知识推理

上下文提供某个领域的专门知识,可能是虚构法律体系、新金融工具、冷门科学知识、医疗安全规范等。模型要学会这些知识,再用于决策或分析。

例子:

  • 给你一个虚构国家的完整法律制度、判例和法律原则,让你判断新案件。
  • 给你某种新金融产品的条款,让你分析收益、风险和适用人群。
  • 给你某个生态系统报告,让你预测物种风险,但答案不能靠常识,要靠报告中的局部信息。

这类任务难点不是“法律/金融/生态”这些词模型见过,而是上下文里的局部规则可能是新的,甚至故意和预训练常识冲突。

#2.2 Rule System Application:规则系统应用

上下文提供一个新的形式系统:游戏机制、数学形式化、编程语言语法、技术标准、监管规则等。模型要先学规则,再按规则求解。

例子:

  • 给你一个新桌游或游戏机制,要求分析某个局面下一步最佳操作。
  • 给你一个虚构编程语言 EZLang 的语法和运行规则,要求写出可运行代码。
  • 给你一套技术标准,让你判断某个工程设计是否合规。

这类任务很适合暴露 LLM 的一个弱点:模型会用“看起来合理”的常识补洞,而不是严格服从上下文中的局部规则。

#2.3 Procedural Task Execution:流程任务执行

上下文给出操作手册、workflow、API 文档、故障处理流程等。模型要把自然语言请求转成可执行步骤、伪代码或操作计划。

论文里有一个简化示例:SkyNet Logistics,一个无人机物流系统。上下文包含三个模块的 API 文档:

  • navigation control
  • payload control
  • safety control

模型的任务是作为自动执行助手,把用户的自然语言操作请求转成严格伪代码,并解释 rationale。

这类任务在现实 agent 中非常常见:读 README、读代码库规范、读 API 文档、读公司内部 SOP,然后做事。

#2.4 Empirical Discovery & Simulation:经验规律发现与模拟

上下文给出实验数据、观测数据、仿真环境或搜索结果。模型要从数据中发现规律,再进行预测、模拟或决策。

例子:

  • 给你一组实验数据,让你归纳规律并预测新条件下的结果。
  • 给你仿真环境规则和历史轨迹,让你判断下一步状态。
  • 给你某个系统的观测日志,让你发现异常触发条件。

这类任务更接近“临时科学发现”:不是检索事实,而是从上下文里的数据和规则中学出一个局部模型。


#3. 举几个更直观的例子

下面我把 CL-Bench 的任务类型翻译成更直白的形式。

#例子 1:虚构法律体系判案

上下文可能给出:

  • 一个虚构国家的法律条款;
  • 若干历史判例;
  • 法律原则之间的优先级;
  • 某些例外情况;
  • 输出判决书的格式要求。

任务问:

A 公司在某种合同场景下是否违约?应该适用哪条原则?赔偿如何计算?

模型如果只靠预训练中的真实法律常识,很可能错。它必须先学会这个虚构法律体系。

这和普通阅读理解的差别是:答案不是一句话能抄出来,而是要组合条款、判例、优先级和例外条件。

#例子 2:新游戏规则下的策略判断

上下文可能定义一个没见过的桌游:

  • 角色属性;
  • 回合流程;
  • 特殊卡牌效果;
  • 资源转换规则;
  • 胜负条件。

任务问:

当前局面下,如果玩家想在 3 回合内达成目标,应该如何行动?

模型常见错误是:它能复述部分规则,但在推理时忘掉某个局部约束,比如卡牌只能在特定阶段使用,或者某个资源转换有冷却条件。

#例子 3:陌生 API 文档转伪代码

上下文可能是类似 SkyNet Logistics 的系统文档:

  • NAV_INIT 怎么调用;
  • payload 锁定/释放有哪些安全检查;
  • 异常状态必须先进入 SAFE_HOLD
  • 输出必须包含严格伪代码和 rationale。

任务问:

把无人机从 A 点移动到 B 点,中途投递包裹,如果电量低于阈值要返航。

模型不只要找 API 名字,还要学会操作顺序、安全约束、异常处理和输出格式。

#例子 4:从实验数据中发现局部规律

上下文可能给出一组实验表格,里面有某种材料在不同温度、压力、浓度下的表现。任务问:

在新的条件组合下,预测指标 X,并解释依据。

这里模型不能靠外部物理化学知识直接猜,而要从上下文数据中归纳经验关系。这类任务很考验模型“从上下文中拟合一个临时规律”的能力。


#4. 评测方式:为什么要用 rubrics?

CL-Bench 不是简单 exact match。每个任务都有多条专家标注的 binary rubrics,用来检查答案是否满足关键要求。

例如一个任务的 rubrics 可能包括:

  • 是否引用了正确规则;
  • 是否计算了正确数值;
  • 是否处理了例外条件;
  • 是否遵守输出格式;
  • 是否给出必要解释;
  • 是否没有引入上下文外的假设。

一个任务只有所有关键 rubrics 通过,才算 solved。这一点很重要,因为真实任务不是“答对一点就算对”。例如你写 API 调用计划时,主要流程对了,但漏掉 safety check,现实中仍然是失败。

论文还做了 context-free ablation:不给上下文时,模型任务解决率低于 1%,说明这些题确实依赖上下文,而不是靠预训练知识就能答。


#5. 当前模型表现:非常低

CL-bench 测了十个前沿 LLM。核心结论很直接:现在最强模型也远没掌握 context learning。

论文报告:

  • 十个 frontier LMs 平均 solved rate:17.2%
  • 最好模型 GPT-5.1:23.7%
  • Claude Opus 4.5 Thinking:21.1%
  • Empirical Discovery & Simulation 类别尤其难,最好也只有约 18.1%
CL-bench 上十个前沿模型的任务解决率
CL-bench 上前沿模型的任务解决率

这说明:即使模型有长上下文窗口、强推理模式,也不等于它会可靠地从上下文中学习。

论文进一步分析了错误类型:

  • context-ignored:忽略了上下文里的关键信息;
  • context-misused:看到了信息,但错误应用;
  • reasoning error:推理链条出错;
  • format error:没有遵守上下文要求的格式;
  • refusal / insufficient information:模型声称信息不足,但其实上下文里有。

一个有意思的观察是:强模型更少忽略上下文,但仍然经常误用上下文。也就是说,瓶颈不只是 attention 找不到信息,而是“把局部知识变成可执行内部规则”的能力不足。

CL-bench 子类别表现与难度差异
CL-bench 不同子类别上的表现

#6. CL-Bench 和普通 long-context benchmark 的根本区别

可以用一个类比:

  • Long-context retrieval 像“开卷找答案”。
  • Context learning 像“现场读一本陌生规则书,然后马上参加考试/上岗操作”。

前者主要需要定位信息;后者需要建立一个临时认知模型。

更具体地说,CL-Bench 要求模型同时做几件事:

  1. 选择相关知识:从复杂上下文中识别哪些规则、数据、案例相关。
  2. 形成局部规则:把分散描述合成为可执行规则。
  3. 处理冲突和例外:当上下文与常识冲突时,以上下文为准。
  4. 迁移到新任务:不是复述上下文,而是把学到的东西用于新实例。
  5. 遵守隐含规格:输出格式、完整性条件、领域约束都要满足。

对 LLM Agent 来说,这正是最核心的能力之一:agent 不可能所有工具、代码库、组织流程、用户偏好都在预训练中学过,它必须在运行时快速学习局部环境。


#7. 学术界如何使用 CL-Bench:几条研究线索

CL-Bench 发布后,很自然地变成了研究“上下文学习 / agent memory / skill induction”的试金石。下面是几条已经出现的研究方向。


#7.1 规格归纳:Agentic Context Learning with Self-Discovered Specification

一篇很直接使用 CL-Bench 的工作是 Agentic Context Learning with Self-Discovered Specification

这篇工作的核心判断是:CL-Bench 难,不只是因为模型找不到内容,而是因为模型没学会上下文里的 specification

这里的 specification 可以理解为:

  • 局部格式要求;
  • 领域特定输出规范;
  • 什么算完整答案;
  • 哪些异常必须怎样标记;
  • 哪些步骤不能省略;
  • 某个局部系统里的“有效性条件”。

论文分析了 CL-Bench 的 31,592 条 rubric,发现:

  • 55.4% 明确评估 specification acquisition;
  • 只有 22.6% 评估 content acquisition;
  • 76.7% 的 specification 在用户 query 里没有明说;
  • 95.5% 可以追溯到上下文中。

这非常关键:很多要求不是隐藏规则,而是散落在上下文里。模型失败,不是因为题目不公平,而是因为它没有把这些散落规则抽象成“我接下来必须遵守的契约”。

他们提出了 PSCI(private specification-contract induction):先从上下文中抽取局部 specification contract,再用 adversarial checking and repair 强制答案满足这些 contract。结果在 CL-Bench 上把 GPT-5.1 提到 28.14%,相对 baseline 有明显提升。

这个方向对 agent 很有启发:未来 agent 读代码库、读工具文档、读用户偏好时,可能不应该只是做 RAG,而应该先归纳一份“局部规格契约”。


#7.2 技能抽取:Ctx2Skill / From Context to Skills

另一条线是把上下文中的规则和流程抽成显式自然语言 skill。

From Context to Skills: Can Language Models Learn from Context Skillfully? 提出 Ctx2Skill。它的想法是:

如果上下文太长、太杂,模型每次直接读原文很难稳定使用。能不能先把其中的规则、流程、技巧提炼成一组可复用 skill,再把这些 skill 注入模型?

Ctx2Skill 用了一个 multi-agent self-play 框架:

  • Challenger 生成 probing tasks 和 rubrics,用来逼出模型没学会的地方;
  • Reasoner 尝试用当前 skill set 解题;
  • Judge 给二元反馈;
  • Proposer / Generator 根据失败案例更新 skill;
  • Cross-time Replay 避免技能过拟合到后期极端任务。

它在 CL-Bench 的四类任务上都提升了表现,例如:

  • GPT-4.1 从 11.1% 提到 16.5%
  • GPT-5.1 从 21.1% 提到 25.8%

这条线和我们平时写 agent skill 很像:把一次上下文阅读中的隐含经验沉淀成可读、可查、可复用的 procedure。区别是 Ctx2Skill 希望这个过程自动化,并用自博弈发现遗漏规则。


#7.3 推理合成:Context-CoT

Context-CoT: Enhancing Context Learning via High-Quality Reasoning Synthesis 也以 CL-Bench 暴露出的能力缺口为出发点。

它关注的是:模型不是完全没有相关信息,而是缺少高质量的中间推理过程来把上下文知识组织起来。

可以把它理解成:

  • 直接回答:模型容易漏规则;
  • 普通 CoT:可能只是泛泛而谈;
  • Context-CoT:希望围绕上下文中的新知识生成更高质量、更针对性的 reasoning traces。

这类方法的基本假设是:context learning 不只是 retrieval,也不只是 final answer,而需要一个显式的“学习—整理—推理”中间层。


#7.4 现实生活上下文:CL-bench Life

CL-bench 原版更多是专业、领域化、相对整理好的复杂上下文。后续又有 CL-bench Life: Can Language Models Learn from Real-Life Context?

它把问题推进到更日常的 AI assistant 场景:

  • 多人群聊记录;
  • 个人档案;
  • 行为轨迹;
  • 零散笔记;
  • 日常交流中的指代和社会关系。

数据规模:

  • 405 个 context-task pairs
  • 5,348 条 rubrics
  • 三大类别:Communication & Social Interactions、Fragmented Information & Revisions、Behavioral Records & Activity Trails

结果也很低:

  • 最好模型 GPT-5.4:19.3%
  • 平均:13.8%

这对个人 AI 助手很关键。真正的 personal agent 面对的不是干净 API 文档,而是乱七八糟的聊天、日程、文件、偏好、历史决定。CL-bench Life 说明:仅仅给模型更多上下文,不足以让它变成可靠生活助理。


#7.5 从 Context Learning 到 Continual Learning Bench

另一个同名但不同 benchmark 是 Continual Learning Bench: Evaluating Frontier AI Systems in Real-World Stateful Environments

它关心的问题从“一次上下文中学会规则”扩展到“连续经验中持续变强”。它设计了六类真实 stateful 环境:

任务latent structure希望系统学会什么
Blind Spectrum MonitoringRF 发射器中心频率、带宽、休眠模式多次扫描后建立频道地图
Codebase Adaptation文件布局、模块结构、测试模式解决 GitHub issue 时越来越少探索
Cohort Studies患者分布、生存曲线整合连续观察研究,估计总体风险
Database Explorationschema、列编码、表名问 SQL 问题时复用之前探索经验
Exploitable Poker对手 archetype、下注阶段策略从对局中推断固定策略并盈利
Sales Prediction门店与产品簇增长率从连续可见数据中预测未来需求

它还引入了 gain 指标,用来区分:

  • 模型本来就强;
  • 系统真的从过去经验中学到了东西。

一个很有意思的发现是:最简单的 full-context ICL 反而是强 baseline。论文报告 full-context ICL with Claude Sonnet 4.6 在 aggregate normalized reward 和 gain 上表现最好之一;一些专门 memory 系统并没有自然胜出。这说明:现在很多 memory agent 的问题不是“有没有记忆模块”,而是“记下来的东西是否可用、是否能改变未来行为”。


#7.6 参数化记忆:TMEM / Scaling Self-Evolving Agents via Parametric Memory

Scaling Self-Evolving Agents via Parametric Memory 更进一步:它认为 prompt-space memory 只能“查阅过去”,但不能真正改变模型策略。

它提出 TMEM

  • agent 不只把历史压缩成文字 memory;
  • 还把经验蒸馏成 fast LoRA weights;
  • 在一个 episode 内通过轻量 online updates 改变后续行为。

这相当于把 memory 从“外部笔记”推进到“临时参数变化”。

这篇工作也在 CL-Bench 上做了实验,把它作为 context-learning testbed,并报告 TMEM 相比 summary-based 和 retrieval-based memory baselines 有持续提升。

这条线和 wenjun 关心的 model-based RL / latent-space reasoning / agentic RL 很接近:如果 agent 的长轨迹经验只存在 prompt 里,系统很容易受 context window、检索噪声和总结丢失影响;如果经验能进入某种可更新 latent / parameter substrate,才更像真正的持续学习。


#8. 对 LLM Agent 研究的启发

CL-Bench 的价值不只是一个排行榜,而是它把一个问题钉清楚了:

未来 agent 的关键能力不是“上下文窗口够长”,而是“能不能把上下文转化成可执行的局部世界模型”。

这对几个研究方向都有启发。

#8.1 RAG 不够,必须有 rule/spec induction

RAG 解决的是“相关片段在哪里”。但 CL-Bench 表明,很多失败来自 specification acquisition。

所以未来 agent pipeline 可能需要:

  1. retrieve relevant context;
  2. induce local rules / specs;
  3. convert specs into executable checks;
  4. answer;
  5. verify against specs;
  6. repair。

这比单纯“检索后生成”更像一个可控工程系统。

#8.2 Memory 的质量比 memory 的存在更重要

Continual Learning Bench 的结果说明:简单 full-context ICL 仍然很强,而专门 memory 系统未必更好。原因可能是:

  • memory 抽取不准;
  • memory 太泛;
  • memory 和当前任务不匹配;
  • memory 没有形成可执行规则;
  • memory 没有改变模型策略。

所以 agent memory 的核心问题不是“存什么向量库”,而是“经验如何变成未来行动的 policy improvement”。

#8.3 Skill 是一种中间形态

Ctx2Skill 展示了一种有趣路线:把上下文压缩成自然语言技能。

这比原始上下文更短、更结构化;又比参数更新更可解释、更容易编辑。

对实际 agent 系统,skill 可能是短期最实用的形态:

  • 从文档中自动抽取操作规程;
  • 从失败案例中更新 checklist;
  • 从用户偏好中抽象 stable preference;
  • 从代码库探索中沉淀 repo-specific playbook。

#8.4 需要从“答案正确”走向“环境适应”

CL-Bench 其实在逼问一个更基础的问题:模型是否能适应一个临时环境?

这和传统 benchmark 不同。传统 benchmark 里,环境基本固定,模型靠预训练和后训练获得通用能力。CL-Bench 中,每个 context 都像一个小环境,模型必须现场适应。

这很像 agentic RL 中的 meta-learning / online adaptation 问题:

  • context 是任务环境描述;
  • rubrics 是 reward / validity constraints;
  • skill/spec 是 latent task representation;
  • answer 是 policy action;
  • feedback / self-check 是在线改进信号。

从这个角度看,CL-Bench 是一个很适合连接 inference-time learning、agent memory、contextual policy adaptation、model-based reasoning 的 benchmark。


#9. 我的判断:CL-Bench 重要在哪里?

我觉得 CL-Bench 的重要性在于,它把 LLM 当前能力边界从“会不会推理”推进到了“会不会学习”。

过去很多 benchmark 问的是:

模型预训练和后训练之后,已经会什么?

CL-Bench 问的是:

当我给模型一个陌生局部世界,它能不能在运行时学会这个世界?

这对于真正的 agent 是关键分水岭。因为 agent 面对的永远是局部的、动态的、个体化的环境:

  • 一个新代码库;
  • 一个新工具链;
  • 一个新用户;
  • 一个新组织流程;
  • 一组新实验结果;
  • 一段长期互动历史。

如果模型只能“读到”这些上下文,却不能把它们变成稳定的局部规则、技能和可执行策略,那么它仍然只是一个强大的问答器,而不是能持续适应环境的 agent。

对 wenjun 关心的长轨迹 Agent RL 来说,CL-Bench 给出的信号也很明确:直接在超长轨迹上做 RL 可能会非常难,因为基础模型甚至还没有稳定掌握“从上下文中归纳局部任务结构”的能力。更可能有价值的路线是:

  • 先学会从上下文中抽取 spec / skill / latent task state
  • 再让 agent 基于这些中间表示进行 planning / verification / memory update;
  • 最后再考虑通过 RL 优化这些抽取、压缩、更新和使用策略。

换句话说,CL-Bench 指向的不是更长 prompt,而是更好的 context-to-state 机制。


#参考论文

  1. Shihan Dou et al. CL-bench: A Benchmark for Context Learning. arXiv:2602.03587, 2026.
  2. Shihan Dou et al. CL-bench Life: Can Language Models Learn from Real-Life Context? arXiv:2604.27043, 2026.
  3. Jike Zhong et al. Agentic Context Learning with Self-Discovered Specification. arXiv:2607.09794, 2026.
  4. Shuzheng Si et al. From Context to Skills: Can Language Models Learn from Context Skillfully? arXiv:2604.27660, 2026.
  5. Hongbo Jin et al. Context-CoT: Enhancing Context Learning via High-Quality Reasoning Synthesis. arXiv:2605.25354, 2026.
  6. Parth Asawa et al. Continual Learning Bench: Evaluating Frontier AI Systems in Real-World Stateful Environments. arXiv:2606.05661, 2026.
  7. Tao Ren et al. Scaling Self-Evolving Agents via Parametric Memory. arXiv:2606.04536, 2026.