Claude Code

上下文窗口

Claude Code 上下文窗口如何被系统提示、CLAUDE.md、规则、文件读取、工具输出、Hooks 和子代理占用,以及 /clear、/compact、/context 的使用边界。

Claude Code 每一轮都会把必要上下文重新发送给模型。上下文窗口不是“聊天记录”这么简单,它同时包含系统提示、项目规则、文件内容、工具输出、Hook 反馈、子代理结果和你的新消息。

#上下文从哪里来

来源何时进入上下文建议
System prompt会话启动由 Claude Code 管理,升级版本后可能变化
环境信息会话启动包括工作目录、平台、shell、Git 状态
~/.claude/CLAUDE.md会话启动放个人长期偏好,控制长度
项目 CLAUDE.md会话启动放团队约定、架构、命令,建议短而准
.claude/rules读到匹配文件时paths: 让规则按需加载
Skills 描述会话启动或调用时描述越短越好,正文按需加载
MCP 工具启动或按需搜索支持 tool search 时只加载工具名和按需 schema
文件读取Claude 调用 Read/Grep/LSP/Bash 后文件越大越占窗口
Hook 输出Hook 返回 additionalContext 时只返回给 Claude 真正需要的信息
子代理结果子代理结束后主会话只看到最终摘要,中间读取留在子代理窗口

最常见的上下文浪费不是提示太长,而是一次任务里读了太多无关文件、长日志和大表格。

#/context 看什么

/context 会可视化当前窗口占用,并提示哪些部分最重。常用判断:

看到的问题处理方式
文件读取占比高缩小任务范围,让 Claude 先定位再读
工具输出占比高让命令输出更短,必要时写到文件再按需读取
记忆或规则太大拆成 path-scoped rules 或 skill
会话历史太长在自然断点 /compact,新任务用 /clear
MCP 工具太多开 tool search,或拆 server / 禁用不用的工具

/context all 展开更多细节,适合排查为什么窗口很快满。

#/clear、/compact、/rewind

命令做什么缓存影响适合场景
/clear [name]清空当前对话,旧会话仍可恢复新会话重新加载项目上下文换一个完全不同任务
/compact [说明]用摘要替换历史摘要请求可读旧缓存,下一轮重建短历史缓存同一任务继续做,但历史太长
/rewind回退到早前检查点通常回到已缓存前缀走错方向,想撤回部分对话和改动
/context只查看占用不改变缓存决定该不该整理上下文

不要把 /compact 当作万能省钱按钮。它会多发一次摘要请求,适合在自然断点做,不适合频繁点。需要撤回错误方向时,先看 Checkpoint 与回退

#什么会在 compact 后保留

内容结果
系统提示和工具定义保留
项目 CLAUDE.md、auto memory重新加载
已触发的 path rules由摘要和后续文件读取决定
已调用 skill 的重要结论依赖摘要质量
未调用 skill 的完整正文不会自动保留
子代理中间过程不进入主会话,只有最终结果可能被摘要
文件系统实际改动保留在磁盘,不靠上下文保存

如果某个信息之后一定要用,不要只指望模型记住。把它写进文件、issue、计划文档或明确告诉 /compact 摘要要保留。

#控制上下文的实践

1

把长期规则写短

CLAUDE.md 放稳定约定,不要塞长 API 文档、日志、TODO 列表。长材料做成 skill 或项目文档,需要时再让 Claude 读取。

2

先定位再读取

让 Claude 先用 rg、文件树、符号搜索缩小范围,再读关键文件。大仓库尤其要避免“先通读整个 src”。

3

把探索交给子代理

研究型任务可以用 子代理 隔离大规模读取。主会话只接收结论,不会被每个文件内容撑爆。

4

长输出先落盘

测试、日志、分析报告很长时,先输出到文件,再让 Claude 摘要或按关键词读取。

#跟缓存的关系

上下文窗口和 prompt caching 是两件事,但互相影响:

行为上下文影响缓存影响
普通追问历史变长旧前缀通常命中
读取大文件窗口明显增加作为新内容追加,旧前缀命中
/compact历史变短后续 conversation 层换成摘要
/clear当前历史清空新会话重新建缓存
换模型或 effort上下文内容不一定变cache key 变,全量 miss

更多 TTL 和命中判断见 Prompt 缓存,子代理上下文边界见 子代理

大型仓库还要从启动目录、分层 CLAUDE.mdRead deny 和稀疏 Worktree 控制上下文入口,详见 大型代码库与 Monorepo

#官方参考

Support / 支持

Need help? / 需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。For setup, billing, or model issues, email us. Check the status page for uptime.

也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right