Skills + Hooks + Plugins:Anthropic 如何重新定义 AI 编程工具的扩展性

Skills + Hooks + Plugins:Anthropic 如何重新定义 AI 编程工具的扩展性

分享:

你有没有过这样的体验:

GitHub Copilot 写代码,想让它遵守团队的 PR 规范,只能在每次对话开头反复粘贴那一大段提示词。

Cursor 开发项目,想在提交代码前自动跑一遍 lint,得手动配置复杂的 .cursorrules 文件,还不确定它会不会生效。

或者,你想让 AI 助手连接公司内部的数据库、API、知识库,结果发现根本没有统一的接入标准,只能自己写一堆胶水代码。

这些痛点的本质是什么?

AI 编程工具的扩展性,还停留在"配置文件时代"。

而 Anthropic 用 Claude CodeSkills + 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 的核心特性:

  1. 自动激活:Claude 会根据对话内容自动判断是否需要加载某个 Skill,不需要你手动调用
  2. 轻量级:每个 Skill 在未激活时只占用 30-50 个 token
  3. 可组合:你可以为不同的场景编写不同的 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、测试、文档、部署)

一些有意思的社区贡献:

  1. 无障碍开发插件:为神经多样性用户优化的界面和提示
  2. 企业合规插件:自动检查代码是否符合 GDPR、SOC2 等合规要求
  3. 多语言文档生成器:一键生成支持 10+ 种语言的 API 文档
  4. 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 助手面临两个核心挑战:

  1. 记忆问题:每次对话都是无状态的,AI 不记得你上次说的规范
  2. 约束问题: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 模型如何连接外部工具和数据源。

为什么这很重要?

  1. 打破生态壁垒:MCP 服务器可以被任何支持 MCP 的工具使用(Claude.ai、Claude Code、甚至未来的竞品)
  2. 避免重复造轮子:社区已经构建了数百个 MCP 服务器(GitHub、Linear、Notion、PostgreSQL...)
  3. 企业友好:企业可以为内部系统构建 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 自己

这是一个自我强化的飞轮:

  1. 用户需要新功能
  2. AI 帮你生成插件
  3. 插件让 AI 更强大
  4. 更强大的 AI 能生成更好的插件
  5. 循环往复

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 Nexus Team

AI Nexus Team

@hunterzhang86

15 分钟阅读

类别