返回知识库

AI 与提示 · 模型与输出

上下文Context

上下文(context)是模型一次推理能 attend 到的 token 窗口:系统规则、当前任务、检索片段和历史对话都占预算。窗口有上限(如 8K / 32K / 200K),超限就从最早的内容开始截断,早期约定会丢失;上下文越长,单次成本和延迟也越高。管理手段是固定保留 system 与任务、按需检索、摘要历史、扩大窗口和移除噪音。

登录页文案请求:模型这一轮到底收到了什么

同一个改标题任务,分别用 8K 原始历史、8K 历史摘要和 32K 原始历史发送。被截断的约定会从送达清单里消失,并直接改变 AI 的文案结果。

这是 AI 文案助手正在处理的登录页请求。先看本轮真正送达模型的内容和实际回复,再切换历史摘要或更大窗口;用户任务始终不变。

AI 文案助手登录页改版 · 请求 #LP-27
1 段未送达
访客 · 15:08

把登录页主标题改短,并保留试用信息。

AI 回复 · 15:08结果跑偏 · 约定丢失
成本
$0.16
首字
184ms
主标题:永久免费学会 AI 编程

模型没看到最早那句“不要写永久免费”,不是记住后又故意违背。

8K 窗口装满后,最早约定被截断;模型只根据实际送达的 8K 作答。选择“8K · 历史摘要”或“32K · 原始历史”可恢复。

离开这页,只记这几条

上面面板把每件事演示过一遍,这里只给它们命名,方便复述。

上下文 = 一次推理的 token 预算
模型一次推理只能 attend 到窗口里的内容。窗口大小(如 8K / 32K / 200K)是模型档的上限,不是免费的——填得越满,单次成本和首字延迟越高(看面板的计数、成本与延迟读数)。
窗口里装了什么
四类:系统规则(system)、当前任务(user)、检索到的资料(RAG 片段)和历史对话;外加你顺手粘进去的噪音日志。每一段都占 token,没有一段是「白送」的。
超限就从最早的内容截断
预算不够时,模型按进入顺序从最早的内容开始丢弃(面板里最早的历史和噪音先变「未送达」)。表现就是「它忘了前面说过的约定」——其实那段根本没进这一轮的窗口。
系统规则与当前任务优先保留
这两段是 pinned:固定占用预算、绝不截断。所以扩窗或砍历史前,先把目标和硬约束写进 system 与当前任务,再决定剩下预算怎么分。
检索 / 摘要 / 分段是管理手段
不必把所有原始资料都塞进窗口。按需检索只取相关片段(RAG)、把长历史摘要成结论、对超长文档分段处理,都能让有限预算留给当前真正需要的内容(面板里点「摘要历史」就能看 token 掉下来、被截断的片段恢复)。

什么时候要管上下文

出现下面这些信号,多半是上下文管理出了问题,不是模型变笨了。

  • 模型忘了前面的约定:多半是早期历史被截断。缩短历史、摘要旧结论,或换更大窗口的档。
  • 单次账单和等待一起涨:上下文越长成本和延迟越高。砍掉无关聊天和原始日志,只留相关片段。
  • 资料太多塞不下:别硬粘全文。改成按需检索(RAG)只取 Top 片段,或把长文档分段处理后再决定哪段进窗口。
  • 多轮对话越来越飘:把已确认的结论写回 system 或当前任务,让它们固定保留,而不是任由它在历史里被挤掉。

怎么把一轮上下文拼好

从目标倒推预算分配,最短路径是这几步。

  1. 估 token:先看模型档的窗口大小,给输出留余量,剩下的就是输入预算。
  2. 固定保留:把角色、安全边界和本轮目标写进 system 与当前任务,它们占预算但不被截断。
  3. 按需取资料:用检索挑与本次问题最相关的片段,而不是整篇文档;重复或无关的聊天不进窗口。
  4. 压缩历史:把旧轮次摘要成「已确认的决定」,只保留最近几轮原文。
  5. 超限处理:还超就扩窗口档,或显式告诉模型「资料不足」并询问,不要让它静默猜测被截掉的那部分。

同一目标,塞法不同,结果差很多

都要它改登录页文案。差别只在上下文怎么拼。

正例只贴相关片段 + 目标 + 已否决方案

系统规则写清角色与边界,当前任务给出本轮目标和成功条件,历史只留「已否决的方案」摘要,再检索两段相关组件代码。窗口留有余量,早期约定都送达,模型一次就给到可用的改动。

反例把整段无关聊天原始粘贴

为了「给足背景」把几十轮原始聊天和调试日志全塞进去。窗口很快超限,最早关于边界和已否决方案的约定被截断,模型看不到,于是重复给出已否决的方案——你以为它笨了,其实是那段没进窗口。

快速自测

模型突然忘了 5 轮前确认过的一条硬约束。最该先查哪一项?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。