AI训练营——Day32:Claude Code 上下文技巧
Day 4|上下文技巧:如何在有限的 Token 中塞入更多信息
🎯 目标:掌握上下文管理技巧,让 AI 在有限窗口内输出更精准的结果
一、理论部分
为什么上下文是 AI 编程的核心瓶颈?
Claude Code 的上下文窗口(Context Window)是有限的。每次对话,AI 只能”看见”窗口内的内容。当项目变大、对话变长,有效的上下文管理就变得至关重要。
常见问题:
-
• 项目文件太多,AI 读不过来 -
• 对话历史太长,前面的重要信息被”遗忘” -
• 想要引用特定代码,却不知道怎么做
什么是上下文?理解 AI 的”视野”
上下文(Context)就是 AI 当前能看到的全部信息:
┌─────────────────────────────────────────────┐│ AI 的上下文窗口 │├─────────────────────────────────────────────┤│ 系统提示 (System Prompt) ││ ───────────────────────────────────────── ││ 当前项目文件内容 ││ ───────────────────────────────────────── ││ 对话历史 (Chat History) ││ ───────────────────────────────────────── ││ 用户当前输入 (Your Message) │└─────────────────────────────────────────────┘
当窗口填满时,最早的内容会被”挤出去”。所以,上下文管理的本质是:确保 AI 始终看到最重要的信息。
三大上下文技巧
技巧 1:精准引用,而非复制粘贴
❌ 错误做法:把整个文件复制到对话里
这是我的整个组件,请帮我修改:[粘贴 500 行代码]
✅ 正确做法:使用文件路径 + 关键函数名
帮我修改 src/components/UserList.tsx 中的 handleSearch 函数,让它支持分页搜索。
技巧 2:巧用 @ 符号引用文件
Claude Code 支持 @ 符号直接引用项目文件:
@src/api/user.ts ← 引用特定文件@src/components ← 引用整个目录
这样 AI 会自动读取文件内容,比手动复制更准确、更省 Token。
技巧 3:分步骤操作,而非一步到位
❌ 错误做法:
帮我重构整个项目,包括:1. 重写所有组件为 TypeScript2. 添加错误边界3. 优化性能
✅ 正确做法:拆分成多个请求
第一步:帮我找出所有需要重构的 JavaScript 组件第二步:帮我把 UserList.jsx 转换为 TypeScript第三步:...
二、实操部分
场景:接手一个 500+ 文件的遗留项目,需要快速修改
你刚接手一个大型遗留项目,里面有 500+ 个文件,如何高效地让 AI 帮你工作?
Step 1:使用 @ 符号精准引用
# 启动 Claude Codeclaude# 精准引用单个文件@src/components/Button.tsx 这个按钮组件可以更简洁吗?# 引用多个相关文件@src/components/Button.tsx @src/components/Modal.tsx 帮我对比这两个组件,找出可以复用的部分# 引用整个目录@src/hooks/ 帮我审查这些 Hooks,看有没有性能问题
Step 2:使用文件路径 + 函数名定位
# 指定具体函数,而非整个文件帮我优化 src/utils/dataProcessor.ts 中的 parseUserData 函数# 指定行号范围(如果有需要)帮我修改 src/components/Form.tsx 的 45-80 行,提取出表单验证逻辑# 指定修改目标在 src/api/client.ts 的 fetchData 函数中添加缓存逻辑
Step 3:利用 Claude Code 的自动读取能力
Claude Code 会自动读取项目中的关键文件,但你可以优化它读取的内容:
在 CLAUDE.md 中指定”必须读取”的文件:
## 重要文件路径### 必读文件- src/config/constants.ts # 项目常量定义- src/types/index.ts # 全局类型定义- .eslintrc.js # ESLint 配置### 参考文件- docs/API.md # API 文档- docs/ARCHITECTURE.md # 架构说明
Step 4:分步骤操作大型任务
案例:重构整个表单模块
# 第一步:了解现状@src/components/Form/ 帮我分析这个表单模块的结构# 第二步:制定计划基于上面的分析,帮我制定重构计划,分 3 步走# 第三步:执行第一步按计划执行第一步:提取公共验证逻辑# 第四步:执行第二步执行第二步:组件拆分# 第五步:执行第三步执行第三步:添加 TypeScript 类型
三、高级技巧
技巧 A:使用 /read 命令快速查看文件
/read src/components/Modal.tsx
这会直接读取文件内容到上下文中,比复制粘贴更高效。
技巧 B:结合搜索定位问题
# 先搜索问题所在帮我找 src/ 中所有使用 .innerHTML 的地方,这些可能有 XSS 风险# 然后精准修改帮我修复 src/utils/dom.ts 中的 XSS 问题
技巧 C:利用 Tree-of-Thought 思考复杂问题
对于复杂重构,先让 AI 分析再执行:
# 先分析@src/hooks/ 分析这个目录下所有 Hook 的依赖关系,输出一份依赖图和潜在问题的报告# 再执行根据上面的分析,帮我重构 useAuth 和 useUser 两个 Hook,消除它们的循环依赖问题
四、Token 节省指南
|
|
|
|
|---|---|---|
|
|
|
@path 引用代替 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@src/components/ |
📤 学员带走
**@ 引用语法** — 精准引用单个文件或目录,比复制粘贴更高效 **分步骤操作** — 大型任务拆分为多个小步骤,保持上下文清晰 **Token 节省清单** — 记住每个操作的 Token 消耗,养成高效习惯
💬 公众号内容要点
痛点引入
“为什么 AI 越用越慢?”
刚用 Claude Code 时,它反应飞快、回答精准。但用着用着,AI 开始”变笨”了——回答变得笼统、开始胡编代码、遗漏关键需求。
原因很可能是:你的上下文管理出了问题。
核心对比
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
黄金法则
让 AI 始终看到它需要的信息,不多不少。
📚 相关资源
-
• Claude Code 上下文管理:https://docs.anthropic.com/en/docs/build/claude-code -
• Token 计算器:https://anthropic-tokenizer.netlify.app/ -
• claude-howto 项目:https://github.com/anthropics/claude-code-howto
夜雨聆风