当前位置: 首页 > news >正文

【Claude】半衰期管理:Claude Code 用一个档案员+收纳师的心法搞定上下文

你有没有遇到过这样的场景:和 Claude Code 对话到第 15 轮,它突然开始“失忆”——忘了你最初的需求,忘了刚刚改过的文件路径,甚至开始重复读取同一个大文件。你以为是模型变笨了,其实不是。是它的上下文窗口被“旧档案”塞满了。

这就好比你家的房间:台面只有那么大,你不断往里堆东西,却不做任何收纳整理。到后来,最常用的东西被埋在最底下,每次都要翻半天才能找到。

Claude Code 的解决方案不是“满了就扔”,而是请来了两位专家:一位档案管理员,负责给信息分级、建索引、做摘要;一位收纳师,负责按使用频率和“半衰期”来决定什么该摆在台面、什么该收进抽屉、什么该存进仓库。

这两位联手上阵,把上下文管理变成了一套基于信息半衰期的分级收纳体系

下面我们就用这套“档案员 + 收纳师”的心法,把 Claude Code 的源码设计一层层拆开。

一、什么是“半衰期”?为什么信息会过期?

在物理学里,半衰期是指放射性原子核衰减到一半数量所需的时间。放在信息管理里,信息的半衰期指的是它从“有用”变成“过期”的速度。

举个例子:

信息类型半衰期说明
你刚执行的grep输出极短(几轮对话)查完之后,很少再回头看原始结果
你刚读入的一个大文件内容短(完成任务后)改完这个文件,旧内容就没用了
项目规范(CLAUDE.md)无限长整个会话期间都必须记得
用户的核心需求不能因为压缩就丢掉

传统的上下文管理要么不做区分(全留),要么一刀切(全删)。Claude Code 的做法是:给每条信息打上“半衰期标签”,然后让档案员和收纳师按标签执行不同的处理策略

这两位角色是这样分工的:

  • 收纳师:负责“前台”——工作台面上的即时整理。决定什么东西可以暂时收进抽屉(压缩),什么东西可以直接扔进仓库(落盘),什么东西必须摆在手边(永久保留)。
  • 档案员:负责“后台”——信息的长效管理。当台面实在放不下时,启动全馆整理,对历史对话做结构化摘要,建立索引,确保关键信息能被快速找回。

二、收纳师的五层抽屉:从“随手放”到“进仓库”

Claude Code 的主循环里有 5 个连续的“收纳检查点”。收纳师会根据信息的半衰期,决定把它放进哪一层抽屉。

层级收纳动作对应半衰期成本
1大文件直接存磁盘用完即弃极低
2精简纯工具输出极低
3清空老旧工具结果(占位符)很短
4重组上下文结构中等
5全馆整理(LLM 摘要)按需保留长半衰期信息

收纳师有一条核心原则:先用最便宜的手段处理最短半衰期的信息,绝不轻易动用昂贵的 LLM 摘要

🔹 第一层抽屉:大文件直接存磁盘(半衰期:用完即弃)

收纳师看到的第一类东西是体积巨大但只使用一次的工具输出,比如read_file返回的整个文件内容。

源码里定义了一个阈值:50,000 字符。超过这个大小的工具结果,不会塞进模型输入,而是直接写入磁盘文件。模型只收到一条替代消息,包含结果保存路径和开头约 2KB 的预览。

这就好比收纳师面对一个巨大的行李箱:你不会把它放在客厅茶几上,而是直接塞进储藏室。需要的时候再去拿,但平时它绝不占用台面空间。

🔹 第二层抽屉:精简纯工具输出(半衰期:短)

有些信息体积不大,但半衰期很短。比如你执行了一个ls -la命令,输出了一屏文件列表。收纳师知道:你只是想知道那个目录里有什么,看完了,这堆列表就没用了。

snipCompactIfNeeded就是做这件事的:它找到那些纯工具输出且没有后续依赖的消息,直接从消息列表中移除。

🔹 第三层抽屉:清空老旧工具结果(半衰期:很短)

到了这一层,收纳师开始更主动地“整理台面”。她不会删除信息,而是用占位符替换

源码的microCompact.ts里有一个白名单:Read, Bash, Grep, Glob, WebSearch, WebFetch, Edit, Write。这些工具的输出结果可以被标记为“已压缩”。

具体做法是:根据时间衰减判断哪些工具结果已经够“老”了,然后把它们替换成[Old tool result content cleared]。原始数据还躺在本地 JSONL 日志里,但 API 调用时不会再发送出去。

这就像收纳师把你三天前看的杂志从咖啡桌上拿走,换成一张便签:“这里有本杂志,想看原版去书柜第三层找”。台面瞬间清爽,信息没有丢。

