美团面试官问:Claude Code 的记忆和上下文窗口,怎么区分怎么用?
你跟 agent 说过一次用两空格缩进,换个会话它又用回四空格——很多工程师线上栽在这种失忆上,以为塞进上下文就叫记住了。上一课压缩会丢东西,那跨会话长期记得的事放哪?这课把记忆从上下文窗口里拎出来,单独当一个架构模块拆。
先把术语翻成人话
上下文窗口 :本会话临时的工作台,关了或压缩了就没了
记忆 memory :跨会话持久的存储,每次只挑相关的一小块用
CLAUDE.md :项目里那份会话开头自动加载的偏好文件
scope 作用域 :这条记忆归谁——只给你私有,还是团队共享
一、面试现场
面试官提问
“Claude Code 的记忆和上下文窗口,怎么区分怎么用?”
美团 Agent 应用面。面试官:你 agent 怎么记住用户上次说的偏好?候选人:都塞进上下文里啊。
面试官:那关掉会话、或者上下文一压缩,它不就忘了?——这题看似问实现,实考你能不能区分「上下文窗口」和「记忆」:前者是本会话临时的,压缩或关闭就没了;后者是跨会话持久的,每次按相关性挑一小块加载。把记忆等同于全塞进窗口,agent 既会失忆,又会被旧信息污染。
**直接回答:**记忆是窗口外的独立模块,每次只挑相关的一小块加载。

二、大多数人怎么答的
典型翻车回答
“记忆就是把历史对话存数据库,下次全捞出来塞进去。”
两个错。一是把对话日志当记忆——该长期记的是提炼后的事实和偏好(这个用户用 pytest、那个项目禁止改 prod),不是一整段流水账。流水账既占地方又难召回。
二是全量回灌会吃爆窗口又污染当前判断——把三个月前一个早就改了的决定又翻出来,模型可能照着过时信息办事。我认为,记忆的精髓是提炼 + 分层 + 按需召回,不是全存 + 全取。
三、记忆作为独立模块的 3 个要点
把记忆从上下文窗口里拎出来,单独当一个模块看。它和窗口的关系、怎么分层、怎么召回,是这课的核心。

① 记忆不等于上下文窗口:一个持久、一个临时
窗口是本会话的临时工作台,压缩或关闭就清空;记忆是持久存储,跨会话存在,每次按相关性挑一小块加载进窗口。它俩是分层的:记忆在窗口外面,用时才进来。这就是 2026 的共识——memory 是独立架构组件,不是更大的窗口。
**违反后果:**把记忆和窗口混成一个,要么关了会话全忘,要么为了不忘把什么都留在窗口里,迅速吃爆预算。
② 该记的是提炼后的事实,不是流水账
记忆里存的应是「用户偏好 X」「这个项目约束 Y」这类提炼后的事实,原始对话留个指针即可。流水账式存全文,召回时既不准又占地方。CLAUDE.md 就是这个思路的项目级落地:把这个项目每次都该知道的事实写成一份文件,会话开头自动加载。
**违反后果:**把整段对话当记忆存,召回时捞回一堆无关上下文,又稀释注意力又难命中真正有用的那条。
③ 分层 + 按需召回,别全量灌
记忆要分层、分权限:按类型存(用户画像、工作偏好、项目动态分开),每条再标明私有还是团队共享,召回时按当前任务挑相关子集注入,不是每次全捞。关键在于:只对这次对话有用的临时信息不进记忆(那是计划和任务清单的活),写入要去重更新,召回要带相关性和时效。
**违反后果:**个人偏好和团队规范混在一层、还全量召回,结果个人习惯污染了团队、过时的决定又被翻出来误导判断。
Claude Code 是怎么落地的(v2.1.88 源码)
一条记忆一个文件,存在项目目录 ~/.claude/projects/<项目>/memory/ 下;MEMORY.md 只放索引(一行一条),每次会话自动加载,正文不写进索引。
记忆分四类——用户画像、工作偏好、项目动态、外部资源指针,每条再标私有或团队(团队那份可提交进仓库共享)。
召回不靠关键词或向量,而是另起一个小模型调用,只读每条记忆的「描述」,挑出最多 5 条确定有用的注入——拿不准就一条都不给。
四、面试官追问链
追问 1
“一条记忆该存原始对话还是提炼后的事实?为什么?”
存提炼后的事实,原文留指针。别存「用户说了一长段关于他讨厌四空格的话」,而存「用户偏好:两空格缩进」。原因有二:召回时事实命中率高、占 token 少;原文式存储既难检索又会在召回时把无关内容一起拖进窗口。记忆是知识库,不是聊天记录备份。
追问 2
“个人偏好和团队规范都要记,混在一层会怎样?”
会互相污染。个人习惯混进团队层,会跟着推给所有同事;团队红线混进个人层,又会跟着你跑到别的项目。所以要按 scope 隔离:私有层(个人偏好)和团队层(项目规范)分开存、分开召回。CLAUDE.md 之所以放在项目仓库里,就是因为它是项目级的事实,该跟着项目走,不跟着人走。
追问 3
“记忆越攒越多,怎么防止它把过时的想法又翻出来?”
三件事:写入去重更新而非无脑追加(同一件事有新结论就覆盖旧的)、召回按相关性 + 时效排序、错的要能删。这正是 S3 第 28 课长会话记忆污染的延伸——不修治理流程,记忆攒几个月就开始乱推老想法。我认为记忆模块最被低估的部分不是怎么写进去,是怎么让它长期保持干净。
五、给你的 agent 加一层记忆
自造 agent 想跨会话记事,记忆是独立件。下面四步给你一个不污染、能召回的最小记忆层。
STEP 1 · 定该记什么(事实,非流水账)
只记提炼后的事实和偏好,原始对话留指针。写入前先问:这条三个月后还有用吗?
↳ 关键:记知识,不记聊天记录。
STEP 2 · 分层存(用户 / 项目 / 会话)
用 scope 字段隔离个人偏好、项目约束、临时记忆,分开存。
↳ 关键:CLAUDE.md 就是项目级的落地形态。
STEP 3 · 召回只取相关子集
按当前任务用关键词或向量挑最相关的几条注入窗口,绝不全量回灌
↳ 关键:召回是挑,不是倒。
STEP 4 · 写入去重更新、支持删除
同一件事有新结论就覆盖旧的;过时或错误的能删,定期清理。
↳ 关键:不治理的记忆三个月后开始乱推老想法。
**↳ 一句话验收:**判断记忆模块设计得对不对,问两句——**关掉会话它还记得吗?召回时它只给相关的那几条吗?**都是,记忆才是资产;否则它要么失忆,要么变成污染当前判断的噪声源。
六、本课总结
一句话总结
记忆是独立于上下文窗口的架构模块——窗口临时、记忆持久;该存提炼后的事实而非流水账,按 scope 分层、按相关性召回,写入要去重更新,否则攒久了就开始乱推老想法。
面试锦囊
**先说:**先区分:上下文窗口是本会话临时工作台(压缩/关闭就清空),记忆是跨会话持久存储、每次只挑相关一小块加载。memory 是独立架构组件,不是更大的窗口。
**再说:**三要点:只存提炼事实非流水账、按类型存再分私有/团队、按需召回不全量灌。CLAUDE.md 是项目级事实的自动加载版。
**最后补:**关键在于:记忆要治理——写入去重更新、召回带时效、错的能删;不治理就会污染判断(延伸 S3 L28)。CLAUDE.md 是 advisory,要必须执行靠 Hooks。
学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%免费】

更多推荐



所有评论(0)