skill是一个可复用的能力模块,包含完成某类任务所需的知识、流程、工具调用方式和约束。
多个 skill 可以通过 任务分解 + 编排(orchestration)+ 信息传递 协作完成一个完整开发任务。
1. Skill 的定义
一个 skill 可以抽象为:
ini
Skill = 能力描述 + 输入 + 输出 + 工具 + 流程 + 约束
例如:
需求分析 Skill
diff
名称:
requirement-analysis
职责:
- 分析用户需求
- 输出用户故事
- 提取业务规则
- 生成验收标准
输入:
用户需求文本
输出:
requirements.md
架构设计 Skill
makefile
名称:
architecture-design
职责:
- 设计系统架构
- 技术选型
- 模块划分
输入:
requirements.md
输出:
architecture.md
编码 Skill
makefile
名称:
backend-development
职责:
- 编写后端代码
- 创建 API
- 数据库实现
输入:
architecture.md
输出:
source code
测试 Skill
makefile
名称:
testing
职责:
- 编写测试
- 执行测试
- 分析失败原因
输入:
source code
输出:
test report
2. 多个 Skill 如何协作
通常有一个 Orchestrator(调度器 / Agent Manager) 。
结构类似:
markdown
用户需求
|
v
Orchestrator
|
--------------------------------
| | |
v v v
需求分析Skill 架构Skill UI设计Skill
| | |
-------------------------------
|
v
开发Skill
|
v
测试Skill
|
v
发布Skill
3. 一个完整开发任务示例
假设:
开发一个电商订单系统
Step 1:需求 Skill
输入:
我要开发订单系统
执行:
requirement-analysis skill
输出:
markdown
features:
- 创建订单
- 支付
- 查询订单
- 取消订单
roles:
- 用户
- 管理员
Step 2:架构 Skill
读取需求:
architecture-design
生成:
订单服务
支付服务
库存服务
数据库设计
API规范
例如:
bash
Order Service
POST /orders
GET /orders/{id}
Database:
orders
order_items
payments
Step 3:开发 Skill
根据架构:
backend-development
执行:
lua
create controller
create service
create repository
create database migration
输出:
go
src/
├── order/
│ ├── controller.go
│ ├── service.go
│ └── repository.go
Step 4:测试 Skill
读取代码:
testing
生成:
go
order_test.go
测试:
✓ 创建订单
✓ 重复支付
✓ 库存不足
Step 5:DevOps Skill
负责:
dockerize
CI/CD
deployment
输出:
Dockerfile
github-actions.yml
k8s deployment.yaml
4. Skill 协作的关键机制
① 输入输出契约(Contract)
每个 skill 不应该随意输出。
例如:
需求 Skill:
输入:
json
{
"request":"开发订单系统"
}
输出:
json
{
"requirements":"requirements.md"
}
架构 Skill 只依赖:
requirements.md
这样可以替换 skill。
例如:
markdown
Java架构Skill
|
v
Spring Boot开发Skill
换成:
markdown
Go架构Skill
|
v
Go开发Skill
上层不用变化。
② Skill Pipeline
简单任务:
css
A → B → C
例如:
需求分析
|
架构设计
|
编码
|
测试
适合:
- CRUD
- API 开发
- 自动生成项目
③ DAG 工作流
复杂任务:
lua
需求
|
-------------
| |
后端设计 前端设计
| |
------ ------
|
集成
|
测试
例如:
前端和后端可以并行。
④ 多 Agent 协作
每个 skill 可以对应一个 Agent:
lua
Agent Manager
|
|---- Product Agent
|
|---- Architect Agent
|
|---- Developer Agent
|
|---- QA Agent
|
|---- Security Agent
它们通过共享 Workspace:
css
workspace/
requirements.md
architecture.md
src/
tests/
交换信息。
5. 一个实际的 Skill 配置例子
类似:
yaml
skills:
- name: requirement-analysis
description: 分析产品需求
input:
- user_request
output:
- requirements.md
- name: backend-dev
description: 后端开发
input:
- architecture.md
tools:
- vscode
- git
- terminal
output:
- code
- name: qa
description: 自动测试
input:
- code
output:
- report
6. Skill 和普通工具的区别
| Tool | Skill | |
|---|---|---|
| 定位 | 执行动作 | 完成能力 |
| 例子 | 调用 GitHub API | 完成代码提交流程 |
| 粒度 | 较小 | 较大 |
| 是否有流程 | 通常没有 | 有 |
| 是否组合 | 弱 | 强 |
例如:
工具:
scss
git.commit()
Skill:
markdown
release-management
流程:
1. 检查代码
2. 运行测试
3. 创建版本
4. 提交tag
5. 发布
7. 一个成熟 AI 编程系统的 Skill 架构
markdown
User
|
Planner Agent
|
Task Decomposition
|
---------------------
| | |
v v v
Product Architect Developer
Skill Skill Skill
| | |
---------------------
|
Integration
|
QA Skill
|
Deployment Skill
核心思想:
Skill 不负责"整个任务",只负责一个专业领域;Orchestrator 负责把多个 skill 组合成完整交付流程。
如果用于 AI 软件开发,通常会设计:
- Product skill(需求)
- Architecture skill(架构)
- Coding skill(实现)
- Review skill(代码审查)
- Testing skill(测试)
- DevOps skill(部署)
- Security skill(安全扫描)
这些 skill 通过共享上下文和明确输入输出协议协作,就能形成一个类似"AI 软件团队"的开发系统。