一、CLAUDE.md

定义

项目 / 用户级持久系统提示文件,每一次会话启动自动加载,注入模型上下文。

本质:给 Claude 长期记忆,不用每次聊天重复交代项目规则。

加载优先级(由宽→窄,后加载覆盖前者)

  1. 用户全局:~/.claude/CLAUDE.md(本机所有项目生效)
  2. 项目共享:./CLAUDE.md(提交 Git,团队共用)
  3. 本地私有:./CLAUDE.local.md(加入.gitignore,个人本地配置)

能力与特点

✅ 自动加载,全程生效,贯穿整个对话生命周期 ✅ 适合:项目架构、编码规范、构建命令、目录结构、固定约束 ❌ 不适合:多步骤复杂工作流、按需触发功能(这类交给 Skill) ⚠️ 上下文开销:常驻占用上下文窗口,不要无限堆砌内容

示例片段

# 项目基础规则
项目为SpringBoot3 + MyBatis-Plus,统一返回包装类Result<T>
禁止使用e.printStackTrace(),捕获异常抛出BusinessException
代码注释使用JavaDoc,提交前执行mvn spotless:apply

选型建议

凡是每次对话都必须遵守的规则,放到 CLAUDE.md;按需执行的流程不要放这里。


二、Skill(技能)

定义

可按需加载、可复用的模块化指令包,支持斜杠命令 /skillname 手动唤起,也可由模型自动调用。 文件标准:SKILL.md,支持放在项目目录或插件内。

核心特性

  1. 懒加载:会话启动不占用上下文;调用后才载入,结束后可释放
  2. 触发方式
    • 手动:/code-review
    • 自动:模型识别任务匹配描述自动加载
  3. 支持元配置(文件头部 frontmatter)
---
name: code-review
description: 执行代码静态审查,检查规范、安全漏洞
disable-model-invocation: false # true=禁止模型自动调用,只能用户手动执行
---
审查变更代码,重点检查:SQL注入、空指针、事务边界...

使用场景

  • 代码评审、接口文档生成、日志分析、架构梳理
  • 团队标准化工作流,跨项目复用

Skill vs CLAUDE.md 关键区别

表格

CLAUDE.md Skill
会话启动立刻加载,常驻上下文 按需加载,不调用无开销
全局永久生效 临时生效,只本次任务
基础通用约束 专项任务流程

三、Subagent(子代理)

定义

独立隔离的 AI Agent 实例,拥有独立上下文窗口、独立系统提示、独立工具权限;主 Agent 可以委派任务给它。

类比:主工程师把专项任务外包给独立实习生,实习生独立干活,只返回最终摘要,不污染主对话上下文。

核心能力

  1. 上下文隔离:子 Agent 对话历史不会灌入主会话,仅汇总结果传回
  2. 独立权限:可以限制子 Agent 可用工具(只读文件、禁止执行 shell 等)
  3. 支持并行执行:同时启动多个子代理并行分析
  4. 可嵌套:子代理内部还能继续调用 Skill、甚至再拉起子代理

调用方式

  1. 自动委派:主 Agent 判断任务适合专项子代理自动调用
  2. 手动唤起:/agents list 查看、显式调用

典型场景

  • 安全审计子代理、单元测试生成子代理、日志深度分析子代理
  • 耗时、大量探索、产生海量中间信息的任务(避免撑满主上下文)

🔥 极易混淆:Skill VS Subagent(面试高频区分)

表格

Skill Subagent
只是一段 Prompt / 指令集合,运行在主 Agent 内部 独立完整 AI 会话实例,拥有独立上下文
没有独立思考循环,依附主 Agent 执行 拥有独立思考、工具调用循环
适合:操作规范、检查清单、流程模板 适合:复杂多步骤、深度探索、隔离任务
轻量,低开销 较重,启动新模型会话

简单口诀: 流程模板用 Skill;独立专项小组、需要隔离上下文用 Subagent。


四、MCP(Model Context Protocol)模型上下文协议

定义

Anthropic 开源双向标准化协议(JSON-RPC over stdio/websocket/http),Claude ↔ 外部系统的通用桥梁

类比:LSP(语言服务协议)给 IDE 提供代码能力;MCP 给 AI 提供外部数据与工具能力。

