简体中文
A context window is a virtual address space. Working sets, prefetch, page faults, caches — and thrashing, which is what a sixty-second unanswered question actually is.文章 · standmeet2026.10.07 · 文章
2026.10.07·3 分钟阅读#agent-os

Context Is Virtual Memory

A context window is a virtual address space. Working sets, prefetch, page faults, caches — and thrashing, which is what a sixty-second unanswered question actually is.

上下文即虚拟内存

上下文窗口就是一个虚拟地址空间。它比 agent 可能需要的世界小,它被当作整个世界来寻址,而且有一套程序员几乎看不见的机制在决定每一刻什么驻留在里面。操作系统花了几十年学管理这个虚构,而他们的词汇表,一对一地命名了 agent 开发者如今用临时词汇描述的那些问题。

每个问题都有一个工作集:它真正需要的那一小撮证据。答得好,说明工作集当时驻留着。Agent 提速工程的大部分,就是驻留工程。上下文包——把已知话题的证据预先组装好、在第一次工具调用前注入——就是预取:换了个名字的 readahead,赌的是工作集可预测,因为 waypoints 已经把它声明出来了。会话级检索缓存是缓存层级在做缓存该做的事:同一场对话的第二个问题,不该为第一个问题已经取过的东西再付一次磁盘价。而一次缺页——窗口里没有这页,工作停摆,去 corpus 里取——在这种架构里要价一整轮模型往返。1968 年缺页也是昂贵路径,现在还是,只是常数变了。

这套词汇也命名了故障。颠簸是工作集装不下时系统的状态:全部时间花在取页和换页上,一点活没干。我亲眼看过一个访客 agent 在一个问题上花掉一分多钟,搜了十个来源还是答不出来——一份教科书级的颠簸轨迹,连"重复取回缓存本该免费提供的重叠材料"都一应俱全。操作系统的文献列了疗法,是同一套疗法、同一个顺序:知道工作集(声明它,不要发现它)、预取它、跨缺页缓存它;如果它真的装不下,缩小问题,而不是英勇地把页换得更勤。

有一处对应不完美,诚实要求在这里就标出来,而不是留到收官篇。操作系统换出一页,那页回来时逐比特相同。而 agent 的上下文被压缩时,换出去的东西以摘要的形式回来——如果它还能回来的话。Agent 内存的换页是有损的,每个依赖压缩的设计都继承了这个损失。同构成立的是问题的结构。介质的保真度是另一回事,那是本系列最后一篇的主题。

就这篇文章向 AI 提问·上下文:“context is virtual memory”
›