Cursor Composer 自摘要:用 RL 练,不用靠提示词硬挤上下文
Cursor 用强化学习训练 Composer 做 self-summary,不是靠一段提示硬压上下文。相对常规 compaction 压缩误差约降一半;长任务别指望窗口越大越好一条路走到黑。

长会话里最烦的,经常不是「模型突然变笨」,而是上下文被压扁之后丢了细节。Cursor 这次讲的是:他们用 RL(强化学习)训练 Composer 自己做摘要(self-summary),而不是塞一段「请总结上文」的提示词,指望它乖乖压缩。
官方说法很短:比起标准 compaction,来自压缩的误差大约少一半,也让 Composer 更扛得住需要上百步动作的难编码任务。下面先对图,再讲你日常在 Cursor IDE 里能怎么用。
图怎么读:Self-summary 贴着 Full context
封面对比的是 CursorBench Hard 的两条设定(80k / 40k),三种策略:
- Compaction(灰点):常规压缩
- Self-summary(橙点):自摘要
- Full context(竖虚线):尽量保留完整上下文的上限参考
标注大概是这样:
- Hard 80k:Compaction
46.7→ Self-summary47.9→ Full48.8 - Hard 40k:Compaction
44.3→ Self-summary47.3→ Full48.8
40k 那条更明显:普通压缩掉得远,自摘要把分数拉回到贴近满上下文。图右下还写了句人话:Self-summary uses 1/5 tokens。省下来的不只是钱,还有「塞得进窗口」这件事本身。
「误差少 50%」到底在比什么
别理解成「准确率直接 ×1.5」。更贴官方语义的说法是:对照 Full context,compaction 拉开的那截差距(error from compaction),self-summary 能砍掉大约一半。以 40k 为例,Compaction 离 Full 更远,Self-summary 把缺口收得很窄,跟「少一半压缩误差」对得上观感。
另一点常被转发漏掉:这是训练出来的行为,不是提示词技巧。你在对话框里手写「每 20 轮总结一次」,和模型在 RL 里学会「何时摘要、摘要留什么」,不是同一档稳定性。长程的 Cursor agent / Composer 任务(重构、多文件、上百步工具调用)最怕的就是中间态被压没。
和你改代码有啥关系
你未必能在设置里看到一个叫「RL self-summary」的开关,但用法上可以提前想清楚。长任务别指望「窗口越大越好」一条路走到黑,满上下文既贵又容易带噪声,好的摘要是留下决策相关的状态,不是留聊天记录。关键约束要写进 Rules 或验收标准,别只活在很早以前的某一轮对话里,压缩或摘要都可能把它挤掉,工作流可看 Agent / Rules / Skills。上百步的活拆成可验收的段,官方强调的是 challenging tasks requiring hundreds of actions,你本地的等价物是每段有测试或可观察输出、挂了能回滚,而不是一条 Agent 从早聊到晚。模型账单也按「有效进度」看,self-summary 的叙事是更少 token、更少掉分,你那边要是 Usage 暴涨却总在重复解释项目背景,更像是上下文策略出了问题,成本侧可对照 模型组合成本。
怎么自己验收有没有「摘要伤脑」
做一个小对照就够:同一道难题跑两轮,一轮中途强行压缩或新开短上下文,一轮尽量保留关键文件和失败日志。然后看它是否还记得「不能动的目录、已经失败的尝试、测试命令」。要是一压缩就失忆,问题在状态保存,而不在「再换一个更贵的模型」。多 Agent 场景里,把写和验拆开也能减少「摘要把验收标准吃掉」的概率,见 Verifier 怎么卡 Worker。
别这样读标题
- 写成「Composer 永远只需 1/5 token」。图上是对照某种 compaction 设定的效率说明,不是全场景电价表。
- 写成「提示词 summarize 就等于 RL self-summary」。
- 忽略 Full context 仍略高:自摘要是在逼近上限,不是已经封顶。
上下文窗口是房租,摘要质量是收纳。Cursor 用 RL 让 Composer 自己收纳,比你每次提醒「请总结」靠谱;你要做的,是别把关键约束只藏在会被挤掉的聊天里。长程任务本身就费轮次,摘要做得好,常常就是少做那些反复解释背景的无用回合。
成本曲线的另一侧可读 CursorBench 与 Composer 2.5。