上一篇说裸模型像抽卡,因为它把概率输出直接暴露给用户。抽卡感解释的是一次任务里的波动;上下文问题解释的是长程任务为什么会累、会乱、会跑偏。

LLM 和人都有一个共同约束:它们都在上下文里工作。区别在于,模型的上下文 refill 是读写问题,人的上下文 refill 是注意力问题。机器可以把一段摘要重新塞进 message array,人却要重新把目标、材料、约束和下一步动作装回工作记忆。这个过程有磨损。

人也有 context window

把 LLM 说成统计模型是对的,但这种说法容易遮住它和人的相似工作形态。人从长期通识积累到领域学习,再到职业训练和反馈,很像预训练、继续预训练和后训练的分层。拥有推理能力以后,人也不是在真空中推理,而是在一个被任务材料填充出来的上下文里推理。

上下文质量决定注意力预算能不能被调动。APA 对 multitasking 的综述把任务切换带来的时间成本叫 switching costs。换到工程语境里,context switching 的问题不是“同时做两件事”这么简单,而是每次切换都要重新加载一组任务状态:目标是什么,做到哪里,哪些约束不能破,下一步该看哪个文件。

人脑不能像计算机一样无磨损地 page in。频繁切换会把深度工作预算消耗在重建现场上,而不是消耗在有效判断上。一天里能稳定维持的高质量上下文是有限的。

长窗口不是无限工作台

LLM 的上下文窗口看起来比人的工作记忆大得多,但它不是无限工作台。《Lost in the Middle》发现,长上下文模型对信息位置敏感:相关信息放在开头或结尾通常更容易被用上,放在中间时表现会明显下降。长窗口解决了“能不能塞进去”,没有彻底解决“塞进去以后能不能用好”。

append-only message array 还有一个工程缺陷:它很容易积累噪声。一次长程 coding 会话里,旧错误、失败命令、废弃方案、临时猜测、过时文件内容都会留在上下文里。模型并不总能稳定地区分哪些是历史垃圾,哪些是当前证据。

所以关键问题不是窗口多长,而是当前工作集有多干净。

flowchart TB
    A[外部世界: repo / docs / logs / memory] --> B[选择 Select]
    B --> C[工作集: 当前上下文窗口]
    C --> D[模型推理与工具调用]
    D --> E[结果 / 观察 / 失败]
    E --> F[写回 Write]
    F --> A
    E --> G[压缩 Compress]
    G --> A
    H[隔离 Isolate: 子 Agent / 新会话] --> C

记忆系统的本质是换入换出

成熟的长程智能不是把所有东西都记住,而是把有限上下文接成连续工作边界。外部设施承担四类动作:遗忘、压缩、检索、索引。人类靠笔记、书、目录、搜索、日程和社会分工做到这件事;Agent 靠 memory、retrieval、spec、tests、session summary 和 skills 做同一件事。

Anthropic 把 context engineering 的基本动作归纳为 write、select、compress、isolate,很适合当作这个问题的工程骨架。Write 把重要状态写到外部,Select 在需要时选择相关信息,Compress 把长轨迹压成可用摘要,Isolate 用子 Agent 或新会话保护上下文纯度。

借用操作系统的词,这可以叫 context paging。窗口内 token 是工作集,外部记忆是磁盘,检索和摘要是 page in,压缩、归档和蒸馏是 page out。优化目标不是保存一切,而是在下一次推理前,把最该进入工作集的信息换进来,把会污染注意力的信息换出去。

四层记忆可以重新理解

本博客前文把智能体记忆按写入主体分成四层:训练数据、对话内数据、跨会话数据、外部世界数据。也有另一篇 Hermes 横评用 L0-L4 描述记忆成熟度:L0 无状态,L1 会话持久化,L2 项目上下文注入,L3 跨平台会话与技能注册,L4 封闭学习回路。

这两套模型并不冲突。前者回答“信息从哪里来”,后者回答“系统能自动处理到什么程度”。如果排除 L0 无状态,L1-L4 正好是一条从手工 refill 走向自动 context paging 的路线。

CoALA 也提供了相近的理论入口:language agent 不只是 LLM,还包括 memory、action space 和 decision-making procedure。记忆不是一个单一仓库,而是工作记忆、语义记忆、情节记忆、程序性记忆的组合。能检索、能行动、能决定何时检索,才是长程 Agent 和一次性聊天的差别。

下一代 scaling 不只在模型里

过去的 scaling 主要押注更大模型、更多数据、更长上下文、更高推理 token。下一阶段的 scaling 还会发生在上下文换入换出算法里。

同一个模型,如果每次拿到的是噪声很大的历史堆积,它会像一个被会议纪要淹没的人;如果每次拿到的是清晰目标、关键证据、当前状态和验证方法,它就像一个刚接班但交接材料极好的工程师。底层模型没变,工作能力会显著不同。

Context paging 的最终目标,是让有限窗口连接出近乎无限的工作边界。模型负责在当前工作集内推理,Harness 负责管理工作集如何生成、如何清理、如何继承、如何验证。

相关文章

参考资料