Claude Code 5个高阶技巧,90%的开发者不知道
- 引言
- Hack 1: CLAUDE.md 是项目简报,不是设置文件
- Hack 2: Hook 强制执行 CLAUDE.md 只能请求的事
- Hack 3: ultrathink 一个词改变 Claude 回答前做的事
- Hack 4: /compact 加焦点指令,不做盲压缩
- Hack 5: 子 Agent 保持主 Session 干净
- 五步实操计划
引言
在 Claude Code 终端里输入 “ultrathink”,你的模型会在回答前获得大约 32,000 个 token 的推理预算。在 claude.ai 网页聊天里输入同样的词,什么都不会发生。
这个差距——Claude Code 实际能做什么 vs 大多数开发者知道它能做什么——正是这五个技巧存在的地方。
大多数开发者用 Claude Code 的方式是在循环里跑:打一个提示,Claude 改文件,再打一个提示。这是聊天模式,大概只用到了 20% 的能力。
剩下的 80% 没有被隐藏,只是文档化得不够好。
Hack 1: CLAUDE.md 是项目简报,不是设置文件
创建 CLAUDE.md,把项目信息放进去,Claude 在每次会话开始时读取它——这是最常见的建议。
但大多数教程跳过的是:你放什么进去至关重要,而且大多数人放得太多了。
CLAUDE.md 里的指令是建议性的。Claude 大概 80% 的情况下会遵守。这个数字不是猜的——Anthropic 自己的最佳实践文档说,如果 Claude 没有某条指令也能做对,就删掉那条指令。它是噪音。
正确使用 CLAUDE.md 的方式是把当做一个给新承包商的简报:技术栈、项目结构、什么不能碰、编码约定。不是政策,不是规则——那些放别的地方(见 Hack 2)。
几条实用测试:
- 「如果删了这一行,Claude 会犯错吗?」 如果不会,删掉。
- 「这个能放到另一个文件里,等 Claude 需要时才读吗?」 如果能,移过去,用
@filename引用。 - 「这是规则还是偏好?」 规则放 Hook,偏好放这里。
CLAUDE.md 太长时,埋在底部的指令开始被忽略。更短不是懒惰——是确保重要的东西真正被记住的方式。
Hack 2: Hook 强制执行 CLAUDE.md 只能请求的事
这是改变你思考如何控制 Claude Code 的那一个技巧。
CLAUDE.md 里的每条指令都是一个请求。Claude 读到它,尝试遵守,偶尔不遵守。这对风格偏好没问题,但对「永远不要 force-push 到 main」或「改完文件一定跑 linter」来说不行。
Hook 解决了这个问题。
它们是确定性的。100% 触发,没有例外。不是因为 Claude 决定遵守——因为它们是代码,不是指令。
Claude Code Hook 在 Agent 生命周期的特定节点运行:工具运行前、完成后、提交提示时、Claude 完成响应后。最有用的是 Stop hook——Claude 每完成一轮对话、等待你下一次输入时触发。
这个 hook 在每次 Claude 回应后运行。不需要指令。不需要指望 Claude 记住。 每次编辑自动过 linter,报错回到会话里,Claude 修复它们。
Hook 能做的四件实用的事:
- Claude 等待权限时发送桌面通知,让你可以走开
- 在写入敏感文件(.env、.git/)之前拦截
- Claude 写完任何文件后立即运行格式化
- 自动跑测试套件,失败结果喂回会话
Hook 配置在 .claude/settings.json,可以是 Shell 脚本、Python 脚本或 HTTP 调用。一旦设好,它们在每个会话里安静地后台运行,不需要你多想。
Hack 3: ultrathink 一个词改变 Claude 回答前做的事
当你正常问 Claude Code 一个问题时,它读你的提示然后开始生成响应。思考和输出在同一个流里发生。
Extended thinking 把这两个阶段分开。
Claude 先推理问题,探索方法,考虑边界情况,然后才写回答。你看到更好的推理,因为模型在提交答案之前确实做了推理。
Claude Code 有触发短语,分配不同的思考预算:
| 短语 | 推理 Token 预算 |
|---|---|
| “think” 或 “think about it” | 基础 |
| “think hard” 或 “think deeply” | 更多 |
| “ultrathink” | 约 32,000 tokens |
一个词。放在你 prompt 的任何位置。
注意: 这只在 Claude Code 终端里有效。在 claude.ai 网页聊天里输入 “ultrathink” 什么都没发生。这是 Claude Code 特定的功能,不是通用的 Claude 技巧。
使用前的两个诚实提醒:
- Extended thinking 比标准响应消耗更多 token。个人项目差异可以忽略,团队每天几十个任务就积少成多了。把它留给值得的问题:架构决策、已经花了你几个小时的 bug、触及关键路径的重构。
- 简单任务上没用。用 ultrathink 重命名一个变量只是更慢更贵。匹配思考级别和问题复杂度。
不要把 ultrathink 加到每个 prompt 里。留给那些已经花了你时间的问题。
Hack 4: /compact 加焦点指令,不做盲压缩
这是列表里最小的改动,也是改善日常工作最明显的。
Claude Code 有上下文窗口限制——一次能保持在工作记忆里的内容有限。长会话会填满它,性能下降。/compact 压缩对话历史来腾空间。
大多数人跑 /compact 然后接受 Claude 产生的任何总结。会话继续,但 Claude 已经丢失了那些重要的细节。
更好的版本:
/compact focus on the auth refactor and the schema changes we made to users table
这一句话告诉 Claude 压缩时保留什么。不是笼统的整场会话总结,而是保留那些重要的决策,丢掉那些来回对话的噪音。
值得作为焦点包含的内容:
- 改了哪些文件以及为什么
- 出现了什么错误以及如何解决的
- 做了什么决策(选了 Postgres 而不是 Redis、决定暂时不加索引)
- 还有什么在进行中
compact 总结会成为会话剩下的「记忆」。给它好的输入,它会产生 Claude 真正能用的东西。
Hack 5: 子 Agent 保持主 Session 干净
这是架构级别的技巧。设置时间最长,回报也最大。
当 Claude Code 在你的主 session 里做探索性工作时——读几十个文件理解代码库、跑搜索追踪 bug、扫描测试输出——所有这些都会填满你的上下文窗口。等 Claude 完成探索时,你的上下文已经半满,全是研究时才需要的文件内容。
子 Agent 通过隔离工作解决了这个问题。
子 Agent 是一个独立的 Claude 实例,有自己的上下文窗口、系统提示和工具权限。在 .claude/agents/ 里定义:
# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: Reviews code quality and security. Use proactively after code changes.
model: claude-sonnet-4-6 # 便宜的模型做审查,Opus 留给主工作
tools:
- Read
- Glob
- Grep
---
你是一个资深代码审查者。关注安全漏洞、实现可能漏掉的边界情况、
以及任何违反团队约定的内容。返回带行号的具体问题列表。
这个文件存在后,Claude Code 自动把审查任务路由给子 Agent。审查在隔离的上下文里完成,返回总结,你的主 session 保持专注在构建上。
比并行更重要的一点:子 Agent 防止失败尝试污染上下文。
当 Claude 试了某事但没有成功时,失败的尝试会在上下文里积累。它们会把未来的回答往错误的方向拉。把探索性工作推给子 Agent,意味着你的主 session 永远不会看到那些死胡同。
几个实际好用的子 Agent 用途:
- 只读代码库探索(映射仓库而不修改主上下文)
- 验证(独立的 Agent 检查实现是否真的解决了问题)
- 代码审查(路由到便宜的模型,Opus 留在主工作上)
- 日志分析(筛选长输出,返回相关部分)
五步实操计划
今天就能做的五步:
第一步:打开你的 CLAUDE.md,删掉所有 Claude 没有也能做对的指令。大多数 CLAUDE.md 里至少 30% 是无用指令。
第二步:选一条必须执行的规则(如「改文件后跑 lint」),移到 Hook 里。测试确认 100% 触发。
第三步:这周遇到硬问题时,在 prompt 末尾加上 “ultrathink” 再试一次。
第四步:下次 /compact 时加 focus。对比有焦点和无焦点的压缩结果。
第五步:建一个 code-review 子 Agent,指向便宜的模型。Claude 会自动在改代码后触发审查。
从第一步开始。大多数 CLAUDE.md 文件至少 30% 的指令是 Claude 不需要的。把那些删掉,剩下的指令会更可靠。