上下文窗口的 token 预算分配是 Agent 工程化的核心技术难题——模型上下文长度再大也是有限的,而 Agent 在长时间运行中产生的历史记录很快会超过窗口上限。当前主流 Agent 实现了三种压缩策略。滑动窗口(Sliding Window):保留最近的 N 轮对话,丢弃最旧的记录。这是最简单的方案,但会丢失早期的重要决策上下文。语义摘要(Semantic Summarization):Agent 定期将历史对话压缩为摘要,摘要保留在上下文中,原始记录卸载到外部存储。关键帧保留(Keyframe Retention):Agent 识别对话中的关键决策点(如工具调用结果、用户重要指令、状态变更),仅保留这些关键帧及其上下文。三种策略可以组合使用形成分层方案:第一层保留最新 20 轮完整对话,第二层保留过去所有关键帧,第三层保留全局摘要。
在《从零上手 Codex》课程中,token 预算管理是 Agent 成本优化章节的核心内容。学习者需要理解:token 不仅是费用,更是 Agent 有效工作的资源约束。课程提供了一个手动实验:让 Agent 执行一个需要 50 步的长任务,观察其在不同的 token 预算策略下的表现差异。实验结论是:单纯扩大上下文窗口(从 32K 到 128K 到 200K)不能解决长上下文中的「迷失在中间」问题——Agent 在长上下文中会丢失中间信息。有效的策略不是扩大窗口,而是优化窗口内的内容结构。