⚠️ 这一层不调用大模型,纯粹是本地字符串替换,每轮对话都会执行,成本几乎为零。

🔹 第四层抽屉:重组上下文结构(半衰期:中等)

前三层都搞不定时,收纳师会启动“结构性调整”——把松散的、重复的信息整合成更紧凑的形式。

源码中这部分实现文件缺失,但从调用链推断,它会在 LLM 响应生成之前,对上下文做一次重新组织,把 token 压力降到最低。

🔹 第五层抽屉:全馆整理(半衰期:按需保留长半衰期信息)

这是收纳师能用的最重的手段,也是唯一需要呼叫档案员支援的层级。

当 token 使用率达到约 80% 时,Auto‑Compact 自动触发。收纳师喊来档案员,说:“台面实在放不下了,你来做个全馆摘要吧。”

档案员接手后,执行三件事:

  1. 清理最占地方的旧工具结果
  2. 把整个对话历史压缩成结构化摘要
  3. 重新注入 CLAUDE.md 等永久档案,然后继续对话

三、档案员的独门绝技:摘要 + 索引 + 恢复

如果说收纳师负责“放得下”,档案员就负责“找得到”。他的核心工作不是删除,而是建立索引

摘要不是随便写的

当档案员拿到整个对话历史,他不会让 LLM 随意总结。摘要 prompt(源码里叫AGB)强制要求输出四段式结构

  1. 已完成事项:已经完成了什么功能、修复了什么 bug
  2. 进行中事项:当前正在做什么,做到哪一步了
  3. 受影响文件:修改了哪些文件,路径是什么
  4. 测试结果:测试通过情况、失败原因

关键代码片段、文件路径、测试输出等必须保留原始文本,不能抽象成“修改了登录模块”这种含糊说法。

这就像档案员给每份档案贴标签:不光写“财务报表”,还要写“2024年Q3、利润表、已审计”。以后找的时候,一翻索引就能定位。

文件恢复:把索引变回实物

摘要里只记录了“修改了auth.tsx”,但继续工作时,模型需要知道auth.tsx里到底有什么代码。档案员会自动恢复最多5 个最近读取的文件,总 token 预算 50K,每个文件不超过 5K。

这就像你从索引卡片上看到“资料在 B 区 3 排”,档案员会直接把那个档案盒拿到你面前。

CLAUDE.md:永久半衰期的“镇馆之宝”

有些信息半衰期无限长——项目规范、编码约定、个人偏好。这些信息绝对不能因为压缩而丢失。

Claude Code 把这些内容放在CLAUDE.md里。压缩后,档案员会从磁盘重新读取这些文件,再次注入到 system prompt 中。

你在对话里随口说的一句“记住这个路径”,半衰期很短,压缩后大概率被摘要掉。但你写在CLAUDE.md里的每一句话,都是永久馆藏。

四、收纳师 + 档案员 = 半衰期管理闭环

把两位角色的协作画成流程图:

信息半衰期极短

信息半衰期短

信息半衰期很短

台面仍拥挤

使用率 >80%

新对话

收纳师检查台面

第一层: 存磁盘

第二层: 精简输出

第三层: 占位符替换

第四层: 结构调整

第五层: 呼叫档案员

档案员做全馆摘要

保留长半衰期信息

恢复文件 + 注入CLAUDE.md

这套闭环的核心思想是:把有限的上下文窗口,留给半衰期最长的信息

  • 半衰期极短的(单次工具输出)→ 直接存磁盘
  • 半衰期短的(多次但易过时的输出)→ 精简或占位符
  • 半衰期中的(历史对话)→ 结构化摘要
  • 半衰期无限长的(规范、偏好)→ CLAUDE.md 永久保留

五、为什么这套心法比“截断”或“全摘要”强?

方案缺点Claude Code 的解法
简单截断丢掉长半衰期信息(如用户需求)摘要保留已完成/进行中事项
一次性 LLM 摘要昂贵 + 可能丢细节先尝试 4 层低成本手段,摘要作为兜底
全量保留窗口很快爆满按半衰期分层处理,优先淘汰短半衰期信息

这套心法还有一个隐藏优势:成本可控。绝大多数对话根本走不到第五层——前四层已经把短半衰期信息处理干净了,只有长时间、高复杂度的任务才会触发 Auto‑Compact。

六、面试官再问,你就这么答

如果面试官问你:“Claude Code 的上下文窗口是怎么管理的?”

你可以回答:

Claude Code 用了一套基于信息半衰期的分级管理机制。它把信息分成四类:半衰期极短的(如单次文件读取)、半衰期短的(如 grep 输出)、半衰期中的(历史对话)、半衰期无限长的(项目规范)。

