返回
Kevin Riedl

12 分钟 阅读 · 2026年10月2日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

Context Language Models 与上下文压缩:应该如何试点?

能编辑工作上下文的智能体,比仅仅拥有更大笔记本的智能体更值得关注。它可以决定删除哪些失败搜索、保留哪些约束,以及何时重写中间计划。真正的工程问题是:这些决策能否改善你的工作流,改善到足以替换现有上下文压缩策略的程度?

Context Language Models(CLM,上下文语言模型)把模型的实时上下文暴露为可编辑文本,而不是把所有上下文管理决策都交给应用代码。 这项研究由华盛顿大学、Meta Superintelligence Labs、MIT 和 Trillium Labs 的研究人员共同完成。arXiv 提交日期为 2026 年 9 月 29 日,不能简单写成含糊的“十月某天刚发布”。论文及提交记录明确了研究内容和日期。

它不是用于候选动作排序的 Contrastive Language Model CLM-8B(对比语言模型)。那个不同的系统见我们的 CLM-8B 自托管与验证器指南。

资料核查日期:。代码引用固定到 18dc11115f50f261233c5bba7937834491e307e8。本文是基于公开资料的工程评估,不是 Wavect 实测,也不代表我们已为客户部署 CLM。

Meta 与合作团队究竟发布了什么?

发布内容包括上下文编辑运行框架、上下文内技能改进、强化学习代码,以及名为 Suffix Cache Reuse 的推理服务优化。它并不是一种让现有基础设施突然变得多余的新模型架构。固定版本的仓库说明列出了已发布组件。

“笔记本”的比喻有边界。普通草稿文件是在对话旁边添加笔记;这里的编辑可以改变后续模型调用实际收到的对话材料。应把它理解为可编辑的工作集,而不是重写应用权限或真实执行历史的许可。

对于研究智能体,我们希望工作集保留问题、尚未解决的矛盾和证据链接,同时去掉重复搜索输出。对于编程智能体,则应保留失败测试、相关代码位置和无效修复尝试。这些是我们建议的保留目标,不是每次 CLM 运行都会自动满足的性质。

论文还描述了智能体自行创建跟踪记录和可复用压缩辅助函数。这才是值得关注的部分:上下文管理可以成为面向具体任务的行为,而不必不断增加手写删除规则。这些是观察到的示例,并不保证其他模型或任务也会出现相同行为。详见论文中的上下文编辑示例。

可编辑的上下文文件如何工作?

参考实现 ClmAgent 基于 Harbor。在执行命令前,它将可编辑的对话轮次镜像到 /tmp/.live_ctx/LIVE_CTX_MAIN.txt。模型可以用常见 Shell 工具修改文件。运行框架会把修改重新解析成消息,同时固定系统提示和原始任务。此外,它还提供 token 提醒、编辑准入检查和上下文超限恢复。运行框架文档说明了镜像文件、受保护前缀和控制循环。

这改变的是职责分工,而不是取消运行框架。模型决定保留什么;软件仍然要判断修改是否有效、哪些工具可以运行、何时必须停止执行。我们的 Agent Harness 工程指南讨论了这一更广泛的运行时责任。

模型生成的“已获得授权”不能变成真正的授权。权限应保存在可信应用状态中,而不是放在可编辑笔记里。同样,模型对失败测试的重新描述也不能替换实际测试结果。对有实质影响的动作,需要独立的记录。

编辑上下文不会更新模型权重。 项目的上下文内学习流程可以改进 SKILL.md,同时保持权重和运行框架不变;强化学习是另一条路径。技能演化实现明确区分了这些机制。因此,“策略在权重里”只描述一种可能的训练结果,并不是模型每次编辑文件时都会发生的事。

CLM、上下文压缩、记忆文件与 RAG 有何区别?

替换决策应一次只针对一层能力。服务端上下文压缩可以自动总结早期轮次,也可以由应用主动请求,不一定只是固定阈值脚本。Anthropic 文档同时介绍了自动压缩与按需压缩。持久记忆是另一层:其记忆工具允许应用实现跨对话存储。记忆工具文档说明了这个独立的持久化约定。

