上下文窗口是模型在一次生成中能够考虑的信息集合。它包括指令、对话历史、检索到的文件、工具说明、工具结果、以 token 表示的图片,以及为响应预留的空间。它更接近工作记忆,而不是模型已经学到的知识。
这个区别能避免一个常见误解:模型可能从训练中知道某个通用概念,却不知道你任务所需的私有事实;反过来也可能发生,事实已经出现在上下文中,但请求被大量无关材料挤满,模型仍然没能注意到或正确应用它。
每个 token 都在竞争注意力。更大的窗口让应用可以提交更多材料,却不能保证模型能对全部材料均匀地回忆或推理。重要证据可能变得难以发现,重复段落可能让回答产生偏向,冗长工具输出还可能挤掉定义成功标准的指令。
从输出倒推预算。为响应以及模型可能产生的推理或工具活动留出足够空间,再把容量分给稳定指令、当前问题、最近的对话状态和支撑证据。不要只因为还有余量,就把窗口填满。
优先选择高信号上下文。对于文档问答,提供相关段落及其标题、日期和来源标识;对于编码任务,提供接口、测试、报错输出和邻近实现,而不是整个代码库;对于代理,提供它可按需检查的轻量参考,而不是预先加载所有可能资源。
长对话需要明确的状态策略。压缩会把早先工作总结成更小的产物;结构化笔记会把决定、限制、未解问题和已完成步骤保存在即时对话之外;检索则只拿回下一步行动所需内容。这些方法以逐字历史为代价,换取持续的连贯性。
压缩可能丢失细节,因此摘要应区分持久事实和临时观察。记录精确标识符、路径、决定、证据链接及未解决风险。重要产物——测试、规格、数据和最终输出——应保留原生形式,而不应依赖一份对话摘要来复现它们。
提示词缓存可以降低重复前缀的成本或延迟,但被缓存的 token 仍占据上下文窗口。缓存改变的是重复输入的处理或计费方式,并不会把窗口变成无限记忆。
工具使用会带来另一层压力。schema、结果、截图和中间推理都会消耗容量。平台支持时应清除过时的工具结果,概括大型输出,并保留指向原始证据的指针。一个有用的代理应当能重新打开来源,而不是永远携带每一个字节。
要用真实的长输入评估上下文设计。把重要事实放在不同位置,加入看似合理的干扰项,并在经历多次工具调用后测试追问。衡量的不只是模型能否复述某项事实,还包括它是否采用了正确版本并引用了正确来源。
最好的上下文不是最大的上下文,而是保留目标、限制、证据和下一项决策所需的最小当前工作集。更大的窗口扩大了可能性;谨慎的上下文工程决定了什么还能保持可靠。
我们会结合一手资料、产品文档与实际使用场景,帮助你更清楚地判断工具是否适合你的工作流。