文档索引
获取完整文档索引:https://code.claude.com/docs/llms.txt 使用此文件发现所有可用页面后再继续探索。
探索上下文窗口
Claude Code 上下文窗口在会话中如何填充的交互式模拟。查看什么自动加载、每次文件读取的成本,以及规则和钩子何时触发。
Claude Code 的上下文窗口包含 Claude 关于你会话的所有知识:你的指令、它读取的文件、它自己的响应,以及永远不会出现在你终端中的内容。下面的时间线逐步介绍什么加载以及何时加载。以列表形式查看相同内容请参阅书面分解。
<ContextWindow>
时间线展示的内容
会话以代表性 token 计数演示一个真实的流程:
- 在你输入之前:CLAUDE.md、自动记忆、MCP 工具名称和技能描述都加载到上下文中。你自己的设置可能在这里添加更多内容,如输出样式或
--append-system-prompt的文本,两者都以相同方式进入系统提示词。 - Claude 工作时:每次文件读取都增加上下文,路径限定规则随匹配文件自动加载,PostToolUse 钩子在每次编辑后触发。
- 后续提示词:子代理在自己独立的上下文窗口中处理研究,因此大量文件读取不会进入你的窗口。只有摘要和小型元数据尾部返回。
- 最后:
/compact用结构化摘要替换对话。大多数启动内容自动重新加载;下表显示每种机制的情况。
什么在压缩后保留
当长会话压缩时,Claude Code 总结对话历史以适应上下文窗口。你的指令发生什么取决于它们是如何加载的:
| 机制 | 压缩后 |
|---|---|
| 系统提示词和输出样式 | 不变;不是消息历史的一部分 |
| 项目根目录 CLAUDE.md 和无范围规则 | 从磁盘重新注入 |
| 自动记忆 | 从磁盘重新注入 |
带 paths: 前置数据的规则 | 丢失,直到再次读取匹配文件 |
| 子目录中的嵌套 CLAUDE.md | 丢失,直到再次读取该子目录中的文件 |
| 已调用的技能正文 | 重新注入,每个技能上限 5,000 tokens,总计 25,000 tokens;最旧的先丢弃 |
| 钩子 | 不适用;钩子作为代码运行,而不是上下文 |
路径限定规则和嵌套 CLAUDE.md 文件在触发文件读取时加载到消息历史中,因此压缩将其与其他所有内容一起总结。下次 Claude 读取匹配文件时它们会重新加载。如果规则必须跨压缩持久化,删除 paths: 前置数据或将其移到项目根目录 CLAUDE.md。
技能正文在压缩后重新注入,但大型技能被截断以适应每个技能的上限,最旧的已调用技能在总预算超出时被丢弃。截断保留文件的开头,因此将最重要的指令放在 SKILL.md 的顶部附近。
检查你自己的会话
可视化使用代表性数字。要随时查看你的实际上下文使用情况,运行 /context 获取按类别的实时分解和优化建议。运行 /memory 检查启动时加载了哪些 CLAUDE.md 和自动记忆文件。
相关资源
有关时间线中展示的功能的更深入覆盖,请参阅以下页面:
- 扩展 Claude Code:何时使用 CLAUDE.md vs 技能 vs 规则 vs 钩子 vs MCP
- 存储指令和记忆:CLAUDE.md 层次结构和自动记忆
- 子代理:将研究委派到独立的上下文窗口
- 最佳实践:将上下文作为主要约束进行管理
- 提示词缓存:哪些操作会使缓存前缀失效
- 减少 token 使用:保持上下文使用低的策略