2026 年 4 月,Uber CTO 公开承认公司 4 个月就烧光了全年的 Claude Code 预算;微软随后取消了大部分内部 Claude Code 许可证。这两件事说明一个事实:Claude Code 确实强大到让企业疯狂使用,但如果不懂配置和省钱技巧,账单会让你心疼。
本文将从 7 个核心配置文件讲起,覆盖 CLAUDE.md 实战写法、Hooks 自动化、Skills 技能包、Dynamic Workflows 动态工作流,最后给出 7 个经过实测的省钱技巧。无论你是刚上手还是已经用了几个月,都能从中找到提升效率、降低成本的方法。
一、7 个核心配置文件速览
Claude Code 的所有配置都住在 ~/.claude/ 目录下。先有个全局认知:
~/.claude/
├── CLAUDE.md # 行为准则(最高优先级)
├── settings.json # 控制面板(API、插件、环境变量、Hook)
├── settings.local.json # 权限白名单(本机专用,不提交 Git)
├── .mcp.json # MCP 外部工具连接配置
├── memory/MEMORY.md # 长期记忆索引
├── skills/ # 技能包目录
└── agents/ # AI 分身(子代理定义)
| 文件 | 作用 | 优先级 |
|---|---|---|
| CLAUDE.md | 定义 Claude 的行为准则、项目背景、编码规范 | 最高 |
| settings.json | API 密钥、启用插件、环境变量、Hook 配置 | 高 |
| settings.local.json | 本机权限白名单,不提交到版本控制 | 高 |
| .mcp.json | 连接外部工具(GitHub、数据库、浏览器等) | 中 |
| memory/ | 跨会话记忆,持久化重要信息 | 中 |
| skills/ | 可复用的标准操作流程 | 按需加载 |
| agents/ | 专职子代理定义 | 按需加载 |
一句话原则:先搞懂 CLAUDE.md + settings.json,再按需扩展 Skills 和 Agents。
二、CLAUDE.md 实战写法
三层架构
Claude Code 会递归读取 CLAUDE.md 文件,从当前目录一直到用户根目录:
| 层级 | 路径 | 作用 |
|---|---|---|
| 用户级(全局) | ~/.claude/CLAUDE.md | 所有项目的个人偏好 |
| 项目级(共享) | ./CLAUDE.md | 团队共享的项目规范 |
| 目录级(嵌套) | 各子目录的 CLAUDE.md | 特定模块的上下文 |
项目级可覆盖用户级,目录级可覆盖项目级。
真实示例
# 项目:电商后台管理系统
## 技术栈
- 后端:Spring Boot 3.2 + MyBatis-Plus
- 前端:Vue 3 + TypeScript + Element Plus
- 数据库:MySQL 8.0 + Redis 7
## 编码规范
- Java 使用 camelCase,常量使用 UPPER_SNAKE_CASE
- 所有 Controller 方法必须有 @Operation 注解(Swagger)
- Service 层不允许直接操作 HttpServletRequest
- 禁止在循环中执行数据库查询
## 禁止事项
- 不要修改 application-prod.yml
- 不要删除任何数据库迁移文件
- 不要使用 @Autowired 字段注入,统一用构造器注入
- 不要提交 .env 或任何包含密钥的文件
## 测试要求
- 新功能必须有单元测试
- Repository 层测试使用 @DataJpaTest
- 提交前执行 mvn test 确保通过
写法原则:规则越具体越好。"用中文回复"比"注意语言"有效 100 倍。用 ## 分大类,用编号列表写规则。
三、Hooks 自动化守卫
Hooks 是事件触发器,在 Claude 执行特定操作时自动执行你的脚本。它不做决策,只负责在特定时机执行检查或阻断。
Hook 类型
| 类型 | 触发时机 | 典型用途 |
|---|---|---|
| PreToolUse | 工具调用前 | 拦截危险命令、文件保护 |
| PostToolUse | 工具调用后 | 自动格式化、lint 检查 |
| Stop | 任务完成时 | 质量门禁、输出检查 |
| SessionStart | 会话启动时 | 环境初始化 |
配置示例
在 .claude/settings.json 中配置:
{
"hooks": {
"PreToolUse": [
{
"tool": "Bash",
"condition": "command.includes('rm -rf') || command.includes('--force')",
"action": "block",
"message": "危险命令被拦截:不允许执行 rm -rf 或 --force 操作"
}
],
"PostToolUse": [
{
"tool": "Write",
"condition": "filePath.endsWith('.ts') || filePath.endsWith('.tsx')",
"action": "run",
"command": "npx eslint --fix ${filePath}"
}
],
"Stop": [
{
"action": "run",
"command": "npm test -- --watchAll=false"
}
]
}
}
一句话总结:Hooks 管"不能做什么"和"做完之后还要做什么"。
四、Skills 技能包
Skills 是可复用的标准操作流程,存放在 ~/.claude/skills/ 目录下:
~/.claude/skills/
├── code-reviewer/
│ └── SKILL.md
├── tdd/
│ └── SKILL.md
└── caveman/
└── SKILL.md
Skills vs Hooks vs Subagents
| 能力 | 类比 | 解决的问题 | 适合场景 |
|---|---|---|---|
| Skills | 作业指导书 | 输出结构稳定、流程可复制 | 审查清单、文档生成、PR 总结 |
| Hooks | 事件触发器 | 流程自动执行、阻断风险 | 格式化、危险命令拦截 |
| Subagents | 专职工种 | 角色边界清晰、并行处理 | 测试、安全审计、文档工程 |
创建自定义 Skill
创建 ~/.claude/skills/deploy-check/SKILL.md:
# 部署前检查 Skill
当用户要求部署或上线时,按以下步骤执行:
## 步骤 1:代码检查
- 运行 `npm test` 确保所有测试通过
- 运行 `npm run lint` 确保无 lint 错误
## 步骤 2:构建验证
- 执行 `npm run build`,确认无编译错误
- 检查构建产物大小是否异常
## 步骤 3:安全扫描
- 检查是否有硬编码的密钥或 token
- 检查 .env.example 是否已更新
## 步骤 4:输出报告
按 PASS/FAIL 输出每项检查结果
触发方式:输入 /deploy-check 或在对话中提及部署相关需求时自动匹配。
推荐 Skills
- caveman:让 Claude 极简输出,省 75% token(GitHub 2万+ Star)
- code-reviewer:标准化代码审查流程
- tdd:测试驱动开发模板
- claude-mem:增强跨会话记忆
五、Dynamic Workflows 动态工作流
2026 年 5 月,Anthropic 随 Claude Opus 4.8 发布了 Dynamic Workflows——这是 Claude Code 最重大的架构升级之一。
核心原理
传统模式下,一个 Agent 从头干到尾,上下文越来越长,效率越来越低。Dynamic Workflows 的做法完全不同:
- 模型编写 JS 编排脚本:Claude 先分析任务,生成一段 JavaScript 调度脚本
- Runtime 执行脚本:脚本由 Claude Code runtime 在后台运行
- 调度多个 Subagents:脚本可以启动数百个子代理并行处理子任务
- 结果聚合:子代理完成后,结果汇总回主 Agent
与传统模式对比
| 维度 | 传统单 Agent | Dynamic Workflows |
|---|---|---|
| 执行方式 | 串行,一个接一个 | 并行,多个 Agent 同时工作 |
| 上下文管理 | 所有信息堆在一个窗口 | 每个 Agent 独立上下文 |
| 适合任务 | 单文件修改、小范围重构 | 大规模重构、跨文件修改、代码审计 |
| 成本特点 | 上下文越长越贵 | 并行 Agent 各自独立计费,总效率更高 |
适用场景
- 大型项目重构(如 JS 迁移到 TypeScript)
- 多文件并行修改(同时改 20 个组件的 API 调用方式)
- 代码审计(一个 Agent 看安全,一个看性能,一个看代码规范)
- 批量生成(同时为 50 个函数写单元测试)
使用方式
你可以直接让 Claude 创建 Workflow:
> 帮我创建一个 workflow,把 src/ 下所有 .js 文件迁移到 TypeScript,
一个 agent 负责类型推断,一个负责改文件名和导入路径,
一个负责验证编译是否通过。
Claude 会生成一个 workflow.js 脚本,定义阶段、循环、并发策略和结果聚合逻辑。然后由 runtime 自动执行。
注意:Dynamic Workflows 上限为 1000 个 subagents。实际使用中,大多数任务 10-50 个并行 Agent 就足够了。
六、7 个省钱技巧(实测有效)
理解一个关键机制:上下文滚雪球。每次对话,Claude 都要重新读取之前所有的聊天记录。实测数据:同一个三词提问,第 1 条消息花费 $0.0018,到第 260 条消息花费 $2.41——相差 1338 倍。
技巧 1:根据任务切换模型
不是所有任务都需要最贵的 Opus。普通代码修改用 Sonnet 就够了,成本差 3-5 倍。
# 切换到 Sonnet(日常任务)
/model sonnet
# 切换到 Opus(复杂架构设计)
/model opus
# 启动时直接指定
claude --model sonnet
技巧 2:控制上下文长度
# 手动压缩对话历史(保留关键信息,删除过程细节)
/compact
# 带指令压缩
/compact 保留代码修改与文件路径,丢弃分析过程
# 切换任务时开启新会话
/clear
建议:每 5-6 轮对话执行一次 /compact。切换到不同模块时用 /clear。
技巧 3:精准提示词
这是投入产出比最高的技巧。对比:
# 差(触发全局搜索,消耗 15000-25000 Token)
帮我看看登录功能有什么问题
# 好(精准定位,消耗 3000-5000 Token)
查看 src/auth/login.ts 第 45 行,JWT 验证里 exp 字段没检查,
加上过期时间校验,过期时抛 AuthExpiredError
指定文件路径 + 行号 + 具体操作,能省 70%-80% 的 Token。
技巧 4:利用 Prompt Cache
Claude 的 Prompt Cache 会缓存稳定的上下文前缀,缓存命中折扣高达 90%。
被缓存的内容(越靠前越容易被缓存):
- 系统提示词(System Prompt)
- CLAUDE.md 内容
- 被加载的 Skills
- MCP 工具定义
- 对话历史的早期部分
实操建议:把项目核心信息写在 CLAUDE.md 里(而不是每次手动输入),这些内容会被自动缓存,后续对话几乎不额外计费。
技巧 5:effortLevel 调节
# 简单任务用低推理深度
/effort low
# 中等复杂度
/effort medium
# 复杂架构决策
/effort high
低 effort 可以减少约 20-30% 的 token 消耗,适合简单的代码修改和格式化任务。
技巧 6:Caveman 模式
安装 caveman skill 后,Claude 的输出会变得极度精简——删除冠词、客套话和一切废话,在不牺牲技术准确性的前提下将输出压缩到极致。
效果对比:
# 正常输出(约 200 tokens)
我已经检查了你的代码,发现了一个潜在的问题。在 handleSubmit 函数中,
你没有对用户输入进行验证就直接发送了 API 请求。我建议添加一个验证步骤...
# Caveman 输出(约 50 tokens)
handleSubmit 缺输入验证。加 validateInput() 在 API 调用前。示例:
if (!validateInput(data)) return showError('输入无效')
省约 75% 的输出 token,而输出 token 的单价是输入的 5 倍。
技巧 7:任务拆分 + 新会话
避免在一个超长会话里做所有事情:
- 一个功能 = 一个会话
- 完成一个模块后
/clear再开下一个 - 大任务拆成小任务,每个任务独立会话
原理:第 1 条消息的成本和第 100 条消息的成本天差地别。保持会话短小,每条消息的成本都在低位。
省钱效果汇总
| 技巧 | 预估节省 | 实施难度 |
|---|---|---|
| 切换模型 | 40-60% | 简单(一行命令) |
| 控制上下文 | 30-50% | 简单(养成习惯) |
| 精准提示词 | 70-80% | 中等(需要知道文件路径) |
| Prompt Cache | 50-90%(缓存命中部分) | 简单(写好 CLAUDE.md) |
| effortLevel | 20-30% | 简单 |
| Caveman 模式 | 75%(输出部分) | 简单(安装 skill) |
| 任务拆分 | 40-60% | 简单(改变习惯) |
七、常用命令速查表
| 命令 | 作用 |
|---|---|
/model sonnet | 切换到 Sonnet 模型(便宜快速) |
/model opus | 切换到 Opus 模型(最强推理) |
/compact | 压缩对话历史,释放上下文空间 |
/clear | 清空当前会话,重新开始 |
/cost | 查看当前会话的 token 消耗和费用 |
/context | 查看当前上下文占用情况 |
/effort low|medium|high | 调节推理深度 |
/vim | 启用 Vim 模式编辑 |
/ide | 与 IDE 联动(VS Code/Trae) |
/memory | 管理跨会话记忆 |
/help | 查看帮助信息 |
claude --continue | 继续上次会话 |
claude --resume <n> | 恢复指定会话 |
claude -p "提示词" | Headless 模式执行单次任务 |
claude update | 更新到最新版本 |
Plan Mode(规划模式)
处理复杂任务时,先让 Claude 制定计划再执行,可以显著减少错误和返工:
> 进入 plan mode,帮我设计用户认证模块的重构方案
Claude 会先分析、制定方案、等你确认后再动手修改代码。
总结
Claude Code 的真正威力不在于"完全自动化",而在于人机协作的无缝衔接。掌握配置系统(CLAUDE.md + Hooks + Skills)让它理解你的工作方式;善用 Dynamic Workflows 处理大规模任务;通过省钱技巧控制成本——这三板斧组合起来,就能把 Claude Code 从一个"烧钱的玩具"变成"真正提效的生产力工具"。
觉得有用?试试我们的其他开发工具:JSON 格式化 | 正则表达式测试 | JWT 解析 | Base64 编解码