Agent 工程

上下文壓縮:四層防綫

拖動滑塊模擬對話增長,觀察壓縮如何延長上下文壽命。

四層壓縮策略 安全區間
第一層 · 裁剪 Snip 120K(60%) -36K
刪掉早期工具返回的超長原始數據,只保留摘要。用戶完全無感。
壓縮前
天氣 API 返回 1200 Token 的 JSON:未來 7 天逐小時預報…
→
壓縮後
工具摘要:北京明日多雲 12-20°C(80 Token)
第二層 · 微壓縮 MicroCompact 150K(75%) -50K
把早期的長對話生成簡短摘要替換。輕微資訊損失,關鍵資訊保留。
壓縮前
第 3 輪:「嗰個檔案唔係 PDF 格式,我要 Word 版本,標題改成…」
→
壓縮後
摘要:用戶要求 Word 格式、改標題、調配色
第三層 · 摺疊 Collapse 170K(85%) -80K
將多輪早期對話摺疊成一條摘要消息。細節丟失,但主綫保留。
壓縮前
第 1-8 輪(12 條消息,4200 Token):討論需求、確認方案、修改三次…
→
壓縮後
會話摘要:React + TS 項目,當前修改報表頁(350 Token)
第四層 · 緊急壓縮 AutoCompact 190K(95%) -110K
全面壓縮:只保留 system + 全局摘要 + 最近 3 輪。明顯資訊損失,但避免崩潰。
壓縮前
20 輪完整對話(38 條消息,18000 Token)
→
壓縮後
system + 摘要 + 最近 3 輪(2500 Token)
📌 設計決策:拖動滑塊觀察:沒有壓縮的話,200K 的上下文只夠一次長對話。有了四層壓縮,同樣的窗口可以支撐 5 倍以上的對話量。
Takeaway
Takeaway 模型窗口 256K,安全空間 200K。四層壓縮像防洪堤:每次快滿時自動泄洪降水位,讓同一個窗口承載遠超 200K 的對話量。直到真的刪無可刪,才會超限。