从零开始理解上下文压缩
本文译自 Earendil Engineering 的《How Compaction Works in Pi》,讲解编程 Agent(如 Pi、Claude Code、Codex)中的上下文压缩机制。LLM 的上下文窗口有限,随着对话和工具调用不断积累,请求会超出上限。解决方案之一是压缩:用 LLM 生成的摘要替换较早的历史记录,同时原样保留近期消息。文章详细介绍了 Pi 的实现——触发时机(接近上限自动触发或 /compact 手动触发)、token 预算、压缩提示的设计(像一份交接简报,包含目标、进度和关键决定),以及压缩与提示缓存的关系:压缩会打破前缀缓存,导致后续请求需重新计算。