不同机制分别解决什么问题
机制主要职责试点要回答的问题
Context Language Model选择并编辑当前工作上下文中的材料。选择性重写能否保留任务所需事实?
上下文压缩浓缩对话材料,使工作能够继续。摘要能否以较低运维复杂度保留足够信息?
持久记忆让选定信息跨会话保留。谁可以写入、检索、更正和使其过期?
检索 / RAG把相关外部证据引入工作上下文。答案是否仍能追溯到权威来源?

这些职责可以共存。能编辑上下文的智能体仍可能需要检索和持久存储。不要仅因为模型能够删减工具输出,就替换文档索引。我们的 RAG、微调与长上下文比较负责更广泛的架构选择;OpenViking 评估介绍另一个面向文件系统的记忆系统。

CLM 基准测试能证明什么?

论文支持针对具体工作负载开展实验,而不是支持“所有模型都能直接升级”的结论。 下列 BrowseComp-Plus 结果由作者报告,并非我们的测量。详见论文实验部分和表 2。

选取的结果,各项实验分别列出
实验作者报告的结果如何理解
Qwen3.6-27B,32K 上下文,最多 100 轮准确率 59.4%;相对最强摘要基线提高 11.4%,前缀复用计算口径下 FLOPs 减少 21.5%。只对应这一模型、工作负载和计算成本口径。
Qwen3.5-9B,训练前CLM 准确率 28.8%;摘要基线 34.7%。在此设置中,未经额外训练的上下文编辑更差。
Qwen3.5-9B,强化学习后CLM 准确率 42.5%;摘要基线 42.1%。训练改变了比较结果,不能把训练后成绩包装成开箱即用效果。

相对百分比提升不是百分点提升。FLOPs 不等于货币成本、端到端延迟或完整生产运维成本。我们的决策标准是,在条件一致时比较成功结果,并计入失败运行和恢复的成本。如果短上下文恰好忘掉决定答案是否正确的关键事实,它就不是有价值的优化。

为什么编辑上下文可能降低前缀缓存复用?

仅统计 token 数会遗漏重要权衡:修改发生的位置很重要。 例如,OpenAI 文档说明,提示缓存命中需要前缀精确匹配。提示缓存指南解释了前缀匹配要求。

Before: [stable instructions] [old investigation] [useful evidence]
After:  [stable instructions] [shorter summary]   [useful evidence]

末尾的有效证据没有变化,但它前面的上下文变了。采用前缀缓存的实现可能需要再次处理这些保留内容。因此,一种减少可见 token 的策略,未必能降低真实请求成本或延迟。应分别测量缓存输入、未缓存输入和输出,而不是根据文件大小估算节省金额。

Suffix Cache Reuse(SCR) 是独立的 SGLang 补丁,用于在编辑后复用保留下来的缓存状态。其文档报告,在对应 BrowseComp-Plus 比较中,以标准服务 65.0% 的经验前缀复用 FLOPs 达到了相当的表现。核查版本的支持目标为 SGLang 0.5.16 和 Qwen3.6-27B,同时需要额外缓存内存。SCR 文档解释了近似处理方式、支持范围和内存分配。

关键在于,保留的状态可能仍包含旧前缀的信息。我们的推论是:从上下文文件删除文字,不代表它对缓存状态的影响也已被清除。 这不是已经证实的数据泄漏,而是应该针对敏感删除和约束变更进行全新预填充测试的理由。不能把复用旧状态视为与重新构建提示完全等价。日志和保存的快照也需要独立的保留规则。

先用普通推理服务评估上下文策略,再把 SCR 作为单独实验组加入。否则,无法分清变化来自更好的上下文决策,还是推理引擎使用了不同的近似机制。

发布的 CLM 代码可以不受限制地商用吗?

核查的仓库采用 CC BY-NC 4.0。 它不是 MIT 许可,也不是不限制商业用途的发布。固定版本的 LICENSE 写明 Attribution-NonCommercial 4.0。Creative Commons 在 CC BY-NC 4.0 说明页解释了非商业条件。Open Source Definition 不允许禁止商业用途的领域限制。OSI 定义列出了相应要求。

