YouMind
تسجيل الدخول

如何精通 Claude Code 中的上下文工程:Anthropic 工程师使用的 5 种模式与 13 个步骤

@zodchiii
الإنجليزية06 يونيو 2026
104K
202
20
15
443

ليرة تركية؛ د

学习如何通过分层 CLAUDE.md 文件、精准的文件引用以及子智能体隔离来优化 Claude Code 会话,从而将上下文占用率降低高达 70%。

每一次长时间的 Claude Code 会话都以同样的方式结束:你浪费了几个小时的进度,然后不得不从头开始。

解决之道不在于更智能的模型,而在于 Claude Code 团队内部使用、却从未为之编写过指南的一个系统。

大多数开发者并没有用它,甚至不知道它的存在。

以下是完整的系统 👇

🧠 在我们深入之前,我每天在 Telegram 频道分享关于 AI 和氛围编码的笔记:https://t.me/zodchixquant

darkzodchi - inline image

什么是上下文工程

Claude 在每次会话中都会读取成千上万行代码。其中大部分是噪音,而关键的 5% 在第二小时就被淹没了。

这时 Claude 开始臆造函数,修复你从未写过的 bug。解决办法不是更大的模型,而是控制进入会话的内容。

以下是 Claude Code 团队在自己的单体仓库中使用的 6 个模式。

darkzodchi - inline image

模式 1:分层 CLAUDE.md(步骤 1-3)

一个 CLAUDE.md 不够。Claude Code 团队运行三个层级,每个层级专注于不同的关注点。

步骤 1:包含项目级规则的根 CLAUDE.md

在你的仓库根目录放一个 CLAUDE.md。控制在 100 行以内。它应该回答 Claude 在每个提示中都有的四个问题:

markdown
1# 项目:[名称]
2
3## 技术栈
4- 运行环境:Node 22,TypeScript 5.5
5- 框架:Next.js 15,React 19
6- 数据库:Postgres 16,Drizzle ORM
7- 测试:Vitest,Playwright
8
9## 规范
10- 导入:仅使用来自 `@/` 的绝对路径
11- 组件:kebab-case 文件名,PascalCase 导出名
12- 测试:与测试文件同目录,命名为 `[file].test.ts`
13- 提交:遵循 Conventional Commits,无 co-author 脚注
14
15## 禁止修改
16- `infra/terraform/`(由运维团队管理)
17- `migrations/`(自动生成,禁止手动编辑)
18- `vendor/`(已提交的依赖项)
19
20## 默认操作
21- 在声明任务完成前,运行 `npm test`
22- 每次编辑后,使用 `tsc --noEmit` 进行类型检查
23- 保存时使用 Prettier 格式化

步骤 2:针对模块特定上下文的子目录 CLAUDE.md

在任何规则发生变化的文件夹中添加 CLAUDE.md。Claude 在处理该文件夹时,会优先读取最近的 CLAUDE.md,并与根目录的 CLAUDE.md 合并使用。

例如,src/auth/CLAUDE.md:

markdown
1# 认证模块
2
3此模块负责会话管理和 OAuth 流程。
4
5## 规则
6- 绝不要记录令牌,即使是截断后也不行
7- 所有会话读取必须通过 `getSession()`,不得直接操作原始 cookie
8- 新增提供商在合并前需要经过安全审查
9
10## 首先要阅读的文件
11- `session.ts` 了解接口约定
12- `providers/index.ts` 了解注册模式

步骤 3:~/.claude/CLAUDE.md 中的个人 CLAUDE.md

这是你的全局偏好层。位于任何仓库之外,适用于所有地方。

markdown
1## 我的偏好 - 在进行多文件编辑之前,先解释你将要做什么 - 如果我的请求看起来可能破坏某些东西,请提出异议 - 优先使用组合而非继承 - 我使用 macOS 上的 zsh

这三个层级叠加在一起:全局偏好 + 项目规则 + 模块规则。Claude 在每次提示时都会读取所有三个层级,无需通过你的上下文重新上传它们。

模式 2:精准文件引用(步骤 4-5)

默认的"让 Claude 自己找出哪些文件重要"是使用上下文最慢、最笨的方式。

步骤 4: @file 引用与自动补全

当你在提示中输入 @ 时,Claude 会打开一个模糊文件选择器。用它来代替用文字描述文件。

错误示例:"查看用户认证代码和会话辅助函数"

正确示例:"查看

@src/auth /session.ts 和

@src/auth /providers/google.ts,修复令牌刷新问题"

精准引用会精确加载这些文件。而文字描述会迫使 Claude 搜索、读取 4-5 个候选文件,并且在半数情况下会选错。

步骤 5:使用 /focus 限定整个工作流范围

对于较长的任务,将 Claude 的整个会话范围限定到特定文件夹:

text
1/focus src/auth src/api/auth-routes

现在,所有的搜索、grep 和读取操作都只在这两个文件夹内进行。

这能减少专注任务 60-80% 的上下文使用量,并且 Claude 也不会再"好心地"去读取那些它不需要的无关文件来提供上下文。

运行 /focus clear 来重置范围。

模式 3:压缩与继续(步骤 6-8)

长时间运行的会话会触及上下文限制并崩溃。诀窍不是避免长时间会话,而是通过受控的压缩来管理它们。

步骤 6:使用 /stats 监控上下文使用情况

