来源:Claude Code 官方文档 · Anthropic Agent SDK | 整理时间:2026-04-19
概述
Claude Code 2026 引入了 Skills 和 Hooks 两大新特性,让 AI 助手能够实现自动化工作流和技能复用。本教程详细介绍如何配置和使用这些功能,帮助你构建高效的开发工作流。
核心概念
| 概念 | 说明 | 使用场景 |
|---|---|---|
| Skills | 可复用的技能模块,封装常用操作 | PDF 处理、图表分析、PPT 生成 |
| Hooks | 事件驱动的自动化系统 | Git 操作、文件变更、定时任务 |
| MCP 集成 | 连接外部工具和服务的协议 | GitHub、数据库、API 集成 |
Skills 实战指南
1. 创建第一个 Skill
在项目根目录创建 skills 目录,定义你的技能:
# skills/content-generation-skill.yaml
name: 内容生成技能
description: "根据需求自动生成内容摘要和标题"
steps:
- name: 分析输入
type: file-read
path: input.md
- name: 生成摘要
type: prompt
prompt: |
请分析以下内容,生成 200 字以内的摘要和 5 个关键词:
{{content}}
格式:
## 摘要
[摘要内容]
## 关键词
1. [关键词1]
2. [关键词2]
3. [关键词3]
- name: 保存结果
type: file-write
path: output.md
content: "{{generated_summary}}"
2. 使用 CLAUDE.md 定义 Skills
在项目根目录创建或编辑 CLAUDE.md 文件:
# 项目工作流配置
## 内容生成工作流
- 使用技能 `content-generation-skill`
- 支持 Markdown 和 Word 文档输入
- 自动生成 SEO 优化标题和摘要
## 代码审查工作流
- 使用技能 `code-review-skill`
- 检查代码规范和安全问题
- 生成改进建议报告
3. 实际应用示例
# 创建项目初始化技能
claude skills create init-project <<EOF
name: 项目初始化
description: "创建新项目的基础结构"
steps:
- name: 创建目录结构
type: execute
command: "mkdir -p src/{components,utils,styles} docs tests"
- name: 生成 package.json
type: template
template: |
{
"name": "{{project_name}}",
"version": "1.0.0",
"scripts": {
"dev": "npm run dev",
"build": "npm run build",
"test": "npm test"
}
}
output: "package.json"
- name: 创建 .gitignore
type: template
template: |
node_modules/
.env
dist/
output: ".gitignore"
EOF
# 使用技能初始化项目
claude skills run init-project --project-name my-awesome-app
Hooks 自动化指南
1. Git Hooks 配置
创建 hooks 目录,配置 Git 相关的自动化:
// hooks/on-commit.json
{
"name": "代码检查钩子",
"event": "git.commit",
"branches": ["main", "develop"],
"actions": [
{
"type": "run-skill",
"skill": "lint-check",
"description": "运行 ESLint 检查"
},
{
"type": "run-skill",
"skill": "test-suite",
"description": "运行测试套件"
},
{
"type": "notification",
"channel": "slack",
"message": "代码检查完成,请查看结果"
}
]
}
2. 文件变更 Hooks
// hooks/on-file-change.json
{
"name": "文档自动更新钩子",
"event": "file.change",
"patterns": ["docs/**/*.md"],
"actions": [
{
"type": "run-skill",
"skill": "update-toc",
"description": "更新目录结构"
},
{
"type": "run-skill",
"skill": "check-links",
"description": "检查链接有效性"
}
]
}
3. 定时任务 Hooks
// hooks/daily-report.json
{
"name": "日报生成钩子",
"event": "timer",
"schedule": "0 18 * * *",
"actions": [
{
"type": "run-skill",
"skill": "generate-daily-report",
"description": "生成工作日报"
},
{
"type": "send-email",
"to": "team@example.com",
"subject": "每日工作总结",
"template": "daily-report.html"
}
]
}
MCP 集成实践
1. 安装 MCP 服务器
# 全局安装 GitHub MCP 服务器
claude mcp add github npx @modelcontextprotocol/server-github
# 安装数据库 MCP 服务器
claude mcp add postgres npx @modelcontextprotocol/server-postgres postgresql://localhost/mydb
# 安装文件系统 MCP 服务器
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem
2. 创建 MCP 集成技能
# skills/github-integration-skill.yaml
name: GitHub 集成技能
description: "与 GitHub API 集成的自动化技能"
mcp_servers:
- github
steps:
- name: 检查 PR 状态
type: mcp-call
server: github
command: "get_pull_request"
params:
repo: "{{repo_name}}"
number: "{{pr_number}}"
- name: 自动评论
type: mcp-call
server: github
command: "create_comment"
params:
repo: "{{repo_name}}"
number: "{{pr_number}}"
body: "自动检查完成,代码质量良好!"
- name: 更新状态
type: mcp-call
server: github
command: "create_status"
params:
repo: "{{repo_name}}"
sha: "{{pr_sha}}"
state: "success"
description: "自动检查通过"
3. 实际工作流示例
# 创建 PR 检查工作流
claude workflow create pr-check <<EOF
name: PR 自动检查
description: "对新 PR 进行自动代码检查和评论"
skills:
- github-integration-skill
- code-quality-check
hooks:
- event: git.pull_request.open
actions:
- run-skill: github-integration-skill
params:
repo_name: "my-org/my-repo"
pr_number: "{{pr_number}}"
- event: git.pull_request.review
actions:
- run-skill: code-quality-check
params:
pr_diff: "{{pr_diff}}"
pr_files: "{{pr_files}}"
EOF
高级用法
1. 技能组合和依赖
# skills/complex-workflow.yaml
name: 复杂工作流
description: "多个技能组合的复杂工作流"
depends:
- data-processing-skill
- analysis-skill
steps:
- name: 数据预处理
type: run-skill
skill: data-processing-skill
input: "{{raw_data}}"
output: "processed_data.json"
- name: 数据分析
type: run-skill
skill: analysis-skill
input: "{{processed_data}}"
output: "analysis_report.html"
- name: 生成报表
type: template
template: |
# 分析报告
{{analysis_report}}
生成时间:{{timestamp}}
output: "final_report.md"
2. 条件判断和分支
// hooks/conditional-workflow.json
{
"name": "条件工作流",
"event": "file.change",
"conditions": [
{
"field": "file.path",
"operator": "matches",
"value": "src/**/*.js"
}
],
"actions": [
{
"type": "if",
"condition": "{{file.size}} > 1000",
"then": [
{
"type": "run-skill",
"skill": "large-file-check"
}
],
"else": [
{
"type": "run-skill",
"skill": "quick-lint"
}
]
}
]
}
最佳实践
1. 技能设计原则
- 单一职责:每个技能只做一件事,保持简洁
- 输入输出标准化:使用统一的输入输出格式
- 错误处理:包含完整的错误处理和回退机制
- 文档化:为每个技能编写详细的文档
2. Hooks 配置建议
- 事件驱动:合理使用事件触发,避免不必要的运行
- 条件过滤:使用条件减少无效触发
- 异步处理:对于耗时操作使用异步执行
- 日志记录:记录所有操作便于调试
3. MCP 集成最佳实践
- 服务器管理:合理配置 MCP 服务器的生命周期
- 连接安全:使用环境变量存储敏感信息
- 超时设置:为 MCP 调用设置合适的超时时间
- 重试机制:实现自动重试机制处理临时失败
故障排除
常见问题
技能不执行
- 检查技能配置语法
- 确认技能文件路径正确
- 查看 Claude Code 日志
MCP 连接失败
- 检查 MCP 服务器是否正确安装
- 验证连接参数和权限
- 查看 MCP 服务器日志
Hooks 不触发
- 确认事件配置正确
- 检查条件判断逻辑
- 验证文件权限和路径
调试技巧
# 启用调试模式
claude --debug
# 测试单个技能
claude skills test content-generation-skill
# 查看 MCP 服务器状态
claude mcp list
# 查看工作流状态
claude workflow status
总结
Skills 和 Hooks 是 Claude Code 2026 的两大核心功能,它们让 AI 助手从被动响应工具转变为主动的自动化工作流引擎。通过合理使用这些功能,可以显著提升开发效率和代码质量。
记住:
- Skills 用于封装可复用的操作
- Hooks 用于实现事件驱动的自动化
- MCP Skills 用于连接外部服务
- 组合使用可以构建强大的自动化工作流
下一步建议尝试创建你的第一个 Skills,并配置一个简单的 Git Hook,体验这些强大功能带来的便利。