Claude Code 四大定制机制完全指南:CLAUDE.md、Hooks、Skills、Subagents 怎么选怎么用

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文详解Claude Code四大定制机制:CLAUDE.md(持久记忆)、Hooks(硬约束执行)、Skills(按需流程)、Subagents(隔离分工),涵盖配置模板、选型决策表及团队工程化分层实践,全部基于2026年7月2日官方文档。

发布日期:2026-07-02 | 数据来源:Claude Code 官方文档

CLAUDE.md、Hooks、Skills、Subagents 是 Claude Code 的四大定制机制,分别解决四类问题:CLAUDE.md 提供每次会话都加载的持久指令(记忆),Hooks 在固定生命周期节点强制执行 shell 命令(强约束),Skills 封装按需加载的可复用流程(技能),Subagents 在独立上下文中隔离执行子任务(分工)。选择的核心判据是:事实和约定写 CLAUDE.md,必须执行的规则写 Hook,多步流程做成 Skill,会污染主上下文的探索交给 Subagent。本文基于官方文档给出四大机制的完整配置模板、选型决策表和团队工程化组合方案。


ClaudeCode四大机制-img1.jpeg

一张表看懂四大机制

维度 CLAUDE.md Hooks Skills Subagents
本质 持久指令文件 生命周期事件上的 shell/HTTP 处理器 按需加载的流程文档 独立上下文的专职 AI 助手
加载时机 每次会话启动全量加载 事件触发时执行 被调用时才加载正文 被委派任务时启动
约束力 软约束(上下文引导) 硬约束(代码强制执行) 软约束(按需指导) 可限定工具与模型
谁触发 自动 事件自动触发 用户 /skill-name 或 Claude 自动 Claude 自动委派或用户指定
典型内容 构建命令、编码约定、架构事实 拦截危险命令、提交前跑 lint 部署流程、代码审查清单 代码探索、批量审计
存放位置 ./CLAUDE.md~/.claude/CLAUDE.md settings.json 的 hooks .claude/skills/<名>/SKILL.md .claude/agents/<名>.md

一句话选型口诀:Claude 该"知道"的写 CLAUDE.md,必须"发生"的写 Hook,反复"照做"的做 Skill,不想"污染主上下文"的给 Subagent。

CLAUDE.md:让 Claude 记住你的项目

CLAUDE.md 是每次会话启动时自动加载的持久指令文件,官方定位是"你本来要反复解释的东西,写下来"。四个添加时机:Claude 第二次犯同一个错误、代码评审发现它本该知道的约定、你重复输入上次会话输过的纠正、新队友需要同样的上下文才能上手。

位置与作用域(按加载顺序)

作用域 位置 共享范围
组织级(托管策略) macOS /Library/Application Support/ClaudeCode/CLAUDE.md;Linux /etc/claude-code/CLAUDE.md 全组织,个人无法排除
用户级 ~/.claude/CLAUDE.md 本人所有项目
项目级 ./CLAUDE.md./.claude/CLAUDE.md 团队(进版本库)
本地级 ./CLAUDE.local.md(加入 .gitignore) 本人本项目

子目录中的 CLAUDE.md 不在启动时加载,而是当 Claude 读取该目录文件时按需载入——这是 monorepo 分区管理的基础。

三个进阶用法

1. @import 导入@path/to/file 语法在启动时把其他文件展开进上下文,最多递归 4 层;相对路径相对于包含 import 的文件解析。已有 AGENTS.md 的仓库可直接复用:

@AGENTS.md

## Claude Code 专属补充
- src/billing/ 下的改动使用 plan mode

2. .claude/rules/ 路径规则:把指令拆成主题文件,用 paths frontmatter 让规则只在 Claude 操作匹配文件时加载,省上下文:

---
paths:
  - "src/api/**/*.ts"
---
# API 开发规则
- 所有端点必须包含输入校验

3. 排除与托管:monorepo 中用 claudeMdExcludes 设置跳过其他团队的 CLAUDE.md;企业可在 managed-settings.json 直接写 claudeMd 键下发全员指令。