定期运行 /stats。

当上下文使用量超过 70% 时,你就进入了危险区。超过 85% 时,Claude 会开始悄悄地丢弃早期的消息。

步骤 7:带保留指令的 /compact

单独的 /compact 会总结对话。而带上指令,你可以告诉 Claude 哪些内容需要原封不动地保留:

text
1/compact 保留:当前任务计划,所有关于认证重构的决策,步骤 3 中失败的测试输出

步骤 8:使用 /resume 处理跨天会话

如果一项任务跨越数天,用以下方式结束每个会话:/compact 保留:... 然后以下方式开始下一个会话:

markdown
1claude --resume [会话-id]

或者对于最近的会话,直接使用 claude --continue。它会准确地从你上次离开的地方继续,并保留完整的已压缩状态。

模式 4:先规划后阅读(步骤 9-10)

最大的上下文泄漏是 Claude 在理解文件之前就开始编辑它们。规划模式强制它先阅读,后写入。

步骤 9:在每个有风险的任务上切换规划模式

在执行任何涉及多个文件的任务之前,按下 Shift+Tab 进入规划模式。

在规划模式下,Claude 只能读取。它会解释它将做什么,列出它打算触摸的每个文件,并展示提议的更改。在你批准之前,什么都不会执行。

节省是实实在在的:一次读取,一次编辑,而不是读取 8 个,编辑错 3 个,回退,重新读取,再次编辑。

步骤 10:通过钩子锁定敏感路径的规划模式

使高风险区域的规划模式成为强制性要求。在 .claude/settings.json 中:

json
1{
2 "hooks": {
3 "PreToolUse": [
4 {
5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",
6 "hooks": [
7 {
8 "type": "command",
9 "command": "claude-require-plan-mode"
10 }
11 ]
12 }
13 ]
14 }
15}

任何在 src/auth/*\ 或 migrations/\\* 中的编辑尝试都会触发规划模式要求。Claude 无法绕过它。

模式 5:子代理上下文隔离(步骤 11-13)

子代理是保持主上下文小而精的最干净方式。每个子代理在自己的窗口中运行,因此父会话永远不会看到噪音。

步骤 11:设计具有最小工具面的子代理

将工具限制在任务所需的范围内。

一个 代码审查员 不需要写入或编辑工具。

一个 文档更新员 不需要 Bash。工具面越少,浪费在无关文档和工具描述上的上下文就越少。

yaml
1---
2name: 代码审查员
3description: 检查代码变更是否存在 bug 和安全问题
4tools: Read, Grep, Glob
5model: sonnet
6---

步骤 12:只传递子代理需要的文件引用

不要说"审查最近的变更。"应该说"审查[@src/auth](https://x.com/@src/auth)/session.ts 和 [@src/auth](https://x.com/@src/auth)/providers/google.ts。**"

子代理只读取这些文件,而不是它自己猜测"最近"是什么意思。

步骤 13:为子代理使用更便宜的模型

根据任务为每个代理设置模型。

审查和测试任务用 Sonnet,文档更新和 lint 任务用 Haiku,只有在架构或安全审计等需要深度推理的任务上才用 Opus。

如果需要,可以全局设置:

text
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"

更便宜的子代理 = 每美元更多的子代理调用 = 更多的隔离 = 更小的主上下文。

30 分钟上下文工程入门

10 分钟: 编写一个紧凑的根 CLAUDE.md,包含技术栈、规范、禁止修改列表和默认操作。

5 分钟: 在你最常编辑的 2-3 个模块中添加子目录 CLAUDE.md。

5 分钟: 在 ~/.claude/CLAUDE.md 中放入一个包含你偏好的个人 CLAUDE.md。

5 分钟: 为你最常做的工作流在 .claude/skills/ 中构建一个技能。

5 分钟: 绑定 Shift+Tab 肌肉记忆,并且每个多文件任务都从规划模式开始。

完成!

你的下一次会话将使用比之前少 50-70% 的上下文来完成相同的工作量。到第 5 次会话时,这些模式会成为条件反射,你将完全不再受限制的困扰。

上下文不是 Claude 替你管理的。是你自己需要去工程的。

现在你拥有这个系统了。

感谢阅读!

我每天在 Telegram 频道分享关于 AI、金融和氛围编码的笔记:https://t.me/zodchixquant

darkzodchi - inline image
بنقرة واحدة حفظ

استخدم YouMind للقراءة العميقة للمقالات سريعة الانتشار بتقنية الذكاء الاصطناعي

احفظ المصدر، واطرح أسئلة مركزة، ولخص الحجة، وحوّل المقالة واسعة الانتشار إلى ملاحظات قابلة لإعادة الاستخدام في مساحة عمل واحدة تعمل بالذكاء الاصطناعي.

اكتشف YouMind
للمبدعين

حول Markdown إلى مقالة 𝕏 نظيفة

عندما تنشر كتاباتك الطويلة، فإن الصور والجداول وكتل التعليمات البرمجية تجعل تنسيق 𝕏 مؤلمًا. YouMind يحول مسودة Markdown كاملة إلى مقالة نظيفة وجاهزة للنشر 𝕏.

حاول Markdown إلى 𝕏

المزيد من الأنماط لفك التشفير

المقالات الفيروسية الأخيرة

استكشاف المزيد من المقالات الفيروسية