预算分配示例(8K 窗口)
| 用途 | 预算 | 策略 |
|---|---|---|
| system + 工具定义 | 1.0K | 固定,缓存友好 |
| 检索资料 | 4.0K | 按相关性截断,宁缺毋滥 |
| 历史对话 | 1.0K | 最近轮次 + 摘要 |
| 输出预留 | 1.5K | max_tokens |
| 工具回包预留 | 0.5K | 或折叠为大摘要 |
预算校验(伪代码)
预算校验(伪代码)
budget = {"sys": 1000, "rag": 4000, "hist": 1000, "out": 1500, "tool": 500}
total = sum(budget.values()) # 8000 = 窗口上限
assert total <= model_ctx, "预算超窗"
# 超限时按优先级裁剪:先 RAG 截断 → 再历史压缩 → 最后动输出额度工具调用型任务必须预留回包空间,否则第二轮请求直接爆窗口。