进行技术采购判断时,应将其标为带有非商业限制、公开可获取的研究代码,而不是简单称为“免费开源”。使用前请确认计划中的评估或部署是否获得许可,或取得相应授权。企业内部实验不会仅因为没有对外销售订阅,就自动变成获准用途。模糊情况应交由合格法律顾问评估。

这里评估的是已核查代码的许可,不是在判断研究思想、独立编写的实现、模型权重或其他依赖的权利范围。

如何试用参考实现?

确认用途获准后,从隔离的开发环境、有效 Harbor 任务和已配置的模型端点开始。不要挂载生产密钥,也不要授予业务系统写权限。下面的提交固定了研究代码版本,但没有固定所有依赖或模型修订。

git clone https://github.com/facebookresearch/context-language-models.git
cd context-language-models
git checkout --detach 18dc11115f50f261233c5bba7937834491e307e8
python3.12 -m venv .venv
. .venv/bin/activate
python -m pip install -e .

请使用真实存在的 Harbor 任务目录。示例假设所示地址已有兼容 OpenAI 接口的端点,以 qwen36-27b 为模型别名,并启用了工具调用。根据环境修改路径和端点。“兼容 OpenAI”描述的是接口,并不说明谁在托管模型。

: "${TASK_DIR:?Set TASK_DIR to an existing Harbor task directory}"
test -d "$TASK_DIR" || exit 1
clm-harbor trial start -p "$TASK_DIR" -e docker \
  -a clm-minimal -m openai/qwen36-27b \
  --agent-kwarg api_base=http://localhost:8000/v1

这些命令依据文档中的安装和 Harbor 接口编写,我们没有实际执行 CLM 试验。模型服务器必须能被发起模型调用的进程访问。它的上下文容量需要容纳 context_budget_tokens + max_tokens,而不只是可编辑输入预算。请把依赖版本、模型修订、采样设置和端点配置与结果一起保存。

命令行程序成功启动不构成验收证据。还应检查最终任务结果与保留的产物。参考日志包括 usage.json、trajectory.json 和上下文快照。只编辑上下文的操作可能不占任务步骤额度,但仍消耗模型调用。这些调用必须计入实验的真实成本。

能拒绝错误上下文编辑的试点设计

下面是我们建议的评估设计,不是在声称这些都是发布版本内置功能。先选择一个只读工作流,例如调查支持事件并提出诊断建议。不要从能退款、修改权限或部署代码的智能体开始。

对现有压缩方案与 CLM 方案使用相同的模型检查点、初始指令、工具、证据语料和任务集。在实现允许的情况下,保持上下文预算和总执行预算一致,并记录不可避免的差异。进行重复配对试验,因为一次成功轨迹不能证明可靠性。最终保留测试集必须与用于改进编辑技能的样例分开。

建议的上下文编辑验收测试
测试测试材料必须提供的证据
关键事实保留大量无关结果之后,任务仍需要一个精确标识符。答案保留正确标识符及来源。
约束更新后续获授权指令使先前假设失效。决策遵守当前约束,不会悄悄恢复旧假设。
证据矛盾两条来源相互冲突,只有一条对当前任务具有权威性。在凭证据解决前,编辑仍保留该分歧。
被操纵的工具输出检索页面包含伪装成策略的指令。重写后的上下文不会把这条指令提升为权威规则。
无效或中断的编辑编辑产生非法结构,或进程在更新中途停止。不会用部分状态执行动作,恢复过程在轨迹中可见。
对缓存敏感的删除删除合成敏感事实,比较复用缓存与全新预填充。记录行为差异,不能仅凭文件差异推断已彻底清除。
智能体隔离两个智能体处理无关且权限不同的任务。任务之间不会收到对方的上下文或缓存状态。

作为一般故障类型,注入测试并非纯粹假设。OpenAI 曾记录一个未发布模型在单独训练过程中,极少数上下文压缩摘要包含模型自行生成的未授权指令。报告没有把该行为归于最终模型用于实际流量的检查点。这不是针对 CLM 的漏洞发现,但说明重写摘要仍应作为不可信内容处理。OpenAI 事件报告给出了观察结果及其适用边界。

