/context 的作用
/context 打印当前会话上下文窗口中所有内容的细分。Anthropic 的命令概述简明地阐述了其目的:“当对话变长时,/context 显示什么填满了窗口,而 /compact 则对其进行总结以释放空间。”
输出包含三个部分:
- 彩色网格:按类别显示窗口的填充程度。
- 细分列表:列出每个类别及其包含的内容。
- 建议与警告:命令参考指出它“显示针对上下文密集型工具、记忆膨胀的优化建议以及容量警告”。
它在您运行 Claude Code 的任何地方都有效。在终端中,它是一个斜杠命令。在 Claude Desktop 应用中,Anthropic 表示您可以“在提示框中输入 /context,以在聊天中打印该会话上下文窗口的按类别细分”。
/context all
在全屏模式下,/context 会折叠逐项细分以保持网格可见。添加 all 参数可以展开它。Anthropic 的功能概述还指出它适用于 MCP 服务器:“运行 /context all 以查看每个加载的 MCP 工具使用了多少 token。”
如何阅读细分
Anthropic 的配置故障排除指南列出了这些类别:“系统提示词、系统工具、MCP 工具、带有加载源的自定义子代理、记忆文件、技能和对话消息。”每一个类别都能告诉您不同的信息。
系统提示词和系统工具 (System prompt and system tools)
这些是 Claude Code 自身的指令和内置工具。它们存在于每个会话中。它们设定了底线:即在您输入任何内容之前,会话所占用的空间。
MCP 工具 (MCP tools)
此行显示来自已连接 MCP 服务器的工具。默认情况下,MCP 工具定义是延迟加载的。Anthropic 的描述是:“在 Claude 使用特定工具之前,只有工具名称和服务器指令会消耗上下文。”您可能会看到标记为 (deferred)(已延迟)或 (loaded on-demand)(按需加载)的工具,这意味着它们的完整定义在任务需要时才会加载。
如果此类别很大,/context all 会显示哪个服务器的工具占用了空间。Anthropic 对拥挤窗口的建议包括禁用您不使用的服务器,这会从上下文中移除它们的工具定义。
自定义子代理 (Custom subagents)
您定义的子代理会出现在这里,以及每个代理的加载来源。当两个定义重名,或者项目级和用户级代理重叠时,来源就显得尤为重要。
记忆文件 (Memory files)
当规则未被遵守时,这是需要检查的类别。它列出了为该会话加载的 CLAUDE.md 文件和自动记忆(auto memory)。Anthropic 的上下文窗口指南指出,/context 提供“按类别的实时细分及优化建议,包括加载了哪些 CLAUDE.md 和自动记忆文件”。
使用它来回答一个问题:您预期的文件是否真的加载了?如果您的项目根目录 CLAUDE.md、用户级 CLAUDE.md 或 CLAUDE.local.md 不在列表中,那么无论文件里写了什么,Claude 在此会话的当前时间点都没有读取它。
技能 (Skills)
技能部分显示上下文中的技能描述。它比 skills 命令的范围更广:Anthropic 指出该部分“还包括捆绑技能,而 /skills 并不列出这些”。技能主体在调用技能时加载;描述则是从一开始就驻留在上下文中的内容。
消息 (Messages)
这是您的对话:您的提示词、Claude 的回复、Claude 读取的文件内容以及命令输出。在一个漫长的会话中,这是随着您的工作不断增长的类别。在会话期间加载的路径限定规则(path-scoped rules)和子目录 CLAUDE.md 文件也会作为消息历史的一部分出现在这里。
使用 /context 检查您的记忆文件
当规则未被遵守时,Anthropic 的故障排除指南规定了顺序:先确认文件已加载,然后查看它是如何编写的。
如果文件未列出
检查文件所在位置。并非每个 CLAUDE.md 都会在会话开始时加载。Anthropic 的记忆文档指出:“工作目录上方目录层级中的 CLAUDE.md 和 CLAUDE.local.md 文件会在启动时加载。子目录中的文件则按需加载。”
这就是为什么子目录文件可能不在列表中而没有任何错误的原因。故障排除指南直接说明了这一点:“子目录 CLAUDE.md 文件是按需加载而非在会话开始时加载,因此它们不会出现在该细分中。”一旦 Claude 读取、写入或编辑该子目录中的另一个文件,Claude Code 就会加载它。我们的子目录 CLAUDE.md 限制指南涵盖了这些文件在加载时的上限。
规则的工作方式相同。没有 paths 前置属性的规则在启动时加载。路径限定规则在 Claude 处理匹配文件时加载,因此在此之前它不会被列出。我们的 Claude Code 规则指南解释了 paths 如何决定规则何时加载。
如果您依赖 AGENTS.md,也请在这里检查它。Claude Code 仅在某些配置下读取它;我们的 Claude Code AGENTS.md 支持指南涵盖了哪些文件会关闭它。
如果文件已列出但被忽略
那么加载不是问题所在。Anthropic 的指南指出:“如果 /context 确认文件已加载但 Claude 仍未遵循特定指令,问题很可能出在指令的编写方式,而不是它是否已加载。”
它列举了常见原因:指令“过于模糊以至于可以有多种解释”、两个文件给出了冲突的指示,或者文件“太长导致单个规则获得的关注较少”。记忆文档中的尺寸建议是“每个 CLAUDE.md 文件目标控制在 200 行以内”。如果两个层级不一致,我们的协调冲突 CLAUDE.md 层级指南将引导您查找并修复冲突。
自动记忆 (Auto memory)
自动记忆也会出现在记忆文件下,并有其自身的限制。Anthropic 表示:“MEMORY.md 的前 200 行或前 25KB(以先到者为准)会在每次对话开始时加载。”超过该点的任何内容都不会在会话开始时加载。我们的 Claude Code 自动记忆指南涵盖了这些文件的存放位置以及如何管理它们。
后续命令
/context 告诉您窗口中有什么。每个类别的详细信息存在于其他命令中。Anthropic 的故障排除指南将它们配对使用:
/memory:显示跨用户和项目范围的记忆文件位置,允许您打开每一个,并提供对自动记忆文件夹和开关的访问。/skills:列出项目、用户和插件源中的可用技能。/mcp:显示已连接的 MCP 服务器及其状态。/doctor:运行设置检查。Anthropic 指出它会“标记过大的记忆文件和未使用的扩展”。/status:显示活动的设置源,包括托管设置。
当窗口接近满额时
/context 显示窗口的填充程度,并在您超过限制时发出警告。
超过限制警告
Anthropic 的错误参考指出,当对话增长超过模型的上下文窗口时,/context 会“在其输出顶部显示警告”。警告会告诉您超出了多少以及哪个命令可以释放空间。在您处理之前,请求将失败并提示“prompt-too-long”(提示词过长)错误。
在具有 1M 窗口的模型上,警告可能指的是压缩窗口(compaction window)而非完整的上下文窗口。Anthropic 解释说:“压缩窗口可以低于模型的上下文窗口,因此超过它的请求仍可能成功。”
释放空间的方法
Anthropic 的建议,大致按其改变程度排序:
/compact:总结之前的轮次并在保留会话的同时释放空间。/clear:开始全新的对话。我们的 /clear 指南涵盖了哪些内容能在清理后保留。- 禁用未使用的 MCP 服务器:使用
/mcp disable移除它们的工具定义。 - 修剪大型 CLAUDE.md 文件,或将指令移至仅在相关时加载的路径限定规则中。
与相关命令的比较
几个命令从不同角度观察会话:
/context:显示窗口中的内容以及每个类别占用的空间。/memory:打开并编辑记忆文件本身。/compact:通过总结减少窗口中的内容。/doctor:检查设置中的问题,包括过大的记忆文件。/btw:询问侧面问题而不增加窗口负担。
人们常犯的错误
假设 CLAUDE.md 已加载,仅仅因为文件存在。 存在不等于加载。/context 显示的是此会话中的实际内容。
将缺失的子目录文件视为 Bug。 那些是按需加载的,一旦 Claude 处理该文件夹中的文件就会加载。
当一条规则被忽略时添加更多规则。 如果 /context 显示文件已加载,问题很可能是措辞、冲突或长度。更多规则会使长度问题恶化。
在压缩即可解决时选择清理。 /clear 是重新开始。/compact 保留会话并释放空间。
忽略 MCP 行。 几个拥有大量工具的服务器可能会占用明显的窗口份额。/context all 会显示具体情况。
解决方案:将 /context 纳入您的设置检查
第 1 步:在重要的会话开始时运行 /context
在执行长任务之前,运行 /context 并阅读记忆文件类别。确认您预期的 CLAUDE.md 文件和规则已列出。如果缺失,请在编辑之前检查它的存放位置。
第 2 步:治本而非治标
如果文件已加载但 Claude 仍然遗漏了某条规则,请重写该规则使其更具体,解决层级间的冲突,并保持每个 CLAUDE.md 简短。将仅对部分代码库有效的指令移至路径限定规则中。
第 3 步:为工作保留窗口空间
在漫长的会话中,当速度变慢时检查 /context。禁用不使用的 MCP 服务器,在自然断点处进行压缩,并在不相关的任务之间进行清理。
在 MemoryLake 中设置
/context 显示的是从一台机器和一个代码库加载的一个会话的内容。而您需要的一些内容并不受限于这些:适用于跨代码库的决策、您会给任何助手的偏好,以及您不想在每个 CLAUDE.md 中重复的事实。
MemoryLake 是一个记忆层,用于将这些内容保存在一个由您维护的列表中,供 Claude Code 以及您连接的其他助手(如 ChatGPT 和 Codex)使用。
您可以用自己的语言亲自编写条目。不会从您的 CLAUDE.md 文件、规则、自动记忆、Claude Code 会话或任何供应商的存储中读取、写入或删除任何内容。/context 仍将按照 Anthropic 描述的方式工作。
第 1 步:创建 API 密钥
登录并从控制面板生成密钥。该密钥属于您的 MemoryLake 工作区,与您的 Claude 账户是分开的。

