Claude Code 扩展体系
有多种机制可扩展和定制 Claude 的行为:
- CLAUDE.md --- 告诉 Claude 规则,每次会话自动加载
- Memory --- 让 Claude 记住偏好,跨会话持久化,自动关联上下文
- Hooks --- 基于 Claude 事件驱动,由框架自动执行,大模型无感知
- Skill --- 教 Claude 方法,定义触发条件和执行流程
- Plugin --- 给 Claude 装技能包,一个 Plugin 可包含多个 Skill
- MCP --- 给 Claude 装工具,连接外部服务,提供可调用的工具函数
- Agent --- 给 Claude 分身,并行处理独立任务,独立子会话
CLAUDE.md --- 项目规则
每次会话自动加载的指令文件,告诉 Claude 项目约定、架构规范、禁止操作等。
/init扫描项目,自动生成CLAUDE.md/memory可手动编辑CLAUDE.md- 项目根目录的
CLAUDE.md团队共享,提交 git - 用户目录的
~/.claude/CLAUDE.md是个人全局共享,不提交 git
Memory --- 项目持久记忆
跨会话记住用户偏好、项目上下文和反馈经验,下次会话自动关联。
- 存储在
~/.claude/projects/<项目>/memory/下 - 四种类型:
user:用户画像(角色、偏好、知识背景)feedback:行为反馈(用户纠正或确认的做法)project:项目上下文(进行中的工作、决策、deadline)reference:外部引用(外部系统的资源指针)
- 记忆会过时,重要决策以当前代码和 git 为准
Hooks --- 生命周期钩子
事件驱动的自动化,在特定事件自动执行命令,Claude 本身不参与。
配置在 settings.json 的 hooks 中:
json
{
"hooks": {
"PostToolUse": [
{
// matcher 含非字母字符时自动按正则匹配,| 表示匹配多个工具
"matcher": "Edit|Write",
"command": "dart format $FILE_PATH"
}
]
}
}
常用事件:
SessionStart:会话开始UserPromptSubmit:用户提交输入PreToolUse、PostToolUse:工具调用前后PreCompact/PostCompact:上下文压缩前后SubagentStart/SubagentStop:子代理启动、停止Notification:通知时Stop:Claude 停止时
Skill --- 技能
为 Claude 添加专业领域知识和自定义工具,定义触发条件、执行流程和输出格式。
Skill 来源有三种:自定义创建、内置自带、通过 Plugin 安装。
自定义 Skill :在对应目录创建 SKILL.md 文件即可,无需命令
- 用户级:
~/.claude/skills/<名称>/SKILL.md - 项目级:
.claude/skills/<名称>/SKILL.md
启用/禁用 :运行 /skills,选中技能后按 Space 切换状态。也可在 settings.json 中配置 skillOverrides:
json
{
"skillOverrides": {
"my-skill": "off"
}
}
四种状态:
on:启用off:完全禁用name-only:Claude 仅可见名称,省上下文,不会主动调用user-invocable-only:对 Claude 完全隐藏,仅用户手动/调用
Plugin --- 插件
Plugin 是 Skill 的打包分发方式,通过市场(Marketplace)安装和管理。一个 Plugin 可包含多个 Skill。
bash
# 市场管理
/plugin marketplace add xxx # 添加市场源
/plugin marketplace remove xxx # 移除市场源(会卸载其下所有插件)
# 插件管理
/plugin install xxx@yyy # 安装,--scope project 为项目级
/plugin uninstall xxx@yyy # 卸载,--prune 清理依赖,--keep-data 保留数据
/plugin disable xxx@yyy # 禁用(不删除)
/plugin enable xxx@yyy # 启用
/plugin # 可视化管理,Discover/Installed/Marketplaces/Errors
/reload-plugins # 变更后刷新,无需重启
配置写在 settings.json 的
enabledPlugins和extraKnownMarketplaces中。
MCP --- 外部工具
MCP(Model Context Protocol)让 Claude Code 通过标准协议连接外部工具和服务,扩展可调用的工具函数(查询数据库、调用 API、操作文件系统等)。
bash
claude mcp list # 列出已配置的 MCP 服务器
claude mcp add xxx # 在当前项目添加,全局添加 --scope user
claude mcp remove xxx # 移除
claude mcp reset xxx # 重置
/mcp # 查看和管理 view/Reconnect/Disable
MCP 配置写在项目级
.mcp.json或全局~/.claude.json的mcpServers中。
Agent --- 子代理
从主会话中派生出独立的子代理,并行处理不相关的任务,互不干扰。
- 通过
Agent工具创建,支持多种类型 - 适合并行执行独立任务,如同时查两个模块的代码、同时跑测试和分析
- 子代理结果返回主会话,不会污染主上下文
对比总结
| 概念 | 一句话 | 触发方式 | 配置位置 |
|---|---|---|---|
| CLAUDE.md | 告诉 Claude 规则 | 每次会话自动加载 | 项目根目录 / ~/.claude/ |
| Memory | 让 Claude 记住偏好 | 自动关联上下文 | ~/.claude/projects/ |
| Hooks | 事件触发自动执行 | 工具调用等生命周期事件 | settings.json 的 hooks |
| Skill | 教 Claude 方法 | 用户输入匹配触发条件 | .claude/skills/ |
| Plugin | 技能包 | 安装后 Skill 自动可用 | settings.json 的 enabledPlugins |
| MCP | 给 Claude 装工具 | Claude 按需调用工具函数 | .claude.json 的 mcpServers |
| Agent | 给 Claude 分身 | 主会话派生,并行执行 | 运行时动态创建 |
2026-5-20