本教程面向有一定Claude Code使用经验、希望将重复工作流自动化的开发者。你将学习如何构建一个"连接器型"Skill——它不是简单地把指令写在SKILL.md里,而是把多个MCP工具串联成完整的工作流管道。完成后,你能用一条命令触发"搜索→分析→生成报告"这类多步骤自动化任务。
适用人群:已安装Claude Code、了解SKILL.md基础结构、希望将MCP工具整合为可复用工作流的中级用户。
| 条件 | 说明 |
|---|---|
| Claude Code | ≥ v1.0.150(支持Skills 2.0) |
| Node.js | ≥ 18.x |
| MCP服务器 | 至少配置1个(如web-search、filesystem等) |
| 基础知识 | 理解YAML frontmatter、Markdown、Bash |
确认环境:
claude --version
# 期望输出: 1.0.150 或更高
claude mcp list
# 期望看到至少一个已配置的MCP服务器
普通Skill的本质是一段"提示词增强"——告诉Claude按什么规则执行任务。连接器型Skill则更进一步:它定义了多个工具之间的调用顺序、数据流转和异常处理逻辑。
graph LR
A[用户输入] --> B[Skill触发]
B --> C[MCP工具A: 搜索]
C --> D[MCP工具B: 分析]
D --> E[MCP工具C: 生成]
E --> F[输出结果]
style B fill:#f9a825,stroke:#f57f17
style C fill:#42a5f5,stroke:#1565c0
style D fill:#66bb6a,stroke:#2e7d32
style E fill:#ab47bc,stroke:#6a1b9a
| 模式 | 特点 | 适用场景 |
|---|---|---|
| 指令型 | 纯文本指令,无工具依赖 | 代码规范、写作模板 |
| 工具型 | 单个MCP工具封装 | 文件操作、API调用 |
| 连接器型 | 多工具链式编排 | 自动化工作流、数据处理管道 |
本教程聚焦第三种——连接器型Skill,它代表了Skill开发的最高阶形态。
连接器型Skill的核心思路是"Skill作为编排层,MCP工具作为执行层"。
┌─────────────────────────────────────┐
│ SKILL.md (编排层) │
│ 定义: 触发条件、工具调用顺序、 │
│ 数据格式、异常处理 │
├─────────────────────────────────────┤
│ MCP工具链 (执行层) │
│ Tool1 → Tool2 → Tool3 → ... │
│ (搜索) (解析) (生成) │
├─────────────────────────────────────┤
│ 辅助资源 (支撑层) │
│ 模板文件、示例输出、检查清单 │
└─────────────────────────────────────┘
连接器Skill的frontmatter有一个关键字段:tools。它显式声明该Skill需要哪些MCP工具,Claude会在触发时自动确认这些工具可用。
name: tech-research-pipeline
description: >
技术调研管道:从搜索到结构化报告的一站式自动化。
当用户需要调研某个技术主题、生成竞品分析、或编写技术选型报告时触发。
tools:
- WebSearch # 搜索引擎
- Read # 读取本地文件
- Write # 写入输出文件
- Bash # 执行辅助命令
model: sonnet # 平衡速度与质量
effort: high # 高质量输出
字段说明:
| 字段 | 作用 | 本场景取值 |
|---|---|---|
name |
Skill唯一标识 | tech-research-pipeline |
description |
触发匹配依据,写清楚何时激活 | 包含触发场景关键词 |
tools |
声明依赖的MCP工具 | 搜索+文件读写+Shell |
model |
指定推理模型 | sonnet(平衡速度) |
effort |
推理深度 | high(需要深度分析) |
避坑:
description是触发引擎的核心匹配依据。写得越具体,误触发越少。避免使用"当需要帮助时"这类模糊描述。
连接器型Skill通常需要辅助资源文件(模板、示例等),因此需要目录结构而非单文件。
# 在项目根目录或全局skills目录下创建
mkdir -p .claude/skills/tech-research-pipeline
cd .claude/skills/tech-research-pipeline
# 创建核心文件
touch SKILL.md # 主指令文件
touch report-template.md # 报告模板
touch examples.md # 示例输出
最终目录结构:
.claude/skills/tech-research-pipeline/
├── SKILL.md # 核心指令 + frontmatter
├── report-template.md # 报告结构模板
└── examples.md # 质量基准示例
为什么需要辅助文件? 连接器Skill的输出质量高度依赖于"示例"和"模板"。Claude在生成时会参考这些文件作为质量锚点,确保每次输出一致性。
这是整个Skill的灵魂。一个优秀的连接器SKILL.md包含四个部分:
name: tech-research-pipeline
description: >
技术调研自动化管道。当用户提到"调研"、"技术选型"、
"竞品分析"、"对比分析"或需要生成结构化研究报告时触发。
支持从搜索到完整报告的一键生成。
tools:
- WebSearch
- Read
- Write
- Bash
model: sonnet
effort: high
# 技术调研管道
你是一个技术调研助手。当用户提出调研需求时,
严格按照以下四阶段管道执行。
## 阶段一:需求确认(必须)
在开始搜索之前,必须向用户确认以下信息:
1. **调研主题**:具体要调研什么技术/产品?
2. **调研目的**:技术选型?竞品分析?学习了解?
3. **关注维度**:性能?成本?生态?学习曲线?
4. **输出格式**:Markdown报告?对比表格?架构建议?
如果用户已经提供了部分信息,只确认缺失项。
不要重复已知信息。
## 阶段二:多源搜索
确认需求后,执行以下搜索策略:
### 搜索指令模板
对每个关注维度,使用 WebSearch 搜索:
- "[技术名] 2026 [维度] review/benchmark/comparison"
- "[技术名] vs [替代方案] [维度]"
- "[技术名] production experience lessons"
### 搜索规则
1. 每个维度至少搜索2次,不同关键词组合
2. 优先搜索官方文档、GitHub仓库、技术博客
3. 记录每个信息源的URL,用于引用
4. 如果搜索结果不足,扩大关键词范围
### 信息提取
从搜索结果中提取:
- 核心数据和指标
- 社区评价和实际使用经验
- 已知问题和限制
- 版本更新和路线图
## 阶段三:结构化分析
将搜索结果按以下框架组织:
| 维度 | 技术A | 技术B | 胜出 | 置信度 |
|------|-------|-------|------|--------|
| 性能 | ... | ... | ... | 高/中/低 |
| 生态 | ... | ... | ... | 高/中/低 |
| ... | ... | ... | ... | ... |
分析要求:
- 每个结论必须有信息源支撑
- 标注信息的时效性(2025/2026)
- 区分"官方声称"和"社区实测"
- 对冲突信息标注"待验证"
## 阶段四:报告生成
参考 `report-template.md` 的结构生成最终报告。
参考 `examples.md` 的质量水平。
### 报告必须包含
1. 执行摘要(200字以内)
2. 调研方法说明
3. 分维度详细分析
4. 对比矩阵表格
5. 推荐结论(含置信度)
6. 信息来源列表(可点击链接)
7. 后续建议
### 输出规则
- 将报告写入文件:`research-[主题]-[日期].md`
- 日期格式:YYYY-MM-DD
- 使用 Bash 确认文件写入成功
- 向用户展示执行摘要
## 异常处理
- 搜索无结果:告知用户,建议调整关键词
- 信息冲突:标注两方观点,给出置信度判断
- 工具不可用:告知用户缺少哪个MCP工具,给出安装指引
为什么把"需求确认"作为第一阶段?
连接器Skill处理的是复杂工作流,用户需求往往模糊。如果跳过确认直接搜索,可能导致大量无效工作。确认阶段是"低成本纠错"的关键节点。
为什么搜索要分维度执行?
单次宽泛搜索的召回率低。按维度拆分搜索词,每个维度2次不同关键词组合,能显著提升信息覆盖面。这是连接器Skill相比手动操作的核心优势——系统化的搜索策略。
为什么需要引用模板文件?
通过 Read 工具读取 report-template.md 和 examples.md,Claude生成的报告会有更一致的结构和质量。这比在SKILL.md中内联大段模板更高效,因为:
- 模板可以独立迭代
- SKILL.md保持简洁
- 不同项目可复用相同模板
report-template.md# [技术主题] 调研报告
> 调研日期:YYYY-MM-DD | 调研目的:[目的]
## 执行摘要
[200字以内的核心结论]
## 调研方法
- 信息来源数量:X篇
- 搜索时间范围:2025-2026
- 评估维度:[列出维度]
## 详细分析
### [维度一:性能]
#### [技术A]
- 关键数据:...
- 来源:[URL]
#### [技术B]
- 关键数据:...
- 来源:[URL]
#### 维度小结
[综合分析,200字]
### [维度二:生态]
[同上结构]
## 对比矩阵
| 维度 | [技术A] | [技术B] | 优势方 |
|------|---------|---------|--------|
| 性能 | ... | ... | ... |
| 生态 | ... | ... | ... |
| 学习曲线 | ... | ... | ... |
## 推荐结论
**推荐**:[技术X]
**置信度**:[高/中/低]
**理由**:[基于上述分析的推荐理由]
## 信息来源
1. [标题](URL)
2. [标题](URL)
examples.md# 质量基准示例
## 好的分析段落示例
> React Server Components在大型电商项目中表现出色,
> 首屏加载时间从2.3s降至0.8s(Vercel官方基准测试)。
> 但社区反馈指出,在复杂交互场景下,hydration
> 仍可能成为瓶颈(GitHub issue #4821,2025年11月)。
> 综合来看,SSR优先的架构适合内容驱动型应用。
**特征**:有数据、有来源、有社区视角、有综合判断。
## 差的分析段落示例(避免)
> React比较好,因为用的人多。Vue也行。
**问题**:无数据支撑、无来源、过于笼统。
# 进入任意项目目录
cd ~/my-project
# 确认skill已被识别
claude skills list
# 期望输出中包含 tech-research-pipeline
# 触发skill(两种方式)
# 方式1:自然语言触发
claude "帮我调研一下Bun和Deno的性能对比"
# 方式2:直接调用(如果配置了自定义命令)
claude /tech-research "Bun vs Deno性能对比"
| 检查项 | 验证方法 | 常见问题 |
|---|---|---|
| Skill被识别 | claude skills list |
路径错误或frontmatter格式问题 |
| 正确触发 | 查看Claude是否进入四阶段流程 | description写得不够具体 |
| 工具可用 | 查看是否调用WebSearch | MCP服务器未启动 |
| 模板被引用 | 检查输出是否遵循模板结构 | Read工具无权限 |
| 报告生成 | 检查是否写入md文件 | Write路径不存在 |
问题1:Skill未被触发
# 检查skill位置
ls .claude/skills/tech-research-pipeline/SKILL.md
# 验证frontmatter格式
head -20 .claude/skills/tech-research-pipeline/SKILL.md
# 确保frontmatter在---之间,YAML格式正确
问题2:工具调用失败
# 检查MCP服务器状态
claude mcp list
# 如果WebSearch不可用,检查配置
cat ~/.claude/mcp_servers.json
问题3:输出质量不稳定
这是连接器Skill最常见的挑战。解决方案:
- 在examples.md中增加更多高质量示例
- 在SKILL.md中增加"负面约束"("不要...")
- 调整effort字段为high
连接器Skill的真正威力在于条件逻辑。以下是如何在SKILL.md中实现分支:
## 条件搜索策略
根据调研目的选择不同搜索路径:
### 技术选型(purpose = "selection")
1. 搜索"技术名 production benchmark 2026"
2. 搜索"技术名 migration guide from [现有技术]"
3. 搜索"技术名 known issues limitations"
### 竞品分析(purpose = "competitor")
1. 搜索"技术名 vs competitor comparison 2026"
2. 搜索"技术名 market share growth"
3. 搜索"技术名 funding roadmap"
### 学习调研(purpose = "learning")
1. 搜索"技术名 getting started guide"
2. 搜索"技术名 best practices tutorial"
3. 搜索"技术名 architecture deep dive"
这种条件分支让同一个Skill适应多种场景,无需为每种场景创建单独的Skill。
## 搜索失败恢复
如果某个维度的搜索无有效结果:
绝对不要:编造数据、使用过时信息(2年以上)而不标注。
以下展示完整的使用流程,从输入到最终报告。
> 帮我做一个技术选型调研,对比Next.js和Nuxt 3,
> 我们要做电商官网,关注SEO、性能和开发效率。
sequenceDiagram
participant U as 用户
participant S as Skill
participant W as WebSearch
participant R as Read
participant WR as Write
U->>S: 触发调研需求
S->>U: 确认4项信息
U->>S: 补充确认
Note over S: 阶段二:多源搜索
S->>W: SEO维度搜索(2次)
W-->>S: 返回结果
S->>W: 性能维度搜索(2次)
W-->>S: 返回结果
S->>W: 开发效率搜索(2次)
W-->>S: 返回结果
Note over S: 阶段三:分析
S->>R: 读取report-template.md
R-->>S: 模板内容
S->>R: 读取examples.md
R-->>S: 质量基准
Note over S: 阶段四:生成
S->>WR: 写入research-nextjs-nuxt3-2026-05-27.md
WR-->>S: 写入成功
S->>U: 展示执行摘要
## 执行摘要
基于18个信息源的综合分析,对于电商官网场景:
**推荐 Next.js 14+**(置信度:高)
核心依据:
- SEO:两者均支持SSR/SSG,Next.js的App Router提供更精细的
缓存控制,电商场景下TTFB优势约15%
- 性能:Nuxt 3在bundle size上略优(平均小12%),
但Next.js的Streaming SSR对商品列表页加载体验更优
- 开发效率:Next.js生态更大(npm包3.2x),
但Nuxt 3的auto-import减少样板代码
完整报告已保存至:research-nextjs-nuxt3-2026-05-27.md
# 在项目仓库中包含skill
git add .claude/skills/tech-research-pipeline/
git commit -m "Add tech research pipeline skill"
# 复制到全局skills目录
cp -r .claude/skills/tech-research-pipeline/ \
~/.claude/skills/
在团队的CLAUDE.md中添加指引:
## 团队Skills
本项目包含以下自定义Skills:
- `tech-research-pipeline`:技术调研管道,
使用 `/tech-research` 或自然语言触发
Skills 2.0支持通过skill-creator内置的Evals框架验证连接器Skill的质量。
在Skill目录下创建evals/子目录:
mkdir -p .claude/skills/tech-research-pipeline/evals
创建测试用例文件 evals/basic-research.json:
{
"name": "基础调研能力测试",
"trigger": "帮我调研React和Vue的性能对比",
"expect": {
"stages_completed": ["confirm", "search", "analyze", "generate"],
"output_file_created": true,
"min_sources": 4,
"has_comparison_table": true,
"has_recommendation": true
}
}
# 使用skill-creator运行eval
claude /skill-creator eval tech-research-pipeline
评估维度:
| 维度 | 指标 | 合格线 |
|---|---|---|
| 触发准确率 | 正确触发/总相关请求 | ≥ 90% |
| 阶段完整率 | 完成阶段数/4 | ≥ 75% |
| 输出结构 | 匹配模板字段比例 | ≥ 80% |
| 信息密度 | 有效来源数/总来源数 | ≥ 60% |
| ## 连接器Skill设计原则总结 |
mindmap
root((连接器Skill))
架构设计
明确工具依赖
分阶段执行
条件分支
错误恢复
触发优化
具体description
覆盖同义词
避免误触发
质量保障
模板锚定
示例基准
Evals验证
分发复用
项目级
全局级
团队共享
tools字段列出所有依赖,Claude会在执行前检查可用性examples.md展示期望输出,比写10条规则更有效| 训练营类型 | 适用性 | 建议教学时长 |
|---|---|---|
| Claude Code入门营 | 不适合(需先掌握基础操作) | — |
| Claude Code进阶营 | 高度适合 | 3-4小时(含实操) |
| 企业定制营(自动化方向) | 核心模块 | 4-6小时(含团队定制) |
| MCP开发营 | 作为补充模块 | 2小时(连接器模式速览) |
教学建议:本教程的"四阶段管道"可作为课堂演示项目。学员跟随操作,从零构建,90分钟可完成基础版。后续可挑战添加条件分支、Evals验证等高级功能。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
