Agent 怎么避免上下文爆炸?四种常用方案 沉默王二 原创 AI 面试 AI Agent 面试题 上下文爆炸 上下文压缩 Sub-agent 约 796 字 大约 3 分钟 AI的药,绝不能停 #020 面试官问你:“Agent 怎么避免上下文爆炸?”如果你回答“把旧的对话删掉就行了”,那完蛋,这道送分题你又没能把握住。 AI Agent 面试题 上下文爆炸 上下文压缩 Sub-agent WATCH / 抖音视频 在抖音打开 王二讲Agent 每天3分钟,带你吃透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 面试题的源码级拆解,点赞关注,我是二哥,下期见!
在 GitHub 上编辑此页 上次编辑于: 贡献者: 沉默王二 上一页 上下文为何有限 下一页 Agent 为什么变笨