Skills + Hooks + Plugins:Anthropic 如何重新定义 AI 编程工具的扩展性
你有没有过这样的体验:
用 GitHub Copilot 写代码,想让它遵守团队的 PR 规范,只能在每次对话开头反复粘贴那一大段提示词。
用 Cursor 开发项目,想在提交代码前自动跑一遍 lint,得手动配置复杂的 .cursorrules 文件,还不确定它会不会生效。
或者,你想让 AI 助手连接公司内部的数据库、API、知识库,结果发现根本没有统一的接入标准,只能自己写一堆胶水代码。
这些痛点的本质是什么?
AI 编程工具的扩展性,还停留在"配置文件时代"。
而 Anthropic 用 Claude Code 的 Skills + Hooks + Plugins 三位一体架构,给出了一个让人眼前一亮的答案。
为什么扩展性这么重要?
在深入技术细节之前,我们先聊聊为什么扩展性对 AI 编程工具如此关键。
通用的 AI 助手只能做通用的事情:补全代码、解释错误、生成测试。但真实的开发场景千差万别:
- 你的团队可能有独特的代码规范(Google Style Guide、Airbnb Style)
- 你的项目可能依赖特定的框架和工具链(Next.js、Django、Kubernetes)
- 你的企业可能有内部系统需要对接(JIRA、GitLab、内部 API)
- 你的工作流可能需要特殊的自动化(提交前检查、部署流程、安全扫描)
如果 AI 助手不能适应这些差异,它就永远只能是一个"玩具",而不是真正的生产力工具。
这就是为什么 Claude Code 的扩展性设计如此重要——它不是为了"炫技",而是为了让 AI 真正融入你的工作流。
Skills + Hooks + Plugins:三位一体的设计哲学
Claude Code 的扩展性建立在三个核心概念上,它们各司其职,又紧密配合:
Skills:知识的传递
Skills 是什么?
Skills 就像是你给 AI 助手的"培训手册"。它告诉 Claude:
- 我们团队的 PR 应该怎么写
- 我们的数据库 schema 是什么样的
- 这个项目的架构是如何设计的
- 遇到某类问题应该如何处理
Skills 的核心特性:
- 自动激活:Claude 会根据对话内容自动判断是否需要加载某个 Skill,不需要你手动调用
- 轻量级:每个 Skill 在未激活时只占用 30-50 个 token
- 可组合:你可以为不同的场景编写不同的 Skills,它们可以协同工作
一个真实的例子:
---
name: pr-review-standards
description: 我们团队的 PR 审查标准
when: 当用户要求审查 PR 或创建 PR 时
---
# PR 审查标准
## 必须检查的项目:
1. 代码风格:遵循 Airbnb JavaScript Style Guide
2. 测试覆盖:新代码必须有单元测试,覆盖率不低于 80%
3. 文档:public API 必须有 JSDoc 注释
4. 性能:避免不必要的重渲染(React.memo、useMemo)
5. 安全:不能有硬编码的密钥或敏感信息
## PR 描述格式:
- **Summary**: 3-5 句话总结改动
- **Test Plan**: 如何测试这些改动
- **Screenshots**: 如果有 UI 改动,附上截图
有了这个 Skill,Claude 在审查 PR 时就会自动按照你团队的标准来检查,而不是用它的"通用知识"。
Hooks:规则的执行
Hooks 是什么?
如果说 Skills 是"建议",那么 Hooks 就是"强制执行"。
Hooks 是在特定事件发生时自动运行的脚本,它可以:
- 拦截 AI 的行为并做检查
- 注入额外的上下文信息
- 验证输出是否符合规范
- 在工具调用前后执行自定义逻辑
Claude Code 支持的 Hook 事件:
| Hook 类型 | 触发时机 | 典型用途 |
|---|---|---|
UserPromptSubmit | 用户提交提示词时 | 注入上下文、日志记录、安全检查 |
PreToolUse | 工具调用前 | 权限验证、参数校验 |
PostToolUse | 工具调用后 | 结果验证、日志记录 |
Stop | Claude 准备退出时 | 质量检查、自动化任务(lint、test) |
SubagentStop | 子代理完成时 | 审查子代理的输出 |
一个强大的例子:Stop Hook 实现自动质量门禁
#!/bin/bash
# hooks/stop-hook.sh
echo "🔍 Running quality checks before session ends..."
# 1. 运行 linter
if ! npm run lint; then
echo "❌ Lint failed. Please fix the issues."
exit 2 # 返回 2 会阻止 Claude 退出,让它修复问题
fi
# 2. 运行测试
if ! npm test; then
echo "❌ Tests failed. Please fix the issues."
exit 2
fi
# 3. 检查是否有未提交的改动
if [[ -n $(git status --porcelain) ]]; then
echo "⚠️ You have uncommitted changes. Consider creating a commit."
fi
echo "✅ All quality checks passed!"
exit 0
这个 Hook 确保了每次 Claude 完成工作时,代码都经过了 lint 和测试。如果检查失败,Claude 会自动修复问题,而不是把烂摊子留给你。
这就是 "Skills 建议,Hooks 执行" 的精髓。
Plugins:生态的聚合
Plugins 是什么?
Plugins 是 Skills + Hooks + MCP 服务器 + 自定义命令的打包分发机制。
它解决了一个核心问题:如何把你的定制化工作流分享给团队或社区?
一个 Plugin 的典型结构:
my-plugin/
├── .claude-plugin/
│ └── plugin.json # 插件元数据
├── skills/ # Skills 定义
│ ├── code-review.md
│ └── commit-message.md
├── hooks/ # Hook 脚本
│ ├── stop-hook.sh
│ └── user-prompt-submit.sh
├── commands/ # 自定义命令
│ └── deploy.sh
└── .mcp.json # MCP 服务器配置
安装只需一条命令:
/plugin install my-plugin@my-org
团队里的每个人都能立即获得统一的工作流和规范。
真实案例:看看别人怎么用
案例一:Sionic AI - 每天运行 1000+ 机器学习实验
Sionic AI 是一家专注于大模型训练的公司,他们用 Claude Code Skills 管理复杂的 ML 训练流程。
他们的挑战:
- 每天要在不同的 GPU 集群上运行大量实验
- 需要协调多个框架:ms-swift、vLLM、DeepSpeed
- 失败的实验路径需要被记录,避免重复踩坑
他们的解决方案:
创建了一系列 Skills 来封装训练知识:
---
name: grpo-training
description: GRPO 训练流程,使用 vLLM 服务器和 A100 GPU
---
## 硬件配置
- GPU: NVIDIA A100-SXM4-80GB x 8
- 框架: ms-swift + vLLM + DeepSpeed ZeRO2
## 训练步骤
1. 启动 vLLM 推理服务器
2. 配置 GRPO 训练参数
3. 监控 GPU 显存使用
4. 处理 OOM 错误(已知的失败路径)
## 常见问题
[记录了 20+ 个失败案例和解决方案]
结果:
团队成员只需要告诉 Claude "运行 GRPO 训练",Claude 就能自动:
- 选择正确的硬件配置
- 设置正确的框架参数
- 避开已知的失败路径
- 处理常见的错误
这让他们的实验效率提升了数倍。
案例二:社区插件生态的爆发式增长
截至 2026 年初,Claude Code 的插件生态已经有:
- 500+ 官方和社区插件
- 270+ 内置的 Agent Skills
- 140+ 专业化工具集(DevOps、测试、文档、部署)
一些有意思的社区贡献:
- 无障碍开发插件:为神经多样性用户优化的界面和提示
- 企业合规插件:自动检查代码是否符合 GDPR、SOC2 等合规要求
- 多语言文档生成器:一键生成支持 10+ 种语言的 API 文档
- CI/CD 集成包:一站式集成 GitHub Actions、GitLab CI、Jenkins
与竞品对比:为什么 Claude Code 的设计更先进?
让我们对比一下三大 AI 编程工具的扩展性:
GitHub Copilot:封闭生态 + GitHub 中心
扩展方式:
- Copilot Extensions(需要 GitHub 审核和托管)
- Skillsets(轻量级任务配置)
- Agents(复杂集成)
优势:
- 与 GitHub 生态深度整合
- 企业级安全和权限管理
- 官方维护的 SDK 和工具
局限:
- 必须在 GitHub 生态内工作
- 插件需要经过审核
- 对非 GitHub 用户不友好
- 扩展分发需要依赖 GitHub Marketplace
适用场景: 如果你的工作流完全在 GitHub 上,Copilot 是不错的选择。
Cursor:嵌入式规则 + VS Code 兼容
扩展方式:
.cursorrules文件(项目级规则)- User Rules(全局偏好设置)
- 支持 MCP 服务器
优势:
- 规则写在代码仓库里,易于版本控制
- 学习曲线低,就是写 Markdown
- 基于 VS Code,可以用现有插件
局限:
- 规则只是"建议",不能强制执行
- 没有事件驱动的 Hook 机制
- 难以实现复杂的自动化流程
- 规则激活依赖 LLM 理解,不可靠
适用场景: 如果你想要简单的规则定制,又不需要复杂的自动化,Cursor 够用了。
Claude Code:开放标准 + 三位一体架构
扩展方式:
- Skills(知识传递)
- Hooks(规则执行)
- Plugins(生态聚合)
- MCP(开放工具协议)
优势:
- 真正的开放标准:MCP 协议可以被任何工具采用
- 强制执行能力:Hooks 可以阻止不符合规范的行为
- 完整的生命周期覆盖:从提示提交到会话结束,每个环节都可控
- 可编程性强:Hook 是真正的可执行脚本,不依赖 LLM 理解
- 社区驱动:任何人都可以发布插件,无需审核
局限:
- 学习曲线稍陡(需要理解 Skills、Hooks、Plugins 的区别)
- 生态还在快速发展中,标准可能变化
- 需要一定的脚本编写能力
适用场景: 如果你需要深度定制、团队协作、或者构建复杂的自动化工作流,Claude Code 是最佳选择。
设计哲学的差异:为什么 Anthropic 的架构更先进?
让我们从第一性原理来分析这三种设计。
问题的本质:AI 助手的"记忆"与"约束"
AI 助手面临两个核心挑战:
- 记忆问题:每次对话都是无状态的,AI 不记得你上次说的规范
- 约束问题:AI 可能会"忘记"或"误解"你的要求,做出不符合规范的事
三种工具的解法:
| 工具 | 记忆解法 | 约束解法 | 本质 |
|---|---|---|---|
| Cursor | 把规则写在文件里,每次注入上下文 | 依赖 LLM 理解规则 | "提示工程" |
| Copilot | 通过 Skillsets 注入上下文 | 依赖 GitHub 平台能力 | "平台锁定" |
| Claude Code | Skills 动态激活 | Hooks 强制执行 | "分层架构" |
Cursor 的问题: 规则只是"建议",LLM 可能会误解或忽略,尤其是在长对话中。
Copilot 的问题: 依赖 GitHub 生态,离开 GitHub 就玩不转。
Claude Code 的优势:
- Skills 处理"知识"层(What & How)
- Hooks 处理"执行"层(Must & Must Not)
- MCP 处理"工具"层(Can Connect)
- Plugins 处理"分发"层(How to Share)
这是一个清晰的分层架构,每一层各司其职。
开放 vs 封闭:MCP 协议的战略意义
Claude Code 的另一个关键优势是 MCP(Model Context Protocol)。
MCP 是 Anthropic 发布的开放标准,它定义了 AI 模型如何连接外部工具和数据源。
为什么这很重要?
- 打破生态壁垒:MCP 服务器可以被任何支持 MCP 的工具使用(Claude.ai、Claude Code、甚至未来的竞品)
- 避免重复造轮子:社区已经构建了数百个 MCP 服务器(GitHub、Linear、Notion、PostgreSQL...)
- 企业友好:企业可以为内部系统构建 MCP 服务器,一次编写,到处使用
对比一下:
- Copilot Extensions:只能在 GitHub Copilot 中使用,封闭生态
- Cursor Rules:只是文本规则,不涉及工具连接
- MCP:开放协议,可以被任何工具采用
这就像是 USB 接口的出现——在此之前,每个设备都有自己的专有接口;有了 USB,所有设备都可以通用。
MCP 有可能成为 AI 工具连接外部世界的"USB 接口"。
最佳实践:如何用好 Skills + Hooks + Plugins?
基于社区的实践经验,这里有一些经过验证的最佳实践:
1. Skills:清晰的 WHEN 描述
Skill 的激活依赖描述的精确性。一个好的 Skill 描述应该包含:
---
name: database-schema-expert
description: WHEN user asks about database schema, table relationships, or SQL queries. WHEN NOT dealing with frontend or API logic.
---
关键点:
- 明确 WHEN(什么时候激活)
- 明确 WHEN NOT(什么时候不激活)
- 避免模糊的描述
社区测试显示,使用 WHEN + WHEN NOT 模式的 Skills 激活准确率达到 80-84%,而普通描述只有 50%。
2. Hooks:优雅的退出码设计
Hook 脚本的退出码有特殊含义:
exit 0:成功,继续执行exit 1:失败,但允许继续exit 2:失败,阻止继续,要求修复
典型应用:
#!/bin/bash
# Stop Hook: 确保代码质量
npm run lint
if [ $? -ne 0 ]; then
echo "Lint failed. Claude will fix the issues."
exit 2 # 阻止退出,强制修复
fi
npm test
if [ $? -ne 0 ]; then
echo "Tests failed. Claude will fix the issues."
exit 2
fi
exit 0 # 一切正常,允许退出
3. Plugins:模块化组合
不要试图把所有功能塞进一个巨型 Plugin。相反,创建小而专注的 Plugins,然后组合使用:
{
"plugins": [
"@myteam/code-review", // PR 审查规范
"@myteam/commit-message", // 提交信息规范
"@myteam/security-scan", // 安全检查
"@myteam/deploy-workflow" // 部署流程
]
}
这样每个 Plugin 都可以独立维护和更新。
4. MCP:优先使用社区服务器
在编写自己的 MCP 服务器之前,先搜索社区是否已有现成的:
常用的 MCP 服务器:
- GitHub: PR、Issues、代码搜索
- Linear: 任务管理
- Notion: 知识库访问
- PostgreSQL/MySQL: 数据库查询
- Slack: 消息和通知
未来展望:生态的力量
2026 年 1 月,Claude Code 的插件生态正在经历爆发式增长。
一些值得关注的趋势:
1. 企业级插件的涌现
越来越多的企业开始构建内部插件,包括:
- 合规检查(GDPR、HIPAA、SOC2)
- 安全扫描(依赖漏洞、敏感信息检测)
- 内部系统集成(ERP、CRM、内部 API)
2. 垂直领域的专业化
出现了针对特定领域的插件套装:
- Web3 开发:Solidity 审查、Gas 优化、安全检查
- 移动开发:iOS/Android 规范、性能优化、上架检查
- 数据工程:ETL 流程、数据质量、SQL 优化
- DevOps:基础设施即代码、监控告警、事件响应
3. AI 生成的插件
Anthropic 发布了一个元插件:plugin-development,它可以帮助你创建新插件。
这意味着:AI 可以创建工具来增强 AI 自己。
这是一个自我强化的飞轮:
- 用户需要新功能
- AI 帮你生成插件
- 插件让 AI 更强大
- 更强大的 AI 能生成更好的插件
- 循环往复
4. 标准化的胜利
随着 MCP 协议的推广,我们可能会看到:
- 其他 AI 工具开始支持 MCP
- 企业构建统一的工具接入层
- 跨工具的插件复用
这就像当年的 LSP(Language Server Protocol)——现在几乎所有编辑器都支持 LSP,你不需要为每个编辑器重写代码高亮和补全。
MCP 可能会成为 AI 工具的 LSP。
结语:扩展性的本质是"控制权"
回到文章开头的问题:为什么扩展性这么重要?
因为扩展性的本质是控制权。
在没有扩展性的工具里,AI 拥有控制权——它决定如何理解你的需求,如何执行任务,如何输出结果。你只能"请求",不能"要求"。
而有了 Skills + Hooks + Plugins,控制权回到了你手里:
- Skills 让你控制 AI 的知识:它知道什么,不知道什么
- Hooks 让你控制 AI 的行为:它能做什么,不能做什么
- Plugins 让你控制 AI 的能力:它连接什么工具,使用什么资源
- MCP 让你控制 AI 的生态:它如何与世界互动
这不是"驯化" AI,而是让 AI 成为真正的协作伙伴——它有自己的能力,但尊重你的规则。
而这,才是 AI 编程工具应该有的样子。
相关资源:
评论
还没有评论。成为第一个评论的人!
相关工具
相关文章
如何审查 AI 生成的代码?Claude Code 作者的 3 个实战经验
AI 写代码很快,但你真的敢直接用吗?Claude Code 作者 Boris 分享了 3 个经过验证的代码审查技巧,帮你在效率和质量之间找到平衡点。
Claudesidian:让 Obsidian 变成 AI 驱动的第二大脑
通过 Claudesidian 这个开源项目,将 Obsidian 笔记系统与 Claude Code 完美结合。内置 PARA 方法、自定义命令、自动化工作流,从想法到实现的完整解决方案。
Cursor vs GitHub Copilot: 2026 完整对比
深入对比 Cursor 和 GitHub Copilot。通过详细的功能分析、定价和实际测试,发现哪个 AI 编程助手最适合你的工作流程。