架构:客户端 / 服务端

  • Client:Claude Code(内置 MCP 客户端)
  • MCP Server:独立进程,向外暴露工具、资源、提示模板

MCP Server 可以实现:

  • 访问 PostgreSQL、Redis、Git 仓库
  • 对接 Jira、Slack、Github、监控平台
  • 本地自定义脚本、内部业务 API

核心价值

  1. 统一标准,不用为每个系统单独开发集成
  2. 权限集中管控:MCP 服务层限制 AI 能执行哪些操作
  3. 实时外部数据,突破模型静态知识库限制

配置方式

项目 .mcp.json / 插件内置 MCP 服务配置,声明要启动的服务进程。

{
  "mcpServers": {
    "postgres": {
      "command": "node",
      "args": ["./mcp-postgres/server.js"]
    }
  }
}

边界区分

  • MCP ≠ Skill:MCP 提供工具能力;Skill 教模型怎么使用这些工具 例:MCP 提供数据库查询工具;Skill 定义 “如何规范查询、如何校验 SQL”

五、Hooks(生命周期钩子)

定义

事件驱动拦截机制,在 Claude Agent 生命周期关键节点注入自定义逻辑,确定性执行,不受模型随机性影响

类似 Git pre-commit、前端生命周期钩子;用来强制策略、自动化、拦截危险操作。

四大 Hook 类型

  1. command:运行 shell 脚本
  2. http:调用远程接口
  3. prompt:调用模型做条件判断
  4. agent:拉起 subagent 执行校验

常用核心事件

表格

事件 触发时机 典型用途
SessionStart 会话初始化 环境检查、预加载信息
PreToolUse 工具执行之前 ⭐高危命令拦截、权限校验(禁止 rm -rf)
PostToolUse 工具执行完成后 格式化输出、日志上报、自动 lint
UserPromptSubmit 用户发送消息时 输入过滤、内容补全
Stop Agent 准备结束输出 输出规范校验、查漏补缺
SubagentStart / SubagentStop 子代理启停 子任务监控

关键特点

强制执行,不受模型是否 “听话” 影响(Prompt 规则模型可能忽略,Hook 不会) ⚠️ 不要重度业务逻辑;适合安全策略、自动化校验、监控告警

示例配置 hooks.json

json

{
  "PreToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "./scripts/check-danger-cmd.sh"
        }
      ]
    }
  ]
}

六、Plugin(插件)

定义

打包分发容器,把上面所有组件统一封装:Skill、Subagent、Hooks、MCP Server、LSP 服务、样式配置。

Plugin = 扩展分发包,本身不提供能力,承载所有扩展组件。

插件标准目录结构

my-plugin/
├── plugin.json          # 插件清单(名称、版本、描述)
├── skills/              # 存放多个SKILL.md技能
├── agents/              # Subagent定义文件
├── hooks/hooks.json     # 钩子配置
├── .mcp.json            # 内置MCP服务
└── scripts/             # 脚本依赖

作用

  1. 一键安装、卸载、启用 / 禁用整套扩展
  2. 团队、社区共享成套工作流(不再零散复制各种 md、配置)
  3. 作用域隔离:插件能力可以选择全局 / 当前项目生效

运行逻辑

Claude Code 启动时扫描插件目录,自动发现并加载内部 Skill、Agent、Hook、MCP 服务。


组件协作全景流程(一次编码任务)

  1. 新建会话 → 加载 CLAUDE.md
  2. 用户需求触发任务
  3. 模型判断需要代码评审 → 自动加载 Skill(code-review)
  4. Skill 要求查询数据库 → 调用 MCP(postgres) 获取数据
  5. 执行 shell 查询前 → PreToolUse Hook拦截高危命令检查
  6. 识别任务复杂,委派 → 启动 Subagent (安全审计)
  7. 整套能力打包后,可封装为 Plugin 分享给团队

快速选型决策表(开发必看)

  1. 每次会话通用基础规则 → CLAUDE.md
  2. 可复用专项任务流程模板 → Skill
  3. 需要独立上下文、并行、深度专项任务 → Subagent
  4. 需要访问数据库、外部 API、第三方系统 → MCP Server
  5. 需要强制拦截、校验、自动化(不受模型随机影响) → Hooks
  6. 需要打包以上所有组件,分发共享 → Plugin
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