上下文窗口
Context window
模型在每次模型请求中看到的一切。有限、因模型而异,也是模型感知外界的唯一界面。
它是一个连续的 Token 序列:System Prompt、到目前为止的对话、Harness 回传的每个工具结果。如果某个内容在这个序列里,模型就能用它;如果不在,模型就不知道它存在——不管是你的代码库、你昨天改过的文件,还是三个 Session 前给过的指令。窗口外的任何东西都要先被带进来,通常通过工具调用,才能产生影响。
有限意味着它会被填满。每一轮都会追加更多内容——你的消息、模型的回复、工具结果——长 Session 最终会遇到上限,迫使进行上下文压缩或清空。这也意味着窗口里的所有内容都在竞争:你加载的每个 Token 都会让其他内容少一个位置,不需要的内容仍然会占用模型的注意力。实际做法是把它当作预算——只加载任务需要的,其余留在外面。
避免说成“记忆”——上下文窗口是工作态,不会在跨 Session 时保留。记忆是叠加在上面的另一个概念。
用法:
“我可以把整个 monorepo 都贴进 Prompt 吗?”
“上下文窗口只有 20 万 Token——大概只是仓库的五分之一。只选任务涉及的文件,其他的留给工具调用。”