范围和预算
上下文工程
Context engineering
含义
设计为模型提供的完整信息环境,包括指令、检索到的证据、历史记录、工具结果和状态。
使用场景
当可靠的行为取决于选择和安排多个提示句时使用。
应用示例
将策略、客户状态、检索到的证据和输出规则组合到一个受控的上下文中。生成式 AI 工程
了解如何预算、组装、订购、压缩、缓存以及跟踪指令、证据、历史和状态,以实现可靠的 AI 请求。
16 个术语
范围和预算
Context engineering
设计为模型提供的完整信息环境,包括指令、检索到的证据、历史记录、工具结果和状态。
当可靠的行为取决于选择和安排多个提示句时使用。
将策略、客户状态、检索到的证据和输出规则组合到一个受控的上下文中。范围和预算
Context budget
可用令牌在指令、证据、历史记录、工具结果和预期输出之间的计划分配。
在添加长文档之前进行设置,以防止重要指令和输出空间被挤占。
为答案预留 2000 个 token,并将剩余的预算分配给策略、示例和检索到的段落。范围和预算
Working context
为模型的当前步骤主动提供的可用信息的子集。
用于区分当前步骤的输入,以及存储在其他内存位置或源系统中的信息。
在此步骤中,包含已批准的大纲和来源说明,但省略早期的头脑风暴。组装和信任
Context assembly
将选定的指令、状态、证据、示例和工具输出收集到模型输入中。
使用确定性的组装策略,以便每个请求都以已知格式接收到所需的组件。
system rules -> verified user state -> retrieved evidence -> current request -> output contract组装和信任
Context hierarchy
系统规则、应用程序指令、用户输入和不可信内容之间的优先级关系。
当输入可能冲突或包含嵌入式指令时,明确定义权限边界。
层级标签有助于应用程序理解信任关系,但仍然需要在模型外部强制执行对安全敏感的权限。
将检索到的网页文本视为证据,而不是允许覆盖系统规则的权限。组装和信任
Context ordering
指令、源材料、示例和当前问题出现的顺序。
使用具有代表性的输入测试排序,因为位置会影响模型强调的信息。
首先放置较长的源文本,然后在最后以精确的问题和所需的输出格式结尾。组装和信任
Conversation history
保留之前的用户和助手消息,以支持多轮对话的连续性。
仅包含与当前请求相关、已授权且仍然有效的历史记录。
较长的历史记录可能会保留过时的指令或不必要的个人数据。
在进行下一次生成步骤之前,保留已确认的要求,并删除已过时的草稿。组装和信任
Context provenance
记录每个上下文项的来源、获取时间和可能的用途的元数据。
当需要引用、刷新、访问控制或审计证据时使用。
将源 ID、文档版本、retrieved_at、访问范围和块位置附加到每个段落。长上下文容量
Long context
一个包含大量文本或多模态材料的输入,其在模型支持的上下文容量范围内。
当任务真正需要广泛的来源覆盖,并且仅进行检索会删除有用的关系时使用。
更多的上下文并不能保证每个细节都会被准确使用;评估检索和推理在实际情况下的效果。
分析完整的合同集,然后列出冲突条款,并提供文档和章节引用。长上下文容量
Context overflow and truncation
当请求的输入和输出超过容量时,可能导致内容被拒绝或删除的情况。
在推理之前检测它,并应用明确的策略来修剪、总结、检索或分割工作。
静默截断可能会删除获得正确答案所需的精确指令或证据。
如果输入超过预算,则保留系统规则和最新的请求,然后检索最相关的证据。长上下文容量
Lost-in-the-middle effect
隐藏在较长输入中的相关信息,其可靠性低于显眼的信息。
在各种位置测试重要证据,并在出现问题时改进检索、排序、标签或查询位置。
评估相同证据,分别在开头、中间和结尾附近,而不是依赖于单一位置。优化和重用
Context pruning
在发送请求之前,删除不相关、重复、过期或低价值的项目。
使用它来保留注意力,并将预算用于权威的指令和证据。
丢弃重复的搜索结果和被用户最终决定取代的消息。优化和重用
Context compression
以更简洁的形式表示原始材料,同时保留完成任务所需的信息。
当完整源文本太大时,请使用结构化摘要,并保留指向原始证据的链接。
压缩可能会忽略细微之处或引入错误,因此请对照原始数据验证重要的声明。
将每个会议压缩成决策、负责人、截止日期、未解决的问题和原始时间戳。优化和重用
Reusable prompt prefix
在重复请求中共享的指令或参考材料的稳定前置块。
当提供者或运行时可以高效地重用相同的开头时,将稳定内容放在一起。
首先放置已批准的策略和模式;然后在后面添加与请求相关的证据和问题。优化和重用
Context caching
在平台支持的情况下,重用先前处理的输入令牌或存储的上下文,用于后续请求。
用于对相同的、大型的指令、文档、媒体或代码库进行重复提问。
缓存行为、最小大小、生命周期、定价和失效因提供商和模型而异。
缓存一次策略语料库,然后针对其发送更短的特定于案例的问题。优化和重用
Cache hit and cache miss
缓存命中会重用符合条件的先前上下文; 缓存未命中需要重新处理输入。
在估算具有重复前缀的工作负载的延迟和成本时,测量两个结果。
在部署后,跟踪缓存的输入令牌和缺失率,并按提示版本进行划分。使用最适合的方法,该方法在保留任务实际需要的证据和关系的同时。
| 场景 | 考虑的方案 |
|---|---|
| 几个简短、直接相关的的事实。 | 将它们直接放置在工作上下文中 |
| 一个包含少量相关内容的集合。 | 检索、排序和组装选定的证据 |
| 相同的大型源数据被重复查询。 | 使用上下文缓存评估长上下文 |
| 历史记录包含重复或过时的信息 | 提取并创建带有原始链接的结构化摘要。 |
否。提示工程侧重于指令和提示结构。上下文工程还控制为每个模型步骤选择和安排哪些证据、历史、状态、工具结果和可重用材料。
通常不是。 不必要的内容会增加成本和延迟,并可能使重要的证据难以使用。 比较直接上下文、检索、修剪、压缩和缓存在具有代表性的任务中的效果。
否。容量仅定义了可以容纳的内容。准确性仍然取决于相关性、排序、信任边界、模型行为以及使用真实案例的评估。
关于长上下文使用、限制、查询放置、延迟、成本和缓存的官方指南。
关于重用重复的上下文和观察缓存输入行为的官方指南。
审查令牌、上下文窗口、系统指令、推理和生成设置。
设计指令、示例、约束、模式以及多步骤提示结构。
在将其组装成上下文之前,检索和对齐相关的证据。
将上下文组装与工具结果、内存、规划和人工审核连接起来。