上下文窗口:AI 的工作记忆
定义
上下文窗口是一次模型请求能够处理的 Token 容量,其中要容纳系统指令、对话、工具定义与结果、检索资料、当前问题和预留输出。它是有限资源,不等同于长期记忆。
说明
窗口是请求级容量边界。总内容接近上限时,应用必须选择拒绝请求、裁剪、摘要、检索或换用更大窗口;并非所有产品都会简单删除最早消息。
窗口更大可以一次带入更多资料,但也可能增加费用、延迟和无关信息。真正的问题不是“能塞多少”,而是哪些内容对当前任务有贡献。
多轮 Agent 还会累积工具定义、工具返回和中间结果,增长速度可能快于普通聊天。工程上应分别预算固定前缀、历史、外部资料和输出空间。
需要跨会话保留的信息应进入会话日志、项目文件或记忆系统,再按任务检索回上下文。把所有历史永久重复发送既昂贵,也容易稀释当前目标。
发现模型遗漏早期约束时,先检查请求里是否仍包含该信息,再决定重发、摘要或重建会话;追问模型“你是不是忘了”不能替代观测真实输入。
边界与误区
上下文窗口溢出会怎样: 一旦总 Token 数超过窗口上限,最早和最边缘的部分可能被截断,模型看不到这些内容,回答质量会下降。具体由工程策略决定是丢弃、压缩还是选择性保留,但溢出总意味着部分信息丢失。
窗口越大越好吗: 不一定。大窗口能容纳更多资料,但请求费用通常更高,处理时间也可能更久。很多任务并不需要全部历史,合理裁剪和检索往往比追求更大窗口更经济有效。
为什么多轮对话也会占满窗口: 每次新请求通常会把之前的对话历史重新放入上下文,模型需要历史才能理解当前问题。随着轮次增加,历史 Token 不断累积,最终可能挤占新信息和回复空间,因此需要在适合的时点压缩或清理历史。