上下文压缩与摘要
上下文窗口有限,AI 应用需要控制历史对话、检索资料和工具结果的长度。上下文压缩与摘要用于保留关键信息,同时降低 Token 成本和噪声。
# 1. 上下文来源
系统 Prompt
用户问题
历史对话
RAG 文档
工具结果
业务状态
这些内容都会占用 Token。
# 2. 压缩策略
| 策略 | 说明 |
|---|---|
| 截断 | 保留最近内容,丢弃早期内容 |
| 摘要 | 把长历史压缩成短摘要 |
| 相关性召回 | 只取和当前问题相关历史 |
| 结构化提取 | 只保留关键字段 |
| 去重 | 删除重复资料 |
| 分层摘要 | 长文先分段摘要再汇总 |
# 3. 对话摘要
对话摘要应保留:
- 用户目标。
- 已确认事实。
- 重要偏好。
- 未完成事项。
- 关键约束。
不要把所有寒暄和无关内容写入摘要。
# 4. 工具结果压缩
工具返回可能很长,例如 SQL 查询结果、日志、搜索结果。
建议:
- 先由程序过滤字段。
- 限制返回行数。
- 聚合统计后再给模型。
- 保留原始结果引用 ID。
- 对异常值和关键字段做结构化提取。
# 5. RAG 上下文压缩
RAG 不应简单把所有检索结果塞入模型。
候选 Chunk
-> 去重
-> 重排
-> 只保留相关段落
-> 带来源拼接
必要时可以先让模型对候选资料做证据提取,再生成最终答案。
# 6. 风险
| 风险 | 说明 |
|---|---|
| 摘要丢信息 | 后续回答缺少关键事实 |
| 摘要引入错误 | 模型总结时产生幻觉 |
| 过度截断 | 丢失任务约束 |
| 压缩不可追溯 | 无法回到原始资料核对 |
# 7. 工程建议
- 摘要要保留来源和时间。
- 高风险事实不要只保留摘要,要保留原文引用。
- 历史摘要和当前问题相关资料分开管理。
- 为不同任务设置 Token 预算。
- 对摘要质量做评估。
# 8. Tips 快问快答
Q:历史对话可以全部摘要吗?
A:可以摘要,但关键事实和用户明确约束最好保留原文或结构化记录。
Q:摘要会不会产生幻觉?
A:会。因此摘要也需要约束和校验,高风险内容要可追溯到原文。
Q:上下文压缩和 RAG 有什么关系?
A:RAG 负责找资料,压缩负责把资料以更短、更聚焦的方式放进模型窗口。
上次更新: 2026/06/25, 17:53:09