面试官问你:“Agent 怎么避免上下文爆炸?”如果你回答“把旧的对话删掉就行了”,那完蛋,这道送分题你又没能把握住。
为什么?
因为删多了 Agent 会忘掉关键信息,删少了窗口依然不够用。核心不是删不删,而是怎么在不丢关键信息的前提下控制上下文长度。

哈喽大家好,我是二哥呀。今天用三分钟,带你搞懂 Agent 上下文爆炸的本质和通用解法。
面试官问这道题,考三层:第一,Agent 的上下文窗口是有限的;第二,有哪些通用的解决方案;第三,这些方案之间有哪些优缺点。
好,接下来给你满分回答,照着背就完事了。
先说上下文窗口。每个模型的上下文窗口都是固定的,Opus Fable 5 是 1M,GPT-5.5 是 256K。那为什么上下文窗口不能无限大?因为 LLM 的注意力是 U 型分布,擅长记得住开头和结尾,容易忘记中间的内容。上下文越长,Agent 就越容易丢失中间位置的关键信息。
那有限的上下文窗口里,都装了哪些东西呢?系统提示词、工具定义列表、Skill 定义列表、对话历史,还有每一次工具返回的结果等等。
前面我们讲过。Agent 是一次次 ReAct 循环,每一轮思考、行动、观察都会往上下文窗口里追加内容。拿 Claude Code 来举例,你让它排查一个线上 bug,它需要深度思考、然后读日志、读源码、跑测试,上下文窗口迟早会撑爆。
那这个时候怎么办呢?四招。
第一招,工具输出截断。不是所有的返回内容都要全量保留,该删的删掉,只保留摘要和指向原始数据的指针。
第二招,摘要压缩。旧的对话做语义摘要,保留关键信息,扔掉细节。Claude Code 就是这么干的。
第三招,Sub-agent 隔离。复杂任务委派给子 Agent,每个子 Agent 用全新的上下文窗口干活,干完只把结论返回给主 Agent。
第四招,按需加载。工具、Skill、Rule,这些不要在启动时一次性全都加载进上下文,只加载对应的描述就行了,用到哪个再加载哪个。
面试官如果继续追问:“压缩太狠会不会丢关键信息?”
告诉他——会。最佳实践是上下文占到 60% 到 75% 时就手动压缩,Agent 的自动压缩很容易丢掉关键信息,用过 Codex 绘图的小伙伴应该深有感触,一旦触发了自动压缩,哪怕有Skill限制,下一次的生图就很有可能和之前的风格不一样。
最后送大家一句口诀——工具输出要截断,摘要压缩保关键;必要时子 Agent 做隔离,按需加载省空间。
这道题你学废了吗?想解锁更多 Agent 面试题的源码级拆解,点赞关注,我是二哥,下期见!
回复