上下文窗口不够用时:裁剪、摘要与分层投放
模型窗口再大,也会被检索片段与历史消息填满。预算管理是应用层责任。
一次调用通常包含:系统提示、工具说明、检索到的资料、对话历史、当前问题。任何一层膨胀,都会挤占别层。
预算切分
- 先给系统提示与输出预留固定配额。
- 检索片段设硬顶(条数 × 每条上限)。
- 历史消息用「最近 N 轮 + 早期摘要」。
三种常用手段
- 裁剪:按相关度丢弃尾部资料;保留标题路径。
- 摘要:对过长历史做滚动摘要,注意摘要本身也要限长。
- 分层投放:先短证据作答;模型要引用再拉原文(两阶段)。
计量
用与线上一致的 tokenizer 估 token,不要用字符数瞎猜。把每次请求的各段 token 打进日志,超预算时才知道该砍哪一段。
小结
上下文是稀缺资源。先定配额,再谈提示词文采;超窗之前,先做可观测的裁剪策略。