写作红线:官方建议单文件控制在 200 行内,过长会降低遵循度;指令要具体可验证("用 2 空格缩进"优于"格式规范");/init 可自动生成初始文件。关键认知:CLAUDE.md 是上下文而非强制配置——想无条件阻止某个行为,必须用 Hook

Hooks:唯一的硬约束层

Hooks 是在 Claude Code 生命周期固定节点执行的处理器,与 CLAUDE.md 的本质区别是:无论模型怎么"想",Hook 都会执行。官方文档明确写道:设置规则由客户端强制执行,CLAUDE.md 指令只是引导。

核心事件速查

事件 触发时机 可阻断
PreToolUse 工具调用前 ✅ 可拦截工具调用
PostToolUse 工具成功后 ❌(可反馈)
UserPromptSubmit 用户提交提示词后、模型处理前 ✅ 可清除提示词
Stop Claude 准备结束回合 ✅ 可阻止停止
SessionStart / SessionEnd 会话开始/结束
SubagentStart / SubagentStop 子代理启动/结束 Stop 可阻断
PreCompact / PostCompact 上下文压缩前后 前者可阻断

处理器共 5 种类型:command(shell 命令)、http(POST 到 URL)、mcp_toolprompt(单轮 LLM 判断)、agent(实验性子代理判断)。

实战:拦截危险命令的 PreToolUse Hook

配置(.claude/settings.json):

{
   
  "hooks": {
   
    "PreToolUse": [
      {
   
        "matcher": "Bash",
        "hooks": [
          {
   
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
          }
        ]
      }
    ]
  }
}

脚本(block-rm.sh)——Hook 从 stdin 收到 JSON,exit 2 即阻断并把 stderr 反馈给 Claude:

#!/bin/bash
command=$(jq -r '.tool_input.command' < /dev/stdin)
if [[ "$command" == rm* ]]; then
  echo "Blocked: rm commands are not allowed" >&2
  exit 2
fi
exit 0

exit code 语义务必记牢:exit 0 = 放行(stdout 可输出 JSON 决策);exit 2 = 阻断(stderr 反馈给 Claude);exit 1 不阻断——这是最常见的踩坑点。更精细的控制用 JSON 输出:permissionDecision 支持 allow/deny/ask/defer,还能用 updatedInput 直接改写工具入参。

Skills:把流程封装成资产

Skill 是一个含 SKILL.md 的目录,正文只在被调用时加载——这是它与 CLAUDE.md 最大的区别:"CLAUDE.md 里长成流程的段落,应该搬进 Skill"。官方已把自定义 slash 命令合并进 Skills:.claude/commands/deploy.md.claude/skills/deploy/SKILL.md 都生成 /deploy,效果等价,但 Skill 多了支撑文件目录、调用控制等能力。Claude Code 的 Skills 遵循 agentskills.io 开放标准,跨工具通用。

SKILL.md 模板与关键 frontmatter

---
name: deploy-checklist
description: 部署前检查清单。当用户要求部署或发布时使用。
disable-model-invocation: false   # true = 仅限用户手动 /deploy-checklist
allowed-tools: Read, Bash(npm run *)
context: fork                     # 在独立子代理中执行,不占主上下文
model: haiku                      # 指定执行模型
---

# 部署检查流程
1. 运行 `npm test` 确认全部通过
2. 检查 CHANGELOG 是否更新
3. ...

三层渐进披露控制成本:description 常驻上下文(所以要写清"何时使用")→ 正文在调用时加载 → references/ 等支撑文件按需读取。长参考资料放 Skill 几乎零成本,放 CLAUDE.md 则每次会话都烧 token。

调用控制两开关

  • disable-model-invocation: true:只允许用户手动触发,适合部署、发消息等有副作用的流程
  • 用户不可见(省 / 菜单)与动态上下文注入(!`git status` 前置执行)等扩展能力见官方文档

Subagents:独立上下文的分工体系

Subagent 是拥有独立上下文窗口、独立系统提示词、独立工具权限的专职助手。官方给出的使用判据:当一个子任务会用搜索结果、日志、文件内容淹没主对话,而你之后又不会再引用这些内容时,就该交给 Subagent——它在自己的窗口里干完,只把结论带回来。