第 2 步:上传您的第一批记忆
从您在解决方案第 2 步中发现的跨 CLAUDE.md 文件重复的事实开始:适用于单个代码库之外的决策、约定和约束。每个条目一个要点,并注明日期。

第 3 步:连接您的 AI 和代理
连接 Claude Code 和您使用的其他助手。这些事实将在下一个会话、另一个代码库和其他工具中可用。

这在实践中改变了什么
第一个区别是您不再靠猜。未被遵循的规则要么在细分中缺失,要么存在但措辞不当,/context 会告诉您是哪一种。
第二个是您知道空间去哪了。MCP 工具、记忆文件和消息各有一个数值,因此您可以修剪沉重的内容而不是清理所有内容。
第三个是更短的指令文件。当跨项目的事实存在于别处时,每个 CLAUDE.md 都可以专注于其自身的代码库。
Claude Code 中 /context 的最佳实践
在长任务之前运行它。 确认您预期的记忆文件已列出。
当规则被忽略时,先检查记忆文件。 然后检查措辞和冲突。
记住按需加载。 子目录 CLAUDE.md 文件和路径限定规则在 Claude 处理匹配文件后才会出现。
使用 /context all 获取 MCP 详情。 它显示每个工具的 token 数。
阅读警告行。 它指出了释放空间的命令。
将其与 /memory 和 /doctor 配合使用。 一个显示加载了什么;另一些则打开文件并标记过大的文件。
保持 CLAUDE.md 简短。 Anthropic 的目标是每个文件控制在 200 行以内。
结论
/context 显示了 Claude Code 会话上下文窗口中的所有内容,按类别细分:系统提示词、系统工具、MCP 工具、自定义子代理、记忆文件、技能和消息。它是规则未被遵循时首先要运行的命令,因为它会告诉您文件是否已加载。
如果文件缺失,请检查它的存放位置,因为子目录文件和路径限定规则是按需加载的。如果它存在但被忽略,请查看措辞。当窗口接近满额时,/context 会显示空间去向以及哪个命令可以释放它。