先补齐必要概念
适合:需要设计长任务的信息流和预算策略。
- Token
- 模型编码和计量内容的单位,不等于固定数量的汉字或单词;实验直接给定计数,不实现分词。
- 上下文
- 本次请求中模型能使用的信息,包括指令、历史、工具定义和材料。
- 生成预算
- 允许生成内容的上限;某些接口还将推理用量计入其中,具体规则要查目标接口。
- 安全余量
- 应用主动留出的空间,用于计数误差或预计增量;不能替代真实计数。
原理怎样一步步成立?
- 组装请求
分别统计指令、历史、工具定义和证据。
- 检查约束
同时检查总容量与独立输出上限。
- 调用并检查状态
区分完成、预算耗尽、拒绝和传输中断。
- 准备下一轮
加入工具结果后重新计数,检查必要证据是否保留。
资深 · 解释取舍
在检索、分段与摘要之间取舍
本层目标:能够根据任务目标选择信息交付方式,并明确质量与成本验收。
先问任务需要哪些信息
合同核对需要逐项证据;代码修改需要相关文件及约束;对话总结需要保留决定与未解决问题。这些任务的信息结构不同。统一截掉最早消息虽然简单,却可能移除仍然有效的限制。把任务约束、证据与可重算材料分开管理,更容易判断什么可以压缩。
为每个选择写出代价
按需检索减少输入,但要承担漏召回风险;分段生成降低单次输出压力,但要保持段落间一致性;摘要降低历史体积,但引入有损转换;增大窗口增加可容纳材料,却不保证模型正确使用每一条证据。方案比较应同时看证据覆盖、结果质量、延迟和用量。
把下一轮作为设计单位
预算中预留预计工具结果和后续生成空间,允许范围不足时缩小一次读取规模。大产物可保留稳定引用供后续读取,关键约束保存在可回读结构中。预留量来自任务分布与接口计量验证,不是一个适用于所有应用的固定百分比。
运行实验,观察反例
给定 token 数的离线算术实验;不调用模型,不验证分词器、流式传输或厂商实际限制。
Python 3.10+ · 默认运行只使用标准库 · 在你的电脑运行
- 先手算,再运行脚本核对
- 改变工具结果增量并重新计算
- 故意超过独立输出上限,检查错误分支
python3 context_budget.py查看本入口脚本
"""Given token counts: no tokenizer, model request or provider-specific limit."""
import json
def remaining(context, output_limit, output, reserve, components):
values = [context, output_limit, output, reserve, *components.values()]
if any(type(v) is not int or v < 0 for v in values):
raise ValueError("counts must be non-negative integers")
if output > output_limit:
raise ValueError("output limit exceeded")
return context - sum(components.values()) - output - reserve
def demo():
components = dict(instructions=2000, history=10000, tools=3000, evidence=8000)
before = remaining(32000, 8000, 6000, 1000, components)
after = remaining(32000, 8000, 6000, 1000, {**components, "result": 4000})
assert before == 2000 and after == -2000
return dict(input_tokens=sum(components.values()), current_room=before,
next_turn_room=after, next_turn_fits=after >= 0)
if __name__ == "__main__":
print(json.dumps(demo(), sort_keys=True))
本地运行的预期输出
{"current_room": 2000, "input_tokens": 23000, "next_turn_fits": false, "next_turn_room": -2000}- 完整输入分项一致
- 下一轮容量重新计算
- 实验通过不等于回答质量通过
本层验收任务
为“读取一批合同并生成风险报告”设计容量策略,说明什么时候分段、检索或摘要。
完成后逐条核对
- 列出不得丢失的条款与任务约束
- 为下一轮工具结果设置明确容量检查
- 比较质量、用量与延迟并设计回归样例
保存自己的过程、代码与结果。这里提供验收要求,暂不自动评分或保存课程掌握状态。
收起答案,检查理解
把窗口扩大十倍,是否就可以删除证据覆盖检查?
展开参考推导
不可以。可容纳信息的容量和正确使用证据是不同能力,窗口扩大仍需验证必要证据及条件是否被采用。
延伸原理与知识练习
遇到不熟悉的原理,先阅读实现、连续追问和迁移案例,再独立说明前提与边界。作答与笔记保存到原有账号记录。
本专题的全部关联解析与练习(3 道)
依据与验证范围
原理依据来自公开资料;数字、案例和任务是本站教学设计。离线实验验证本页注明的范围,学习效果仍需通过独立任务与反馈判断。