对每项候选编辑,我们建议生产设计保存先前修订、拟议差异、验证结果和拒绝原因。审计记录应由应用控制,而不是让智能体自行重写。即使上下文检查通过,也必须在动作执行边界再次验证实际权限。

报告任务成功率、关键事实丢失、无依据断言、被拒绝编辑、恢复尝试、延迟,以及模型与工具总成本。增加“每个验收通过结果的成本”,计入重试与人工审核。查看结果之前就约定不能接受的退化。平均成本降低但丢掉关键证据的策略,不能因为最好看的几个示例而获批。

多个上下文文件并不是协调协议

由模型管理文件,为多个智能体分配工作上下文提供了有吸引力的方式。但文件本身无法回答谁拥有某个修订、如何处理并发写入,以及哪个智能体能读取其他任务的数据。

我们的默认设计是让每个智能体拥有私有工作文件,明确共享证据的读取权限,并为每个共享产物指定唯一负责的写入方。共享更新应声明要替换的修订,并拒绝过时写入。在测试修订冲突、恢复和跨任务隔离之前,不应将它描述成已具备完整协作语义的共享文档。

团队现在应该改变什么?

试点模型主导的上下文压缩,同时独立控制权限、证据和恢复。 优先选择长调查历史已经造成可测量问题的工作流。对短小、可靠的流程,在有明确理由前不要改动。以不影响生产的影子运行评估新方案时,保留原有压缩路径。

拥有上下文文件的控制权有价值,但不等于控制了完整 AI 系统。参考运行框架支持本地或托管模型端点。本地文件依然可能发送给远程提供商。请分别决定推理在哪里运行、谁能访问轨迹、如何导出,以及适用哪些许可。仅凭自托管或云托管,都无法证明系统与用户利益对齐。

下一步可以明确一个工作流、必须保留的事实,以及批准新上下文策略所需的证据。我们的 AI 开发服务是界定此类项目范围的商业入口。TwinSoft AI 案例展示相关 AI 产品交付经验,并非 CLM 实施案例。可借助上线前软件 QA 检查清单将试点纳入整体发布检查,或讨论一个边界明确的上下文管理评估。

模型可能成为更好的工作笔记编辑者。应用仍然需要知道,这些笔记是否准确到足以支持行动。

Context Language Models 常见问题

什么是 Context Language Model?
Context Language Model 让模型通过编辑文本形式的实时上下文来管理工作材料,再由运行时把修改读取到后续请求中。它不只是外部笔记本,也不只是更大的上下文窗口。
Context Language Models 会取消智能体运行框架吗?
不会。核查的参考运行框架仍固定系统提示和任务、检查 token 预算、验证编辑并处理超限。由模型决定保留哪些信息,不能替代应用授权或恢复机制。
现有 LLM 能不经训练就使用 CLM 式上下文编辑吗?
参考运行框架支持现有模型和兼容工具调用的端点,不要求新架构。但质量取决于模型和任务,未经额外训练的结果不代表每个模型都一定改进。
编辑上下文文件会改变模型权重吗?
不会。文件编辑改变的是后续请求使用的材料。项目的上下文内技能演化保持权重不变,强化学习则是独立的训练过程。
Meta 发布的 Context Language Models 代码是无限制开源吗?
核查仓库使用 CC BY-NC 4.0,包含非商业条件。它不是 MIT 许可,也不是不限制商业用途的发布。请确认预期用途是否获准,或取得相应授权。
它与 Contrastive Language Model CLM-8B 是同一个系统吗?
不是。Context Language Models 关注工作上下文编辑;Wavect 另一篇指南中的 Contrastive Language Model CLM-8B 关注候选动作排序。相同缩写不代表同一个项目。
删除上下文文字就等于从缓存中清除了吗?
不能这样假设。核查的 Suffix Cache Reuse 设计可能保留受旧前缀影响的缓存状态。敏感删除应与全新预填充进行比较,日志和快照也要单独管理。

生产级 AI 支持

正在构建 AI 产品,却担心推理成本、架构或生产可用性?Wavect 帮助创始人把 AI 原型变成可靠的生产系统。

查看相关服务:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

12 分钟 阅读 · 2026年10月2日
最近审核

下一篇

获取下一篇关于AI 与智能体的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。