Skills: 技能组合与编排
最后更新:2026-08-31
单个 Skill 解决单个问题——组合起来的 Skill 解决复杂问题。
1. 组合模式
(1) 技能链(Pipeline)
顺序执行多个 Skill,前一个输出是后一个输入:
TEXT
📖 仅展示
技能链示例:代码提交全流程
代码审查 → 自动修复 → 运行测试 → 更新文档 → 提交代码
↓ ↓ ↓ ↓ ↓
审查报告 修复补丁 测试报告 文档更新 commit ID
(2) 技能矩阵(Matrix)
多个 Skill 并行执行,结果汇总:
TEXT
📖 仅展示
技能矩阵示例:全面质量检查
┌→ 安全扫描 ─┐
代码变更 ──┤→ 性能分析 ─┤→ 质量报告
└→ 风格检查 ─┘
(3) 条件编排
根据条件选择执行路径:
TEXT
📖 仅展示
条件编排示例:智能部署
变更类型判断:
├── 文档变更 → 只更新文档
├── 测试变更 → 只运行测试
├── 代码变更 → 全流程(审查→测试→部署)
└── 配置变更 → 审查 + 确认后部署
2. 组合实现方式
(1) 提示词编排
在 Skill 提示词中描述组合逻辑:
MARKDOWN
## 执行策略
1. 先执行 code-review Skill
2. 如果发现 🔴 问题:
- 执行 auto-fix Skill
- 重新执行 code-review 确认修复
3. 审查通过后执行 test-runner Skill
4. 测试通过后输出汇总报告
(2) 上下文传递
Skill 之间通过上下文传递数据:
TEXT
📖 仅展示
Skill A 输出 → 写入上下文变量 → Skill B 读取
示例:
code-review 发现 3 个问题 →
context: { review_issues: [...], fix_targets: [...] }
→ auto-fix 读取 fix_targets 执行修复
(3) 结果汇总
MARKDOWN
## 汇总报告模板
### 技能链执行结果
| 步骤 | Skill | 状态 | 耗时 | 关键输出 |
|:-----|:------|:-----|:-----|:---------|
| 1 | code-review | ✅ | 30s | 5 个问题 |
| 2 | auto-fix | ✅ | 45s | 修复 4 个 |
| 3 | test-runner | ✅ | 2m | 全部通过 |
3. 组合设计原则
(1) 松耦合
每个 Skill 独立可用,不依赖其他 Skill 的内部实现:
TEXT
📖 仅展示
松耦合设计:
├── Skill A 不直接调用 Skill B 的内部函数
├── Skill 间通过标准格式传递数据(如 JSON、Markdown)
├── 单个 Skill 失败不影响其他 Skill 的基本功能
└── 可以单独测试每个 Skill
(2) 单一职责
每个 Skill 只做一件事,做好一件事:
| ✅ 正确 | ❌ 错误 |
|---|---|
| code-review 只审查 | code-review 审查+修复+测试 |
| auto-fix 只修复 | auto-fix 修复+审查+部署 |
| deploy 只部署 | deploy 部署+监控+告警 |
(3) 幂等性
重复执行结果一致,支持安全重试:
MARKDOWN
## 幂等性要求
- 多次运行审查 Skill,结果相同
- 修复 Skill 检测问题是否已修复,已修复则跳过
- 部署 Skill 检查当前状态,已部署则确认而非重复部署
4. 组合编排实战
▶ 示例:PR 质量门禁
Alice 设计了一套 PR 自动审查组合:
YAML
---
name: pr-gate
description: "PR 质量门禁:审查+测试+安全三合一"
triggers:
- keyword: "pr-gate|质量门禁"
---
MARKDOWN
## 执行流程
1. 调用 code-review(代码审查)
2. 调用 test-runner(运行测试)
3. 调用 security-scan(安全扫描)
4. 汇总三项结果
5. 输出合并建议:
- 三项全通过 → ✅ 建议合并
- 任一项 🔴 → ❌ 不建议合并
- 只有 🟡 → ⚠️ 修复后合并
Bob 评价:"单个 Skill 是工具,组合 Skill 是流水线——流水线的威力远大于单个工具的简单相加。"
❓ 常见问题
Q Skill 之间能直接调用吗?
A 取决于平台。Claude Code 支持在提示词中描述调用逻辑;OpenCode 需要手动编排。核心是数据传递,而非函数调用。
Q 组合太复杂怎么维护?
A 限制嵌套层级 ≤2,组合 Skill ≤5。超过则考虑拆分为独立工作流或使用专门的编排工具。
Q 一个 Skill 失败了整个链怎么处理?
A 关键路径(审查、测试)失败则停止,非关键路径(文档、通知)失败则记录并继续。用错误分级决定。
📖 小节
- 三种组合:技能链(顺序)、技能矩阵(并行)、条件编排
- 实现方式:提示词编排、上下文传递、结果汇总
- 设计原则:松耦合、单一职责、幂等性
- 实践建议:嵌套 ≤2、组合 ≤5、关键路径失败即停
📝 作业
- 基础题(难度⭐):创建一个简单的技能链,串联 code-review 和 test-runner 两个 Skill。
- 进阶题(难度⭐⭐):创建一个 PR 质量门禁 Skill,并行执行审查、测试、安全扫描,汇总结果。
- 挑战题(难度⭐⭐⭐):设计一个智能编排系统,能根据变更类型自动选择执行哪些 Skill,并处理中间步骤的失败和重试。