Claude Code 配置体系 — 学习笔记
学习日期:2026-07-03
主题:AI 编程助手的「调教」架构 — 从 Anthropic 官方设计到可迁移的工程思维
一、为什么这件事值得学
Claude Code 的配置体系,表面上是「怎么让 AI 更听话」,底层其实是在回答一个更通用的问题:
如何把「概率性的 LLM」包装成「可预期的工程工具」?
大多数人对 AI 编程助手的用法还停留在:写一段 prompt,希望它每次都照做。但长对话、上下文压缩、任务切换、安全边界——这些真实场景会迅速击穿这种 naive 方案。
Anthropic 官方把 7 种配置方式拆开讲,本质上是在做关注点分离:什么必须常驻、什么按需加载、什么必须确定性执行、什么可以隔离出去。这套思路不只适用于 Claude Code,任何要落地生产的 Agent 系统都值得借鉴。
二、核心认知:上下文是稀缺资源
在深入每种配置之前,先建立一个底层模型:
1 | 上下文窗口 = 有限的工作台面积 |
所有配置方式的差异,都可以归结为三个问题:
- 什么时候占用了工作台?(加载时机)
- 对话变长、要「收拾桌子」时,它还在不在?(压缩行为)
- 它占多大面积?(token 成本)
很多人配置 AI 助手时的典型错误:把所有想让它知道的东西都塞进 CLAUDE.md。结果不是 AI 变聪明了,而是:
- 简单任务也背着几百行无关规范
- 真正重要的指令被稀释,遵循度下降
- token 账单无声上涨
我的判断:配置 AI 助手和写软件架构一样 — 不是「能塞多少塞多少」,而是「什么信息在什么生命周期里可见」。
三、七种方式,一张心智地图
我不按官方文档顺序记,而是按信息的生命周期来理解:
1 | 会话启动 |
这张地图比记住 7 个名词更重要。遇到新需求时,先问「这条信息属于哪个生命周期」,再选配置方式,而不是反过来。
四、逐层理解 + 个人思考
4.1 CLAUDE.md — 不是百科全书,是索引卡
官方定位:项目手册,放「事实」不放「流程」。
我的理解:
CLAUDE.md 最接近真实团队里的 onboarding 文档 — 新同事第一天需要知道的:用什么技术栈、怎么构建、目录怎么组织、命名有什么规矩。你不会在 onboarding 里塞一份 50 页的部署 runbook,那是运维手册,需要时再去翻。
几个我自己会遵守的原则:
| 原则 | 理由 |
|---|---|
| 200 行以内 | 超出后边际收益为负,指令遵循度反而下降 |
| 只写「不变的事实」 | 技术栈、构建命令、目录约定 — 这些不会随任务变 |
| 用指针代替全文 | 「部署流程见 /deploy skill」比复制粘贴 30 步强 |
| 定期审计 | 项目演进后 CLAUDE.md 容易过时,比没有更糟的是有但错的 |
一个反直觉的点:CLAUDE.md 越精简,AI 表现往往越好。不是因为 AI 变聪明了,而是因为信号噪声比提高了 — 每条指令的「权重」更大。
4.2 Rules — 精准的「地方法规」
Rules 解决的是 CLAUDE.md 覆盖不了的问题:同一条规范,只在特定文件类型 / 路径下生效。
比如「所有 API handler 必须用 Zod 验证」 — 这条规则对前端改 CSS 毫无意义,加载它纯属浪费。Rules 的 paths 作用域就是为此设计的。
和子目录 CLAUDE.md 怎么选?
- 规范绑定一个模块目录 → 子目录 CLAUDE.md 足够
- 规范跨目录生效(如所有
*.test.ts) → 必须用 Rules
我的思考:Rules 本质上是 AI 时代的 .editorconfig / eslint overrides — 按路径施加不同约束。如果你已经在项目里用 lint 规则做分层约束,Rules 的配置思路应该很直觉。
4.3 Skills — 目前最被低估的能力
Skills 的渐进式加载设计,我认为是整个配置体系里最优雅的部分:
1 | 会话开始 → 只加载 Skill 名称 + 一行描述(几乎零成本) |
这意味着你可以定义几十个 Skill — 部署、审查、创建组件、写测试、发版 checklist — 而平时它们不占上下文。
为什么我说它被低估?
大多数人把 Skills 当成「高级 prompt 模板」,但它真正的价值是工作流封装:
- 把重复性、多步骤、需要判断分支的流程固化下来
- 新人(或未来的自己)不需要重新摸索「审查代码要检查哪些点」
- 团队可以共享同一套 Skill,减少「每个人 prompt 写法不同导致结果不一致」
一个需要注意的坑:压缩对话时,已触发的 Skills 会按预算重新注入,最早触发的可能被丢弃。所以一次会话里不要贪多 — 聚焦当前任务,完成后再开新会话触发下一个 Skill。
我的实践方向:任何我做过两次以上的多步骤流程,都值得封装成 Skill。判断标准不是「流程复不复杂」,而是「下次还需不需要重新解释一遍」。
4.4 Subagents — 上下文隔离的利器
Subagent 和 Skill 最容易混淆,我的区分标准很简单:
| Skill | Subagent | |
|---|---|---|
| 执行位置 | 主对话上下文 | 独立上下文窗口 |
| 中间过程 | 可见,可干预 | 不可见,只回结论 |
| 适合场景 | 需要协作、逐步确认 | 调研、搜索、分析类「只要结果」 |
典型 Subagent 场景:
- 在代码库里深度搜索 Bug 根因(中间可能翻几十个文件)
- 分析日志定位性能瓶颈
- 调研某个库有没有替代方案
- 批量迁移(Claude Code 的
/batch本质就是 Subagent 编排)
我的思考:Subagent 解决的是 LLM 上下文窗口的「污染问题」。调研类任务的中间过程可能产生几万 token 的噪音,如果全堆在主对话里,很快就会把真正重要的上下文挤出去。Subagent 相当于把「脏活」外包出去,主对话保持干净。
这跟微服务里的「异步任务队列」思维类似 — 长耗时、高噪音的任务不应该阻塞主流程。
4.5 Hooks — 唯一确定性的一环
前面所有配置方式 — CLAUDE.md、Rules、Skills — 本质上都是给 AI 的建议。AI 大概率会遵循,但在以下情况下可能失效:
- 长对话后上下文被压缩
- 任务复杂,AI 注意力被分散
- 遇到 prompt 注入(文件里藏了恶意指令)
Hooks 不同:它是自动化代码,绑定到 Claude Code 的生命周期事件,触发即执行,不经过 AI 决策。
1 | PreToolUse → 工具调用前(拦截危险操作) |
我认为最值得记住的观点:
「永远不要做 X」不能靠指令保证,必须靠 Hook + 权限双保险。
这跟软件安全里的 fail-closed 设计一脉相承 — 默认拒绝,显式允许。你不会靠注释防止函数被误调用,你会用类型系统和权限检查兜底。AI 助手的安全边界也应该一样。
典型 Hook 用法:
- 编辑文件后自动 Prettier(不依赖 AI 记得格式化)
- 提交前自动 lint
- 拦截删除数据库迁移文件的操作
- 完成任务后发通知
判断标准:「每次 X 后必须做 Y」→ 用 Hook,不要写进 CLAUDE.md。
4.6 Output Styles & Append System Prompt — 轻量调参
这两个我用得少,但理解它们的边界很重要:
Output Styles:
- 注入系统提示词,永不被压缩
- ⚠️ 会替换默认系统提示词 — 内置的安全行为、修改范围判断等会丢失
- 内置 Proactive / Explanatory / Learning 三种,够用就别自定义
Append System Prompt:
- CLI 参数,单次生效,追加而非替换
- 适合临时调整语气或输出格式
- 指令越多遵循度越低,别滥用
我的建议:90% 的场景不需要碰这两个。需要改 AI 行为时,优先想能不能用 Skill 或 Rule 解决。
五、决策框架(我自己的版本)
遇到新需求,我按这个顺序想:
1 | 1. 这是「项目事实」还是「操作流程」? |
六、可迁移到 Agent 系统的设计原则
Claude Code 的配置体系,提炼成 4 条可以迁移到其他 Agent 项目的设计原则:
6.1 事实与流程分离
常驻上下文只放「不变的事实」,可变的多步骤流程按需加载。这直接对应软件工程里的「数据与逻辑分离」。
6.2 渐进式披露(Progressive Disclosure)
不要一次性把所有信息塞给 AI。先给索引,需要时再展开。这和 UI 设计里的 progressive disclosure 是同一个思想 — 减少认知负荷,提高信号质量。
6.3 确定性优于概率性
凡是「必须发生」或「绝对不能发生」的事,不要指望 LLM 的概率性遵循。用 Hook、权限、类型系统、中间件等确定性机制兜底。
6.4 隔离执行,避免污染
长耗时、高噪音的任务(搜索、分析、调研)应该在隔离环境中执行,只把结论带回主流程。这跟分布式系统里的 bulkhead pattern(舱壁模式)同构。
七、对我当前工作的启发
结合 Cursor / Claude Code 的日常使用,我打算做的几件事:
- 审计 CLAUDE.md:把超过 5 行的流程性内容移到 Skills
- 封装重复流程:代码审查、部署检查、新模块脚手架 — 每个做成 Skill
- Rules 按路径分层:API 层、DB 层、前端组件层各一套,避免全局加载
- 关键安全操作用 Hook:不依赖 AI「记得不要删 migration」
- 调研类任务主动用 Subagent:保持主对话上下文干净
八、遗留问题 & 待验证
- Skills 在团队间共享的最佳实践是什么?Git 管理 vs 个人本地?
- Subagent 嵌套 5 层的实际使用场景有哪些?是否过度设计?
- Hook 的性能开销在长会话中是否可感知?
- Output Style 替换默认提示词后,哪些内置行为会丢失?需要实测清单
- 这套配置体系迁移到 Cursor Rules / Skills 时的对应关系
九、一句话总结
配置 AI 编程助手,不是在写更好的 prompt,而是在设计一套信息生命周期管理系统 — 什么常驻、什么按需、什么隔离、什么确定性执行。CLAUDE.md 是索引卡,Skills 是工作流,Subagents 是外包,Hooks 是安全网。搞清楚了这四层,7 种配置方式自然各归其位。
本笔记为个人学习总结,参考了 Anthropic 官方博文《Steering Claude Code》及社区解读,加入了个人理解和工程化思考。


