鹅厂同事在打饭的时候问我:“Claude Code上下文管理是这么做的?”,打饭阿姨:“满了就压缩,留下重要的,去除噪音,我天天听他们说”

鹅厂同事在打饭的时候问我:“Claude Code上下文管理是这么做的?”,打饭阿姨:“满了就压缩,留下重要的,去除噪音,我天天听他们说” 面试官特别爱追问Claude Code 上下文窗口快满了怎么办Auto-Compact 到底在压什么为什么压完之后还能继续干活很多同学一听上下文窗口就回答“就是模型能记住多少内容。”上下文窗口不是记忆。上下文压缩也不是简单总结一下。如果你做过 Agent就会知道上下文管理是 Agent 能不能长时间稳定工作的核心能力。今天这篇我们从最基础的上下文窗口讲起一步一步讲到 Claude Code 的 Auto-Compact最后给你一套面试可以直接说的回答框架。目录面试官到底想考什么上下文窗口不是记忆只是本轮输入空间为什么 Agent 跑起来分分钟爆窗口上下文满了真正的问题不是放不下而是质量下降业界常见上下文方案为什么单独用都不够看Claude Code 的上下文治理不是只靠 Auto-CompactAuto-Compact 什么时候触发Auto-Compact 压什么、留什么、丢什么摘要 prompt 不是总结一下而是生成任务状态快照压完之后Claude Code 怎么接续对话这道面试题该怎么答面试官可能继续追问什么普通开发者怎么用得更稳一、面试官到底想考什么面试官问 Claude Code 上下文窗口一般不是想听你背一个概念。他真正想看三件事第一你是否理解大模型是怎么看见当前任务的。第二你是否理解 Agent 和普通聊天在上下文消耗上的差异。第三你是否知道工程上怎么在不丢关键状态和释放 token 空间之间做取舍。所以这道题不能上来就说“Claude Code 会自动 compact。”这样答面试官继续追一句“compact 之后为什么不会断片”你就很难接了。更好的回答顺序是先解释上下文窗口是什么再解释 Agent 为什么比普通聊天更容易爆窗口再说常见方案为什么单独用都不够最后讲 Claude Code 是分层治理Auto-Compact 只是最后一层这条线讲清楚面试官就知道你不是只会用工具而是真的理解 Agent 工程。二、上下文窗口不是记忆只是本轮输入空间先把最基础的概念讲清楚。上下文窗口就是模型一次推理时能看到的全部 token 空间。注意是一次推理时能看到不是模型永久记住。每次你给模型发消息系统都会把一大坨内容拼成输入系统提示词开发者规则用户当前问题历史对话工具定义工具调用结果文件内容命令输出CLAUDE.md、memory、skills 等额外上下文然后模型基于这批输入生成下一步响应。图1上下文窗口不是记忆而是一次推理能看到的输入空间这里有个关键点模型不是从脑子里掏出历史而是每一轮都重新读一遍上下文。你以为 Claude Code 记得刚才读过的文件其实是因为文件内容或者文件摘要还在上下文里。你以为它记得你刚才说不要改某个文件其实是因为这句话还在上下文里。一旦这部分被压缩、裁剪、丢弃模型就可能忘。所以真正的上下文管理不是让模型记住更多而是决定哪些信息值得继续塞进下一轮输入。三、为什么 Agent 跑起来分分钟爆窗口普通聊天为什么不容易爆因为普通聊天主要就是用户问题和模型回答。你问一句模型答一句。内容再多也通常是线性增长。但 Agent 不一样。Agent 每一轮都可能调用工具而工具结果也会进入上下文。Claude Code 这种编程 Agent一次任务里可能会做这些事读package.json搜索路由入口读取组件文件执行测试命令拿到几百行报错日志修改文件再跑测试再读相关依赖再对比 diff再生成下一步计划这不是聊天这是带执行轨迹的工作流。图2Agent循环中工具结果、文件内容和错误日志会持续撑大上下文一个最典型的场景是修 bug。你只说了一句话“帮我修一下登录失败的问题。”但 Claude Code 可能要跑很多步搜login读登录页读 API 封装读鉴权中间件跑测试看到报错再读环境变量配置改代码再跑测试再看新报错每一步都会产生上下文。尤其是三类内容特别吃 token第一类大文件内容。读一个几百行文件很容易就是几千 token。第二类命令输出。测试日志、构建日志、堆栈报错一长就是几百行。第三类中间推理轨迹。模型每一步的解释、计划、工具调用参数、工具返回结果都会累计。所以面试时要说清楚Agent 爆上下文不是因为用户说得多而是因为工具调用轨迹太重。这句话很关键。四、上下文满了真正的问题不是放不下而是质量下降很多人以为上下文窗口满了只是报错。不完全是。更麻烦的是在还没彻底满之前模型质量已经开始下降。为什么因为上下文越长模型越容易遇到三类问题。第一注意力被稀释。重要约束和大量日志混在一起模型未必能稳定抓住重点。第二早期指令被压到很远。你一开始说不要动数据库结构后面塞了几十轮工具结果这句话就离当前推理越来越远。第三中间状态变脏。Agent 做过的错误尝试、失败路径、旧假设如果一直留在上下文里会干扰后续判断。图3上下文变长后问题从容量不足变成注意力稀释和状态污染所以上下文管理不是等满了再救火。真正好的 Agent 系统会从一开始就控制上下文质量。少拿没用的信息少保留噪音少让失败路径污染后续决策。Claude Code 的设计思路也是这样Auto-Compact 很重要但它不是第一道防线。五、业界常见上下文方案为什么单独用都不够看讲 Claude Code 之前我们先看业界常见方案。因为面试官很可能追问“为什么不直接用 RAG为什么不直接摘要为什么不直接开大窗口”你要能说出每个方案的边界。图4常见上下文管理方案各有适用场景但单独使用都解决不了Agent执行轨迹问题1. 滑动窗口简单但容易丢任务背景滑动窗口就是先进先出。上下文满了就把最早的内容丢掉。这个方案最简单但对 Agent 很危险。因为最早的内容里可能有用户最初目标关键限制条件为什么选择某个方案哪些文件不能改哪些路径已经验证过不通这些东西一旦丢掉Agent 就可能开始乱改。所以滑动窗口适合普通聊天不适合复杂任务执行。2. 摘要压缩能省 token但容易丢细节摘要比直接丢好。它会把旧对话压成一段短文本。但问题是普通摘要天然偏叙事不一定保留可执行状态。比如它总结“我们分析了登录模块并尝试修复 token 失效问题。”这句话看起来没错但对继续干活帮助不大。真正有用的信息应该是已确认auth.ts里 token 续期逻辑有问题已修改refreshToken()的异常处理login.spec.ts还剩一个超时用例没过用户要求不要改接口协议所以 Agent 需要的不是作文式摘要而是任务状态快照。3. RAG 检索适合找资料不适合保存执行轨迹RAG 很适合解决知识在哪里的问题。比如你问一个函数在哪里定义或者某个概念在哪篇文档里它很好用。但 Agent 的上下文问题不只是知识检索。它还要保存当前任务目标已做过哪些尝试哪些结论已经验证哪些错误路径不要再走当前文件改到了什么状态这些是执行轨迹不是静态知识。你把它们丢进向量库再检索未必能稳定召回关键状态。所以 RAG 可以帮 Agent 找代码、找文档但不能替代任务状态管理。4. 长期记忆适合规则不适合临时状态长期记忆适合放稳定信息项目技术栈编码规范用户偏好常用命令目录结构说明但它不适合放临时任务状态。比如刚刚第 7 步测试失败原因是 mock 数据缺字段这种信息放长期记忆就很怪。长期记忆解决的是跨会话规则不是当前会话执行轨迹。5. 子 Agent 隔离能分流噪音但主线还要接得住子 Agent 很重要。比如让一个子 Agent 去搜索整个代码库主 Agent 只拿结论。这样大量文件读取就不会污染主上下文。但子 Agent 也不是万能的。因为最终主 Agent 还是要知道子 Agent 发现了什么哪些证据可靠下一步该怎么做所以子 Agent 的价值是隔离探索噪音不是取消上下文管理。六、Claude Code 的上下文治理不是只靠 Auto-Compact现在进入重点。Claude Code 的上下文治理可以理解成五层防线。这不是官方术语而是从工程视角抽象出来的结构。它不是等窗口满了再压缩而是从拿上下文的那一刻起就开始控制。图5Claude Code上下文治理的五层防线从精准取数到Auto-Compact第一层精准取上下文少读无关内容Claude Code 不鼓励一上来把整个项目塞给模型。它更常见的路径是先用 Glob 找文件范围再用 Grep 定位关键词最后用 Read 读取关键文件片段。这背后有个原则上下文不是越多越好而是越准越好。你让 Agent 一次性读十几个文件看起来信息全了但模型注意力会被稀释。相反先搜索再定位再读取虽然多几步工具调用但上下文质量更高。第二层工具结果裁剪别让日志淹没任务Agent 最容易被工具输出拖垮。所以 Claude Code 会优先处理旧工具输出。官方文档里也提到接近上下文上限时会先清理较早的工具输出如果还不够再做对话摘要。这非常合理。因为很多工具输出只在当时有用。比如一次失败的测试日志后面你已经根据它修完了日志本身就没必要完整保留。真正需要保留的是结论哪个测试失败、为什么失败、修到了哪里、还剩什么问题。第三层子 Agent 隔离探索把噪音挡在主线外Claude Code 可以让子 Agent 处理研究类任务。子 Agent 有自己的上下文窗口。它可以去读大量文件、跑搜索、做对比最后只把摘要和少量元信息返回主 Agent。这层设计的价值非常大。因为主 Agent 最怕被探索过程污染。探索过程里有很多不确定信息这个文件可能相关那个路径可能有问题搜出来十几个候选点其中九个最后被证明没用这些都塞给主 Agent会让主上下文又长又脏。子 Agent 相当于一个信息过滤器把大范围探索变成小体积结论。图6子Agent用独立上下文完成探索只把结论交回主Agent第四层把稳定规则放到 CLAUDE.md 和 memory有些内容不应该依赖聊天历史。比如项目必须用 pnpm不允许直接改数据库 schema代码风格遵循现有模式测试命令是什么业务里的关键术语是什么意思这些都是稳定规则。如果你只在对话一开始说一次压缩之后很可能丢。更好的做法是放到CLAUDE.md或 memory。Claude Code 在压缩之后会重新注入一部分启动内容比如项目根的CLAUDE.md、auto memory 等。这就保证了稳定规则不会完全依赖早期聊天记录。第五层Auto-Compact 做会话级压缩前四层都是减负。但复杂任务跑久了上下文还是会接近上限。这时候才轮到 Auto-Compact。Auto-Compact 的核心不是把旧消息压短这么简单。它真正做的是把冗长执行轨迹压成后续 Agent 能继续工作的状态快照。七、Auto-Compact 什么时候触发Auto-Compact 的触发逻辑可以用一句话理解不是等窗口彻底满了才压而是在接近上限、还留有摘要空间时提前压。为什么要提前因为压缩本身也需要 token。如果等上下文真的 100% 塞满再让模型生成摘要就可能已经没有足够空间完成压缩。所以成熟系统都会预留一段空间给压缩流程。Claude Code 里你也可以通过/context看当前上下文使用情况通过/compact手动压缩通过/clear清空当前对话历史。这三个命令的语义不一样命令作用适合场景/context查看上下文占用想知道 token 花在哪/compact摘要当前会话并继续当前任务没做完还要接着干/clear清空聊天历史已切换任务不需要旧上下文图7Auto-Compact会在接近上限时提前压缩避免真正满窗后无法生成摘要面试时这里可以加一句Auto-Compact 不是异常恢复机制而是上下文预算管理机制。这句话比满了就总结高级很多。八、Auto-Compact 压什么、留什么、丢什么这是面试最容易被追问的地方。如果你只说压缩历史对话还是太粗。要按信息价值分层讲。图8Auto-Compact不是平均压缩而是保留任务状态、丢弃执行噪音1. 优先压工具输出工具输出通常体积最大。比如完整测试日志大段构建输出文件读取结果搜索命中列表重复报错堆栈这些内容不是完全没用而是原文不一定需要保留。更值得保留的是从工具输出里提炼出的状态。例如不要保留 300 行测试日志。要保留“auth.spec.ts中 refresh token 用例失败原因是 mock 响应缺少expiresAt字段。”这就是压缩的价值。2. 保留用户目标用户最初要做什么一定要保留。比如修登录失败不要改接口协议保持兼容旧版本只改前端不动后端这些是任务边界。丢了Agent 就容易漂移。3. 保留关键决策Agent 在执行过程中会做很多判断。有些判断是关键决策必须保留为什么选择方案 A不选方案 B哪个文件是问题根因哪条错误路径已经排除哪个约束不能破坏这些信息决定后续方向。如果压缩摘要里没有这些Agent 可能重复走老路。4. 保留文件状态编程 Agent 必须知道文件改到了哪里。至少要保留已修改文件列表每个文件改了什么尚未验证的改动还没完成的 TODO已运行和未运行的测试否则压缩后继续对话Agent 就会像重新接手一个陌生现场。5. 丢弃重复和无效过程什么可以丢主要是这些重复搜索结果已经被结论覆盖的长日志无关文件内容被排除的候选路径细节中间寒暄和无执行价值的解释注意不是所有失败路径都能丢。如果某个失败路径对后续有警示作用要保留结论“不要再从 X 模块入手已验证无关。”丢的是原始过程不是关键结论。九、摘要 prompt 不是总结一下而是生成任务状态快照很多人低估了摘要 prompt 的重要性。普通摘要 prompt 会写“请总结以上对话。”这对 Agent 不够。因为 Agent 不是要读一篇摘要文章而是要接着干活。所以摘要 prompt 更应该要求模型输出结构化状态。比如请把当前会话压缩成后续 Agent 可以继续执行的状态快照。必须保留1. 用户的原始目标和限制条件2. 当前任务进度3. 已读取/已修改的关键文件4. 已确认的事实和关键决策5. 已排除的错误路径6. 未完成事项和下一步建议7. 仍需注意的风险可以丢弃1. 重复日志2. 无关搜索过程3. 已被结论覆盖的中间输出4. 寒暄和非任务信息这类 prompt 的目标不是短而是可接续。图9压缩摘要应该按任务状态组织而不是按聊天流水账组织面试时你可以这样说Auto-Compact 的摘要不是给人看的会议纪要而是给下一轮 Agent 使用的状态转移记录。这句话很重要。它能体现你理解 Agent 的执行连续性。十、压完之后Claude Code 怎么接续对话压缩之后发生了什么简单理解旧的长历史被替换成一段结构化摘要。然后新一轮对话继续运行。但这里还有几个细节。第一系统提示词不属于普通对话历史它不会因为 compact 消失。第二项目根的CLAUDE.md、auto memory 这类启动内容会重新注入。第三路径规则、嵌套目录里的 CLAUDE.md、某些按文件触发的规则可能要等再次读取对应文件后才重新加载。第四已经调用过的 skill 可能会被重新注入但会受 token 预算限制。这说明什么说明压缩后的接续不是靠模型记忆力好。而是靠系统把上下文重新组织成几类内容稳定规则系统提示词、根 CLAUDE.md、memory当前任务状态compact 生成的摘要后续按需加载文件内容、路径规则、子目录规则、工具结果图10压缩后会用稳定规则、任务摘要和按需加载内容重建可执行上下文所以 Claude Code 压完还能继续不是因为所有细节都保住了。而是因为它保住了继续执行所必需的最小状态。这也是上下文压缩的核心取舍不是尽量不丢信息而是优先不丢会影响下一步行动的信息。十一、这道面试题该怎么答现在把前面内容压成面试回答。面试官问“你了解 Claude Code 的上下文窗口和 Auto-Compact 吗它是怎么做上下文管理的”你可以这样回答上下文窗口本质上是模型一次推理能看到的 token 空间不是长期记忆。Claude Code 作为编程 Agent比普通聊天更容易消耗上下文因为它不仅有用户消息和模型回复还会持续累积工具定义、文件读取内容、命令输出、测试日志、diff、错误重试和中间决策。真正把窗口撑爆的往往不是用户说了多少而是工具调用轨迹太重。常见方案比如滑动窗口、摘要、RAG、长期记忆和子 Agent 都有价值但单独用都不够。滑动窗口容易丢任务背景普通摘要容易丢约束RAG 更适合找知识不适合保存执行轨迹长期记忆适合稳定规则不适合当前任务状态子 Agent 能隔离探索噪音但主 Agent 仍然需要拿到可执行结论。所以 Claude Code 更像是分层做上下文治理。前面先通过 Glob、Grep、Read 精准取上下文减少无关文件再对工具结果做裁剪避免日志淹没任务复杂探索交给子 Agent用独立窗口跑主 Agent 只接收摘要稳定规则放到 CLAUDE.md 和 memory最后当上下文接近上限时由 Auto-Compact 把旧对话和工具轨迹压成结构化任务状态。Auto-Compact 不是简单总结聊天记录而是保留用户目标、约束、关键决策、已修改文件、当前进度、未完成事项和风险把重复日志、无关搜索、已被结论覆盖的中间过程丢掉。压缩后系统提示词、根 CLAUDE.md、memory 等稳定规则会重新进入上下文compact 摘要作为当前任务状态后续文件和规则再按需加载所以 Agent 能继续执行。核心思想是保留状态丢弃噪音。这个回答已经够用了。如果想再加分可以补一句Claude Code 的上下文管理不是为了让模型看见更多而是为了让模型在每一步都看见更有价值的信息。十二、面试官可能继续追问什么追问 1为什么不直接把上下文窗口做大窗口变大能缓解问题但不能解决问题。因为上下文越大成本越高延迟越高注意力稀释也更明显。Agent 真正需要的是高质量上下文不是无限长上下文。大窗口适合兜底不能替代上下文治理。追问 2RAG 能不能替代 Auto-Compact不能。RAG 解决的是外部知识召回Auto-Compact 解决的是会话执行状态压缩。RAG 适合问相关代码在哪里Auto-Compact 适合保留当前任务做到哪一步。一个偏检索一个偏状态延续。追问 3压缩会不会导致幻觉会有风险。如果摘要把不确定信息写成确定结论后续 Agent 就会沿着错误状态继续执行。所以压缩摘要里要区分已确认事实推测判断未验证事项已排除路径好的 compact 摘要必须保留不确定性不能把所有中间过程都写成结论。追问 4项目规则应该放对话里还是 CLAUDE.md 里稳定规则放CLAUDE.md。临时任务要求放当前对话。如果某条规则跨任务都重要比如不要改数据库 schema就不应该只靠一次聊天告诉模型应该写进项目级记忆。因为早期对话可能被压缩但项目根CLAUDE.md这类稳定规则会在压缩后重新注入。追问 5如果你自己设计 Agent 的上下文压缩会怎么做我会分三步。第一步先做上下文预算统计知道 token 花在哪系统提示词、工具定义、文件内容、命令输出、历史对话分别占多少。第二步按信息价值压缩工具原文优先裁剪任务目标和约束必须保留文件状态和未完成事项必须保留。第三步用结构化摘要接续任务而不是自然语言闲聊摘要。摘要里明确写目标、进度、已改文件、关键决策、未完成事项和风险。最后再配合子 Agent 隔离大范围探索避免主上下文被噪音污染。图11Claude Code上下文窗口面试回答框架十三、普通开发者怎么用得更稳理解原理之后使用建议也就很清楚了。第一一次会话只做一个主任务。不要在同一个会话里又修 bug、又重构、又加功能、又讨论方案。任务越杂compact 摘要越难保留正确状态。第二稳定规则写进 CLAUDE.md。比如技术栈、测试命令、禁止改动范围、代码风格不要只在聊天里说。第三长日志不要无脑贴。能让工具跑就让工具跑能截关键报错就截关键报错。第四压缩前主动说清楚保留重点。如果当前任务复杂可以手动/compact focus on ...明确让它保留某个模块、某个 bug、某个改动方向。第五换任务就/clear。不要让旧任务的上下文污染新任务。很多 Agent 漂移不是模型能力不行而是上下文太脏。结尾Claude Code 的上下文窗口问题本质不是200K 够不够。真正的问题是Agent 执行过程中哪些信息应该继续影响下一步决策哪些信息应该及时退出上下文。会用 Claude Code只是工具熟练。能讲清楚上下文窗口、Auto-Compact、子 Agent 隔离、CLAUDE.md 重注入和任务状态快照才说明你真的理解 Agent 工程。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】