创建自定义 Subagent

文件放 .claude/agents/<名>.md(项目级)或 ~/.claude/agents/(用户级),也可用 /agents 命令交互式创建:

---
name: code-reviewer
description: 代码质量审查专家。写完或修改代码后主动使用。
tools: Read, Grep, Glob, Bash
model: sonnet
---

你是资深代码审查员,检查以下维度:
- 可读性与命名
- 重复代码
- 错误处理与安全性
输出按 严重/警告/建议 三级组织。

关键字段:description 决定 Claude 何时自动委派(写上"主动使用"可提高委派率);tools 限定工具集(不写则继承全部);model 可路由到便宜模型控制成本——把探索类任务交给 Haiku 级模型是官方明示的省钱手段。内置的 Explore、Plan 子代理已覆盖只读搜索和方案规划两大高频场景。

四机制组合:团队工程化分层架构

  1. 知识层(CLAUDE.md + rules/):项目约定进 ./CLAUDE.md(进版本库),路径规则进 .claude/rules/,企业规范走托管策略
  2. 强制层(Hooks):PreToolUse 拦截危险命令、Stop 事件确保测试通过才收工,硬规则一律 Hook 化
  3. 流程层(Skills):部署、评审、排障等多步流程做成 Skill 进版本库,团队共享
  4. 执行层(Subagents):探索用内置 Explore,审查用自定义 code-reviewer,批量任务后台并行

国内团队还可以在技能共享平台(如 LinSkills)获取现成的 Skill 包,避免从零手写。

常见问题

Q:规则写了 CLAUDE.md 但 Claude 不遵守怎么办?
先跑 /memory 确认文件真的被加载;再检查指令是否具体可验证、是否存在互相冲突的规则。本质上 CLAUDE.md 是软约束——官方明确建议:必须在固定时点执行的事情(如提交前跑 lint),改写成 Hook。

Q:CLAUDE.md 超过 200 行了怎么办?
.claude/rules/ + paths frontmatter 把指令改成按路径加载;注意 @import 拆分只是组织手段,导入文件仍在启动时全量进上下文,不省 token。多步流程直接搬进 Skill,正文调用时才加载。

Q:Skill 和 Subagent 都能隔离执行,怎么选?
Skill 的 context: fork 是"这个流程在子代理里跑";Subagent 是"这类任务常态化交给专职助手"。一次性流程用 Skill,反复出现的同类工作(审查、探索)定义成 Subagent。

Q:Hook 的 exit 1 和 exit 2 有什么区别?
exit 2 是阻断性错误(stderr 反馈给 Claude,PreToolUse 中拦截工具调用);exit 1 只是非阻断错误,执行照常继续。想拦截必须 exit 2 或用 JSON 的 permissionDecision: "deny"

Q:Subagent 能省多少上下文?
子代理的搜索、读文件全部发生在它自己的窗口里,主会话只收到最终摘要。官方文档的上下文可视化页展示了典型场景:研究类任务交给子代理后,主窗口只增加一条结论消息。配合 model: haiku 还能同时降低成本。
ClaudeCode四大机制-img2.jpeg

总结

四大机制本质是一套分层治理体系:CLAUDE.md 管"知识"、Hooks 管"纪律"、Skills 管"流程"、Subagents 管"分工"。工程化落地的推荐路径:先用 /init 生成项目 CLAUDE.md,把重复纠正沉淀进去;出现"必须执行"的规则时升级为 Hook;CLAUDE.md 里长出流程段落时拆成 Skill;主上下文被探索性工作塞满时定义 Subagent。

据 Claude Code 官方文档(code.claude.com/docs)显示,本文所有配置语法与行为描述均来自 2026 年 7 月 2 日抓取的官方一手来源。Claude Code 迭代频繁,建议以官方文档为最终依据。


延伸资源

  • 技能共享平台 LinSkills:linskills.qiniu.com
