什么是 Skills?
在 AI 辅助编程的语境下,Skill(技能) 本质上是对某一类任务的'能力封装'或'可复用指令单元'。它不同于一次性 Prompt,而是经过抽象总结、可以反复调用的能力描述。
简单来说,Prompt 是单次提问,而 Skill 则是可复用的'能力模板'。无论是生成 Java Getter 方法、根据接口文档编写 Controller、将自然语言转为 SQL,还是为现有方法补充 Javadoc,都可以定义为 Skill。
为什么要使用 Skills?
实际开发中,我们常面临这些痛点:每次都要重新描述需求、AI 输出风格不统一、Prompt 越写越复杂、团队成员使用方式不一致。
Skill 的核心价值在于标准化、复用和稳定输出。它能带来以下好处:
- 提高效率:一次编写,多次使用。
- 降低心智负担:无需反复组织复杂的 Prompt。
- 输出更稳定:有明确的规则约束。
- 方便团队协作:支持共享和沉淀。
如何编写一个 Skill?
好的 Skill,本质是把隐性经验变成显性规则。基本结构通常包含名称、目标、输入参数、约束规则和输出格式。
在约束规则里,你可以定义具体的代码风格偏好。例如,如果你习惯在每个方法开头添加入参日志,可以在规则中明确指定格式(如 log.xxx),这样生成的代码就能保持一致性。
Skill 名称:XXX
目标:用于完成 XXX 类型任务
输入参数:
- 参数 1
- 参数 2
规则:
- 遵循编码规范
- 不生成无关内容
输出:
- 指定格式结果
- 你的例子
实战示例:用 Skill 生成 Java 方法
下面演示一个生成标准 Java 业务方法的 Skill 配置。
Skill 描述
根据给定信息生成符合 Java 编码规范的业务方法。
输入参数
- 方法名(methodName)
- 返回类型(returnType)
- 参数列表(parameters)
- 业务描述(description)
- 日志要求:每行加上 log 日志,格式是 log.xxx 打印入参
约束规则
- 使用 Java 命名规范
- 包含方法注释
- 逻辑清晰、可读性强
示例输入
方法名:calculateTotalPrice
返回类型:BigDecimal
参数:BigDecimal unitPrice, int quantity
业务描述:根据单价和数量计算总价
输出结果
当 Skill 被调用时,通常会得到如下代码:
/**
* 根据单价和数量计算总价
*
* @param unitPrice 商品单价
* @param quantity 商品数量
* @return 总价
*/
public BigDecimal calculateTotalPrice {
log.info(, unitPrice, quantity);
(unitPrice == || quantity <= ) {
BigDecimal.ZERO;
}
unitPrice.multiply(BigDecimal.valueOf(quantity));
}


