HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍上下文窗口基础1、上下文窗口包含什么2、上下文衰退Context rotCLAUDE.md 指令文件1、存放位置与作用范围2、创建 CLAUDE.md3、CLAUDE.md 内容要求实例4、按路径限定规则.claude/rules/自动记忆Auto memory1、工作机制2、查看与编辑记忆/memory3、主动让 Claude 记住内容上下文窗口优化命令1、自动压缩Auto-compaction2、压缩上下文/compact3、清除上下文/clear4、回退到检查点/rewind5、快速提问不污染上下文/btw会话管理命令常见问题与解决方案上下文管理是高效使用 Claude Code 的核心技能。官方文档明确指出上下文窗口是 Claude Code 最重要的资源随着上下文填满模型性能会逐渐下降称为上下文衰退context rot——这是使用 Claude Code 时需要主动对抗的核心问题。本章深入讲解如何通过 CLAUDE.md 指令文件、自动记忆系统、上下文窗口优化命令等手段让 Claude 在长会话和跨会话中保持高效状态。上下文窗口基础1、上下文窗口包含什么Claude Code 的上下文窗口大小为1,000,000 tokens100 万 token。它容纳了 Claude 在当前会话中看到的一切内容内容来源加载时机Token 占用系统提示词Claude Code 行为规范每次会话启动固定占用CLAUDE.md 文件启动时完整加载取决于文件大小自动记忆Auto memory启动时加载前 200 行或 25KB有上限对话历史累积增长随会话持续增加工具结果文件读取、命令输出等每次工具调用后追加日志/大文件消耗极快MCP 工具名称、Skills 描述等启动时加载中等2、上下文衰退Context rot官方明确指出随着上下文填满LLM 性能会下降因为注意力被分散到更多 token 上旧的、不相关的内容开始干扰当前任务。具体症状包括Claude 开始前后矛盾忘记之前达成的决策响应变得模糊、笼统细节减少对同一问题反复询问已经回答过的内容在同一个会话里对同一个问题纠正了两次以上出现以上症状说明上下文已经污染此时应主动使用/compact或/clear处理而不是继续在同一会话中纠正。使用/context命令可以随时查看当前上下文的详细用量分析/context它会按分类系统提示、CLAUDE.md、记忆文件、会话历史等列出 token 占用并给出优化建议。建议在开始重要任务前先检查一次。CLAUDE.md 指令文件CLAUDE.md 是 Claude Code 中记录静态指令和项目规范的核心文件。每次会话启动时Claude 会自动将其加载到上下文窗口中。1、存放位置与作用范围CLAUDE.md 支持多个位置更具体的位置优先级更高范围文件路径适用场景是否提交 git组织级macOS:/Library/Application Support/ClaudeCode/CLAUDE.mdLinux/WSL:/etc/claude-code/CLAUDE.md公司编码标准、合规要求由 IT 统一管理项目级./CLAUDE.md或./.claude/CLAUDE.md项目架构、编码规范、工作流是与团队共享用户级~/.claude/CLAUDE.md个人编码偏好适用所有项目否个人私有本地私有./CLAUDE.local.md加入 .gitignore个人的项目特定配置不提交 git否加入 .gitignoreCLAUDE.local.md是个人私有配置的官方推荐方式沙箱 URL、本地测试账号、个人调试习惯等不应共享的内容应放在这里而不是CLAUDE.md中。运行/init时选择个人选项它会自动将该文件加入.gitignore。2、创建 CLAUDE.md执行以下命令Claude 会自动分析项目并生成初始 CLAUDE.md/init如果已有 CLAUDE.md/init会建议改进而不是直接覆盖。生成后手动补充 Claude 无法自动发现的内容如禁止修改的文件、特殊约束等。也可以在会话中用#快捷键快速向 CLAUDE.md 追加一条记忆# 所有 API 错误响应必须使用 { code, message } 格式按下#后输入内容回车Claude 会将其写入对应层级的 CLAUDE.md作为持久指令保存。3、CLAUDE.md 内容要求官方要求每个 CLAUDE.md 文件控制在 200 行以内。文件越大消耗的启动 token 越多Claude 的遵守率反而越低。以下是内容建议应该写入构建、测试、部署的常用命令代码规范命名约定、缩进、禁止使用的模式关键约束始终使用 pnpm、禁止修改 migrations/ 目录项目架构说明主要目录的用途不应该写入多步骤操作流程应放到 Skills 文件中只与代码库某一部分相关的规则应使用.claude/rules/按路径限定Claude 通过读取代码就能自己发现的信息实例# CLAUDE.md 示例精简具体每个文件控制在 200 行以内## 常用命令- 包管理始终使用 pnpm不要使用 npm 或 yarn- 运行测试pnpm test:watch- 构建pnpm build## 代码规范- TypeScript strict 模式不允许 any- 组件文件使用 PascalCase 命名如 UserProfile.tsx- 数据库时间戳统一使用 UTC 格式## 约束事项- 禁止直接修改 prisma/migrations/ 目录下的已有文件- .env.local 包含真实密钥禁止读取或输出文件内容- API 接口统一在 src/api/ 目录下管理不在其他地方直接发请求4、按路径限定规则.claude/rules/对于较大的项目可以用.claude/rules/目录将指令拆分为按文件路径生效的细粒度规则避免所有规则都堆在根 CLAUDE.md 中消耗启动 token.claude/ └── rules/ ├── api.md # 只对 src/api/**/*.ts 文件生效 ├── frontend.md # 只对 src/components/**/*.tsx 文件生效 └── testing.md # 只对 *.test.ts 文件生效路径限定规则只在 Claude 读取对应目录下的文件时才会加载不在启动时全量占用上下文。自动记忆Auto memory自动记忆是 Claude Code v2.1.59 及以上版本内置的跨会话记忆系统默认开启无需任何配置。它让 Claude 在工作过程中自主记录发现的构建命令、调试经验、代码风格偏好等信息。1、工作机制Claude 不会每次会话都写记忆它会判断信息是否值得保留在未来对话中是否有用记忆按 git 仓库路径隔离存储于~/.claude/projects/项目路径/memory/同一仓库的所有工作树共享一份自动记忆写入记忆时终端会显示 Writing memory下次检索时显示 Recalled memory2、查看与编辑记忆/memory使用/memory命令查看和编辑所有记忆内容包括各级 CLAUDE.md 和自动记忆/memory在编辑器中可以删除不准确的条目或使用 Auto memory 开关禁用自动记忆功能。也可以通过环境变量临时禁用CLAUDE_CODE_DISABLE_AUTO_MEMORY1 claude3、主动让 Claude 记住内容对话中可以直接让 Claude 写入记忆记住我们的 API 测试需要本地运行一个 Redis 实例以后请记住处理错误时统一返回 { code, message } 结构如果想升级为强制规范而非只是偏好记忆可以说把这条规则写进 CLAUDE.mdClaude 会将其写入对应的 CLAUDE.md 文件。上下文窗口优化命令1、自动压缩Auto-compactionClaude Code 在上下文接近限制时会自动触发压缩约在 75% 用量左右将对话历史总结为摘要后继续工作。但官方建议不要等待自动压缩应主动在 60~70% 时手动触发避免在关键任务中间被打断且主动压缩可以通过指令控制保留哪些内容。2、压缩上下文/compact手动压缩对话历史将长会话总结为精简摘要继续工作/compact/compact支持传入自定义指令控制压缩时重点保留哪些内容/compact Focus on the API changes/compact 保留认证流程的架构决策丢弃调试过程中的无效尝试压缩是有损操作。压缩时 Claude 处于上下文最满、性能最弱的状态如果不给指令它可能丢掉你认为重要的内容。在重大决策后立即主动压缩并用指令说明保留重点比等待自动压缩效果好得多。3、清除上下文/clear切换到全新任务时清除所有对话历史/clear清除后 CLAUDE.md 和自动记忆不受影响仍会在新会话中加载。官方建议如果在同一会话里对同一问题纠正了两次以上不如直接 /clear带着学到的约束重新开始一个更精准的提示词——干净的会话加上更好的提示几乎总是好过在污染的上下文中继续纠正。4、回退到检查点/rewindClaude Code 在每次修改文件前会自动创建检查点。双击Esc或执行/rewind可打开回退菜单选择要恢复的检查点/rewind或双击 Esc 键在回退菜单中你可以选择以下操作操作效果适用场景恢复对话 代码回退对话历史和文件改动完全还原Claude 走偏了改动有问题全部撤销仅恢复对话回退对话历史保留文件改动想重试不同思路但代码改动可以保留仅恢复代码还原文件到检查点状态保留对话代码改坏了但对话中的分析有参考价值从此处摘要Summarize from here将该检查点之后的对话压缩为摘要保留之前的完整历史只想清理后半段冗余对话保留前期的完整上下文检查点跨会话持久保存——关闭终端后仍然可以回退到之前的检查点。这不是 git 的替代品但在探索性实验中比手动 git stash 更方便。5、快速提问不污染上下文/btw如果需要快速查询一个小细节但不想让这次问答进入对话历史消耗上下文使用/btw/btw 这个项目的 TypeScript 版本是多少答案会以浮层方式展示问题和答案都不会进入对话历史适合查阅配置、版本号等不需要保留的一次性信息。会话管理命令命令功能使用场景/context查看上下文各部分的详细 token 用量分析排查哪部分消耗了过多 token/compact [指令]压缩对话历史为摘要可指定保留重点上下文 60~70% 时主动压缩/clear清除所有对话历史保留 CLAUDE.md 和记忆切换到新任务或上下文已严重污染/rewind或双击 Esc打开检查点菜单可选择恢复对话/代码/两者或从某处摘要Claude 走偏了需要回退后重试/memory查看和编辑 CLAUDE.md 及自动记忆内容检查记忆是否准确删除过时条目/btw快速提问答案不进入对话历史查阅小细节不想污染上下文/init分析项目并生成或改进 CLAUDE.md首次在新项目使用或项目有重大变更#快捷键快速向 CLAUDE.md 添加一条持久指令随时记录规范或约定claude --continue继续最近一次会话重新打开终端后接着工作claude --resume从历史列表中选择一次会话继续恢复几天前的某个特定任务常见问题与解决方案问题一Claude 没有遵守 CLAUDE.md 中的规则检查 CLAUDE.md 是否过大超过 200 行时遵守率下降将模糊表述改为具体指令不要写整洁的代码要使用 2 个空格缩进用/memory检查是否有冲突的自动记忆条目考虑用.claude/rules/将规则按文件路径拆分减少每次加载量问题二Claude 开始前后矛盾忘记之前的决策这是上下文衰退的典型症状不要继续在同一会话纠正运行/compact 保留关键决策或直接/clear后带着总结重新开始重要结论用#快捷键写入 CLAUDE.md确保下次会话仍然有效问题三/compact 后关键信息丢失压缩时传入具体指令/compact 保留认证流程的架构决策和已确认的 API 格式在压缩前将最重要的结论写入 CLAUDE.md调试失败的尝试不值得保留可以更激进地压缩或 /clear问题四关闭终端后如何继续上次工作使用claude --continue继续最近一次会话使用claude --resume从历史列表选择特定会话用/rename给重要会话起一个描述性名称如 oauth-migration方便以后找到问题五某个大任务会产生大量工具输出怎么避免上下文爆满使用子代理subagent委托执行主对话只收到摘要中间输出留在子代理独立上下文中例如使用子代理分析所有日志文件找出性能瓶颈只把结论告诉我❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