上下文窗口(context window) 上下文与记忆
模型这一轮真正能一起看到的输入容量(如 8192 tokens),可以理解成「办公桌面积」——桌子就那么大,能同时摊开的文件有限。上下文管理就是在有限的窗口里,让 Agent 跑得久、跑得稳、跑得便宜,见[第 09 章](/chapters/09-context-engineering/)。
它是什么
上下文窗口(context window)是模型这一轮真正能一起看到的输入容量,用 token 计量(经典模型如 8192 tokens,新模型已到 10 万级)。可以理解成办公桌面积——桌子就那么大,能同时摊开的文件有限。发送的内容(消息历史 + system prompt + 工具 schema + 即将生成的输出)超过窗口,API 直接报 prompt_too_long 拒绝请求,Agent 当场死亡。
三块预算
管理上下文前先把窗口拆成三块,只有一块是「历史输入」能用的:
const INPUT_BUDGET = WINDOW - MAX_OUTPUT - BUFFER;
WINDOW:模型上下文窗口;MAX_OUTPUT:预留模型回复输出;BUFFER:保险丝——JSON 包装、system prompt、工具 schema 的余量。
有限预算下的三件事
桌面上只能放「预算」这么多东西,于是:先测量(token 估算)、超了怎么办(滑动窗口与摘要压缩)、怎么少用(治理最大的消耗者——工具结果截断与 system prompt 分层)。不同模型的窗口尺寸不同,选型前查厂商 models 文档。完整实践见第 09 章。