上下文管理
本地压缩 vs LLM 压缩
压缩上下文有两条路:本地处理(正则替换、截断)零成本但粗糙,LLM 摘要有成本但精准。该怎么选?答案是:都用,但有先后顺序。
两种方式对比
| 维度 | 本地压缩 | LLM 压缩 |
|---|---|---|
| 原理 | 正则匹配、字符截断、模板替换 | 让另一个 LLM 读一遍后写摘要 |
| 成本 | 零(纯本地计算) | 要花钱(调用一次 API) |
| 延迟 | <1ms | 1~5 秒 |
| 效果 | 粗糙,可能丢关键信息 | 精准,能保留核心语义 |
| 适合场景 | 工具输出、JSON 结果、重复内容 | 多轮对话摘要、复杂上下文浓缩 |
案例对比:同一段对话的两种压缩
本地压缩
原始对话(10 轮 · 4200 tokens):
用户:帮我查北京到上海的高铁
AI:好的,为您查询…(200字详细回复)
[工具] 12306查询结果:G1次07:00-11:28¥553、G3次08:00-12:35¥553、G7次09:00-13:28¥553…(共15条结果,800字)
AI:共找到15个车次,推荐G1次…(300字分析)
用户:G1次不错,帮我看看有没有商务座
[工具] 座位查询结果:{json数据500字}
AI:G1次商务座余票3张,¥1748…(200字)
用户:好,就商务座,再帮我查一下酒店
[工具] 酒店搜索结果…(600字)
AI:推荐浦东香格里拉…(400字)
用户:定这个酒店,帮我做个出行清单
用户:帮我查北京到上海的高铁
AI:好的,为您查询…(200字详细回复)
[工具] 12306查询结果:G1次07:00-11:28¥553、G3次08:00-12:35¥553、G7次09:00-13:28¥553…(共15条结果,800字)
AI:共找到15个车次,推荐G1次…(300字分析)
用户:G1次不错,帮我看看有没有商务座
[工具] 座位查询结果:{json数据500字}
AI:G1次商务座余票3张,¥1748…(200字)
用户:好,就商务座,再帮我查一下酒店
[工具] 酒店搜索结果…(600字)
AI:推荐浦东香格里拉…(400字)
用户:定这个酒店,帮我做个出行清单
压缩结果
点击上方按钮查看
LLM 压缩
原始对话(10 轮 · 4200 tokens):
(同左边完全一样的原始对话)
(同左边完全一样的原始对话)
压缩结果
点击上方按钮查看
正确顺序:先免费后花钱
上下文压缩的推荐流程
1
本地截断
删掉工具输出
截断超长JSON
截断超长JSON
→
2
模板替换
把重复结构
替换为占位符
替换为占位符
→
3
检查是否够
还超窗口?
进入下一步
进入下一步
→
4
LLM 摘要
花钱让 AI
精炼上下文
精炼上下文
先用免费的方法尽量压,实在压不下去了再花钱请 AI 帮忙,这个顺序不能反。本地压缩和 LLM 压缩是流水线上的先后环节,无需二选一。