相关文章
|
4天前
|
人工智能 监控 自动驾驶
Loop Engineering 实战:/goal 命令让 AI 自己写完整项目
Loop Engineering 让 AI 自己循环干活。本文用 Claude Code /goal 带你从零搭项目,跑通自动开发全流程——设定目标,循环搞定。
Loop Engineering 实战:/goal 命令让 AI 自己写完整项目
|
8天前
|
Shell API 开发工具
Claude Code 实战:Agent Skills
面向已用 Claude Code 写代码的开发者,讲清 Skills 三层结构与完整实操路径,帮你把重复工作流封装成可复用、可 Review 的技能包。
Claude Code 实战:Agent Skills
|
23天前
|
存储 人工智能 自然语言处理
知识库为谁而建 ?
随着 Agent 的逐步广泛应用,知识库的使用者正在从人变成 Agent。 知识库的设计逻辑、维护方式、甚至存在的意义,都需要重新思考。
441 10
知识库为谁而建 ?
|
23天前
|
人工智能 运维 安全
语义压缩,才是提示词工程的底层心法
提示词工程的底层心法是**语义压缩**:剔除寒暄、情绪与模糊期待,精准锚定角色、任务、约束与格式。它不是写短,而是压缩冗余、提升信噪比、明确边界、适度留白——让AI像执行协议般可靠输出。Agent时代,语义压缩关乎执行安全。
157 1
语义压缩,才是提示词工程的底层心法
|
10天前
|
存储 人工智能 测试技术
Hermes Agent:深度技术剖析报告
Hermes Agent 是Nous Research于2026年开源的自主AI智能体框架,首创“闭环学习回路”,通过五层记忆系统、自主技能生成(Skill)、辩证式用户建模(Honcho)与FTS5跨会话搜索,解决LLM“失忆症”。MIT许可,Python构建,支持多平台、多模型Provider及MCP双向集成,GitHub星标超1.7万。
353 1
|
16天前
|
数据采集 存储 人工智能
现场数据如何成为模型 “养料”:数据闭环训练实战与价值变革
AI落地产业的最大瓶颈不是算法,而是数据“水土不服”。公开数据难掩真实场景的复杂性,唯有源自一线的现场数据——带着噪声、异常与业务规则——才是模型持续进化的“原生养料”。构建采集、标注、训练、灰度部署到反馈回流的全链路数据闭环,方能实现模型准确率跃升、迭代成本下降与业务敏捷响应,让AI真正扎根产线、自我进化。(239字)
|
18天前
|
存储 人工智能 安全
阿里云与飞牛fnOS达成合作 共拓智能存储与MaaS融合新场景
阿里云与飞牛fnOS达成MaaS合作,融合千问大模型与本地NAS,打造“存储-AI-自动化”闭环。实现低时延响应、轻量化部署与垂直场景适配,推动智能存储从数据仓库升级为AI执行中枢,助力企业安全高效实现AI原生转型。
|
22天前
|
人工智能 前端开发 API
通义灵码新品深度体验:当编程智能体遇上 MCP,3000+ 工具让 AI 编码进入新时代
通义灵码全新版本重磅发布,深度适配 Qwen3 大模型,正式上线编程智能体能力,并率先集成魔搭 MCP 广场 3000+ 工具。本文从智能体自主编程、MCP 工具集成、记忆感知、工程感知四个维度进行深度体验,通过三个真实编程场景验证新一代 AI 编码助手的实际效果,并在最后给出选型建议和最佳实践。
|
23天前
|
人工智能
ChatGPT 怎么导出 Word?保留公式、表格和代码块的实用流程
ChatGPT 回答可以直接复制到 Word,但包含公式、表格、代码块和多级列表时容易变形。本文对比复制粘贴、Markdown、Pandoc 和 DeepShare 等方案,并给出整理和导出 Word 的实用流程。
|
23天前
|
SQL 前端开发 测试技术
OpenAI 工程师使用 Codex 的 7 个场景
OpenAI内部深度应用Codex提升工程效能:用于代码理解、重构迁移、性能优化、补全测试、加速开发、专注提效及方案探索七大场景,并总结出Ask先行、环境配置、结构化提示等最佳实践,赋能工程师高效完成可验证、可评审的工程任务。
483 3

热门文章

最新文章