针对不同半衰期,采用不同策略:短半衰期的用磁盘存储、占位符替换等低成本手段;中半衰期的做结构化摘要;无限长半衰期的放进CLAUDE.md永久保留。

这套机制的核心设计者可以理解为两位角色:收纳师负责前四层快速整理,档案员负责第五层深度摘要和索引恢复。两者配合,既保证了窗口不爆,又确保长半衰期信息永不丢失。

如果面试官追问:“那你觉得这套设计好在哪里?”

好在对成本和质量做了最优平衡。短半衰期信息不值得花 LLM 调用去做摘要,用本地字符串替换就够了;长半衰期信息值得动用昂贵的摘要,但只做一次。这种分层思想,比简单的截断或全量摘要要高明得多。

七、小结

Claude Code 的上下文管理,不是某个单一算法或阈值,而是一套完整的半衰期管理心法

  • 收纳师负责前台快速整理:磁盘落盘、占位符替换、结构调整,用最便宜的手段处理最短半衰期的信息。
  • 档案员负责后台深度索引:结构化摘要、文件恢复、永久档案注入,确保长半衰期信息能被高效找回。

两位角色各司其职,层层递进,最终实现了“不删档案,只建索引”的设计哲学。

下次再遇到 Claude Code “失忆”,别怪它——可能是你的对话已经跑过了 5 层收纳,而那位档案员正在安静地为你整理下一份摘要。

http://www.jsqmd.com/news/852873/

相关文章:

  • 夯爆了!2026督导巡店工具TOP4,用了才知道以前多走了多少弯路 - 资讯焦点
  • 2026南昌平价自助火锅技术解析:高性价比门店实测指南 - 资讯焦点
  • Promise.all不是万能的:当批量请求遇上p-limit,前端性能优化新思路
  • 从人眼模型到渐进镜片设计:在 OpticStudio 里完成一次完整的视觉矫正仿真
  • AI时代劳动力市场的结构性变革
  • 掌握FreeRDP的5个核心场景:从基础连接到企业级部署实战指南
  • 静态存储加密:保护存储数据的安全性
  • 2026高人气补水喷雾实测推荐:长效锁水不黏腻,全肤质适配 - 资讯焦点
  • Midjourney团队功能上线前最后48小时:3类用户必须立即配置的5项合规设置(附官方未公开的migration checklist)
  • 在 Node.js 后端服务中集成 Taotoken 调用大模型 API 指南
  • 3个核心功能+5个实战技巧:用B站神奇弹幕彻底解放你的直播双手
  • IsaacLab学习笔记
  • 前端转行网络安全靠谱吗?靠挖漏洞变现可行吗
  • 鸿蒙 PC 命令行工具迁移实战 · 四种命令行移植方案详解及对比
  • 保姆级教程:在IMX6ULL上从零手写一个LCD驱动(基于设备树与Framebuffer框架)
  • 从枚举到配置:深入拆解USB设备插上电脑后,控制传输到底干了啥?
  • 2026年5月河北聚氨酯保温钢管/钢套钢保温钢管/3PE防腐钢管/带颈对焊法兰厂家解析,认准河北浦鑫管道集团有限公司 - 2026年企业推荐榜
  • 学校装修行业线上推广获客完全指南 - 优质企业观察收录
  • 拯救者工具箱终极指南:3步解决联想笔记本性能与续航平衡难题
  • 美白护肤品怎么选?热门品牌功效测评、价格规格与成分对比详解 - 资讯焦点
  • 医疗洁净板厂家直供常见问题解答(2026最新专家版) - 资讯速览
  • 观察Taotoken服务在高峰时段的稳定性与自动路由容灾效果
  • 别再为透明视频发愁了!手把手教你用FFmpeg把PNG序列转成WebM透明视频(附完整命令)
  • 高中物理老师测评:莫荒年vs李楠,基础薄弱生速看 - 资讯焦点
  • Midjourney年度订阅避坑手册:92%用户不知的3大失效风险——自动续费陷阱、区域定价欺诈、账户绑定漏洞
  • 2026个人高净值资料备份哪家强?网盘选型必须知道的 3 个核心标准(含 5 款网盘深度实测)
  • 包装机械企业为什么获客越来越难 - 年度推荐企业名录
  • 对比几十家手表回收平台,我为什么推荐二掌柜收表?|亲身出售欧米茄海马真实经历 - 资讯焦点
  • TVA 颠覆常规 AI 视觉的底层逻辑(16)
  • 嵌入式Linux打印方案:在I.MX8MP平台移植适配CUPS的完整实践