真实面经题目 · 原创解析

Agent 上下文压缩应该在什么时候触发,如何在 token 预算、信息损失和任务连续性之间取舍?

这题考上下文压缩的运行时策略:触发点不能只看 token 快满,而要结合任务阶段、信息密度、工具结果、记忆状态、失败风险和可恢复性来决定。

60 秒回答模板

Agent 上下文压缩不应该等到模型窗口溢出才被动触发,而应该是运行时的预算管理策略。我会把触发条件分成几类:第一类是硬阈值,比如当前上下文达到窗口的 70% 到 85%、预计下一轮工具结果会超预算、或者检索内容和历史消息无法同时放入;第二类是阶段切换,比如需求澄清结束、完成一次工具调用链、生成中间方案、进入执行或总结阶段,此时可以把旧对话压缩成任务状态和决策摘要;第三类是信息密度变化,比如历史里有大量重复确认、日志、长工具输出和低价值闲聊,可以摘要或裁剪;第四类是风险触发,比如模型开始遗漏约束、重复问已确认信息、引用旧状态冲突,说明上下文需要整理而不是继续堆叠。压缩时要保留任务目标、用户约束、关键决策、当前计划、未完成事项、工具结果摘要、引用来源和不可丢失的原文片段;可以丢弃或弱化寒暄、重复推理、过期计划和已确认无效分支。取舍上,压缩能节省 token、降低噪声、改善长会话稳定性,但会损失细节和可追溯性,所以要保留原始消息或 trace 供回查,并给摘要加版本、时间、来源和置信度。一个好的工程方案还会有评估指标:压缩后任务完成率、约束遗漏率、追问重复率、幻觉率、成本延迟、摘要可恢复性和人工抽检质量。

考点 触发类别
难度 真实面经题
回答目标 让候选人能把上下文压缩触发讲成一套运行时预算与状态管理策略,覆盖阈值、阶段、信息保留、可追溯和评估闭环,而不是只说窗口快满时做摘要。

深入解析

01

不要把触发点等同于窗口溢出

最浅的回答是“token 不够就压缩”,但线上 Agent 往往在溢出前就已经被噪声、过期状态和长工具结果拖累。更好的触发点应该同时考虑当前 token 占用、下一步预计输入、任务阶段、上下文质量和失败迹象。压缩是为了让模型看到更正确的状态,而不仅是塞进更短的文本。

02

硬预算阈值适合做底线保护

可以设置上下文窗口的软阈值和硬阈值,例如接近窗口上限前提前压缩,或者在预估下一轮工具结果、检索结果、用户上传内容会超过预算时先压缩。硬预算触发简单可靠,但如果只依赖阈值,会在关键细节还没整理好时仓促摘要,也可能在长任务早期积累太多噪声。

03

任务阶段切换是更自然的压缩时机

Agent 完成需求澄清、工具调用、子任务执行、错误恢复或阶段性计划后,通常会形成一批稳定信息。这时把历史压缩成目标、约束、决策、当前状态、待办和证据引用,能减少后续推理负担。阶段触发比单纯 token 触发更符合任务连续性,因为它在语义边界处压缩,信息损失更可控。

04

按信息类型决定保留和丢弃

压缩不是平均缩短所有内容。必须强保留用户目标、硬约束、权限边界、关键事实、执行结果、失败原因、未完成事项和重要原文引用;可以弱化或丢弃重复确认、过期计划、冗长日志、低价值寒暄、模型中间草稿和已被否定的分支。工具结果如果很长,应保留结论、关键字段、异常和可回查引用。

05

压缩产物要带元信息

摘要本身需要版本、生成时间、覆盖消息范围、来源 trace、置信度和不可覆盖字段。否则后续模型很难判断摘要是否过期,也无法在冲突时回查原始上下文。对于高风险事实,可以保留原文片段或引用,而不是只留一句自然语言总结。

06

用质量指标验证触发策略

压缩策略不能只用平均 token 降幅证明有效。应该观察任务完成率、约束遗漏率、重复追问率、工具误调用率、长会话恢复率、摘要冲突率、成本延迟和人工抽检结果。若压缩后模型更常忘记用户限制或错误引用旧状态,就说明触发时机或摘要结构需要调整。

易错点

  • 只回答“超过上下文长度就压缩”,没有提前预算、阶段边界和下一步输入预估。
  • 把压缩当成简单摘要,漏掉任务状态、未完成事项、决策依据和工具结果引用。
  • 压缩后不保留原始 trace 或来源范围,导致冲突时无法回查。
  • 平均压缩所有历史内容,把硬约束和关键事实压没了,却保留了低价值寒暄或模型草稿。
  • 没有区分过期计划和当前计划,导致 Agent 在后续步骤继续执行旧状态。
  • 只用 token 节省率评估压缩效果,没有检查约束遗漏、重复追问和任务完成率。

面试官追问

上下文压缩和直接截断历史有什么区别?

截断通常按位置删除内容,容易丢掉早期关键约束;压缩会按语义提取目标、状态、决策和证据,并保留可回查引用。压缩更复杂,但对长任务连续性更友好。

压缩摘要应该放在 System Prompt 还是普通消息里?

稳定的任务状态和硬约束可以放在靠前的上下文区或专门状态块里,普通历史摘要可以作为历史记忆消息。关键是区分规则、事实、计划和证据,不要把所有内容混成一段自然语言。

工具返回很长日志时要立即压缩吗?

通常要先抽取结论、错误码、关键字段、时间范围和可回查位置,再决定是否保留原文片段。长日志不应完整塞进上下文,但也不能只留下没有证据的笼统结论。

如何处理压缩摘要和新信息冲突?

摘要要有版本和来源范围。新信息优先进入当前状态,冲突字段标记为待确认或按时间、可信来源和用户确认策略解决,必要时回查原始 trace。

压缩失败会带来什么线上问题?

常见问题是忘记用户硬约束、重复询问已确认事项、执行过期计划、引用不存在的工具结果、把低置信摘要当事实,最终表现为误调用、幻觉和任务中断。