基础篇

F26|上下文组装:每轮到底给模型什么,以及为什么

基础篇约 2.5 千字1 组分步图解

从具体对象与小例子开始,理解计算过程与适用条件。

本章目录
动态图解 · F26

每轮上下文像一份有边界的工作资料

为什么“读得越多”有时反而越容易误解?

模型这轮只能使用被提供的材料。资料过少会缺依据,过多又会引入旧版本、重复结论或无关规则。关键不是把所有可用信息填满,而是准备能支持下一步动作的最小充分资料,同时留出生成空间。

预算本轮允许使用的资源额度。
必要证据缺少它就无法可靠判断的原始信息。
来源这段材料是谁给的、何时有效、能支持什么结论。

输入与适用条件:100单位的教学预算,不是真实Tokenizer测量:规则20、任务10、工具15、证据20、输出预留20。全程同一配置。

1 / 5 · 加入规则

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

每轮上下文像一份有边界的工作资料:加入规则总窗口预算:100 个教学Token单位规则20已安排 20;剩余 80

先固定不可省略的规则;外部资料不是同等级指令。

累计安排=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。

运行示例 · F26

给一轮上下文算预算,看看哪些证据确实装进去了

输入与条件。教学窗口上限1000个预算单位,预留输出200和安全余量50。固定指令120、工具100、任务80、当前状态100。此处单位是假设已由正确分词器计过的Token。

步骤与对象内部动作中间结果 / 新状态
1先算可用输入1000−200−50750。
2扣固定部分120+100+80+100固定消耗400,还可放350证据Token。
3候选证据配置120、对应测试180、旧日志300配置和测试合计300,能一起放入。
4选择后核对总输入400+300=700余50;旧日志不应挤掉必要测试。
5下一轮重新算若新工具结果240进入上下文必须重新选择或摘要,不是永久沿用第一轮预算。

把过程连起来。“模型能看到”取决于最后发送的输入,而不是检索器曾返回什么。要核对最终请求,不只核对搜索日志。

边界与反例。这些数是已知Token成本的教学账本,不是按中文字数猜Token,也不是任何产品默认窗口。

依据与适用范围:[CONTEXT]。示例输入和场景由本书明确设定。

课后自检

自检 1

预算中只有用户问题100Token,是否可忽略工具Schema?

查看参考答案收起参考答案
不能。工具定义和其他上下文也可能计入模型输入,实际预算需要按接口完整核算。
自检 2

为了缓存命中,把一周前的配置一直保留在前缀中好吗?

查看参考答案收起参考答案
要先核验配置是否仍适用。过期事实可能导致错误,缓存收益不能覆盖事实更新需求。

机制依据:[CONTEXT][PCACHE][TOOLS]。本节数值与情景除另注外均为原创教学示例;来源不代替中文讲解。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。