F26|上下文组装:每轮到底给模型什么,以及为什么
从具体对象与小例子开始,理解计算过程与适用条件。
本章目录
每轮上下文像一份有边界的工作资料
为什么“读得越多”有时反而越容易误解?
模型这轮只能使用被提供的材料。资料过少会缺依据,过多又会引入旧版本、重复结论或无关规则。关键不是把所有可用信息填满,而是准备能支持下一步动作的最小充分资料,同时留出生成空间。
输入与适用条件:100单位的教学预算,不是真实Tokenizer测量:规则20、任务10、工具15、证据20、输出预留20。全程同一配置。
1 / 5 · 加入规则
窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。
先固定不可省略的规则;外部资料不是同等级指令。
累计安排=20 / 100默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。
为什么需要
控制成本与上下文干扰,同时避免省掉关键约束。
怎样实现
先保证目标和证据依赖完整,再对可重新读取的细节按需加载。
可能的代价与误解
删除一条否定条件或其适用版本,可能让短摘要比长原文更危险。
如何判断是否做对
让模型用本轮材料回答关键约束与下一步证据问题,检查是否需要重新取证。
上下文不是“整台电脑都在模型脑里”
上下文context是当前模型调用能利用的输入内容及相应状态。可能包括角色指令、用户问题、历史、工具定义、检索片段和压缩信息。系统外部存着的资料,只有被取出并以模型可用形式提供,才成为本轮条件的一部分。
Prompt assembly或context assembly就是宿主选择、组织这些内容的过程。它既涉及什么该读,也涉及身份、顺序、预算和证据适用性。
先算一本简化Token账
假设一个教学服务总预算2000,给预计输出留500,再给格式与估算误差留100,则输入安排上限1400。固定规则200、工具说明300、用户任务100,剩800用于历史和证据。
这只是教学预算,不对应当前某款产品的固定分配。真实接口怎样计入输出、内部推理和压缩块,必须查版本约定。重要的是别把“只数用户文字”当作完整输入成本。
怎样选证据,不是越多越好
假设要修复目录过滤Bug。需要的是相关函数、调用条件、配置规范、失败测试和可能影响语义的依赖。十份无关README可能增加Token,却没有减少对Bug的关键不确定性。
JIT(just-in-time,按需)加载表示在需要时才读取某段内容,而非开始就全部塞入。依赖闭包表示当前结论依赖的必要关联信息也要被找到,例如只读函数体不够,还需了解调用方传入的路径格式。
闭包并不要求无条件展开整个仓库。边界应由“当前判断还缺哪项依据”逐步扩展;停止条件是足以做下一项可靠决定。
顺序、角色、来源是三种不同标签
较早出现不等于权威更高;较新的文件不必然更可信;外部文档中的命令不等于用户授权。宿主要保留来源与作用域,模型才能较好区分规则、证据和引用里的文字。
若产品有指令优先级,应遵循对应接口和规范,但这不是注意力权重的数值优先级,更不是执行权限。系统层面的安全限制仍需在执行器落实。
Prompt Cache为什么需要稳定前缀
在常见因果模型中,前缀相同、模型和相应条件相同,前缀中间计算有复用基础。Prompt Cache可以利用重复前缀减少部分计算或计费,具体服务规则会变化。
但把每次都变化的时间戳或随机字段放在最前面,可能破坏长前缀复用。反过来,为了命中缓存把过期内容永远留下,也可能伤害质量。缓存是成本优化,不是信息正确性的替代品。
如何观察模型“没听话”的原因
先检查规则是否存在,再检查是否被发现、是否读取、是否进入请求、是否被后续裁剪、是否仍适用。只有这些都满足,才进一步调查模型如何利用内容。
这个链条解释了为什么某个Skill没生效,未必应该马上重写措辞。真正问题可能是文件没被加载,或子Agent根本没收到相关上下文。
稳定上下文与动态证据怎样分工
稳定部分适合简明放置项目核心约定;动态部分带上任务证据、当前版本和进行中的步骤。低价值日志可留在外部,需要时再取。
这里没有唯一最优排序。教学目标是让你能列出每个块的职责、Token成本、来源与缺失后果,再用真实任务比较,而不是凭“更长更专业”评判Prompt。
给一轮上下文算预算,看看哪些证据确实装进去了
输入与条件。教学窗口上限1000个预算单位,预留输出200和安全余量50。固定指令120、工具100、任务80、当前状态100。此处单位是假设已由正确分词器计过的Token。
| 步骤与对象 | 内部动作 | 中间结果 / 新状态 |
|---|---|---|
| 1先算可用输入 | 1000−200−50 | 750。 |
| 2扣固定部分 | 120+100+80+100 | 固定消耗400,还可放350证据Token。 |
| 3候选证据 | 配置120、对应测试180、旧日志300 | 配置和测试合计300,能一起放入。 |
| 4选择后核对 | 总输入400+300=700 | 余50;旧日志不应挤掉必要测试。 |
| 5下一轮重新算 | 若新工具结果240进入上下文 | 必须重新选择或摘要,不是永久沿用第一轮预算。 |
把过程连起来。“模型能看到”取决于最后发送的输入,而不是检索器曾返回什么。要核对最终请求,不只核对搜索日志。
边界与反例。这些数是已知Token成本的教学账本,不是按中文字数猜Token,也不是任何产品默认窗口。
依据与适用范围:[CONTEXT]。示例输入和场景由本书明确设定。
课后自检
预算中只有用户问题100Token,是否可忽略工具Schema?
查看参考答案收起参考答案
为了缓存命中,把一周前的配置一直保留在前缀中好吗?
查看参考答案收起参考答案
延伸阅读:相关系统问题
12|Codex、Claude Code、Copilot:从公开事实到可诊断运行链13|每一轮Prompt怎样组装:上下文是一条数据管线
14|上下文压缩:到底压掉什么,丢失后又如何恢复
19|Skills与路由:怎样加载刚好需要的专业能力
28|研究深水区与系统综合判断
机制依据:[CONTEXT][PCACHE][TOOLS]。本节数值与情景除另注外均为原创教学示例;来源不代替中文讲解。