概述


一、什么是带参数的 Skill

简单 Skill:触发条件是固定的关键词

用户:"画图" → 触发图片生成

带参数的 Skill:触发后还需要提取参数

用户:"画一张 16:9 比例的海边日落图"
→ 触发图片生成
→ 提取参数:主题="海边日落",比例="16:9"

二、参数提取示例

示例 1:天气查询 Skill

```markdown
# 天气查询技能

## 触发条件
用户说"天气"时触发

## 参数提取
用户消息格式:
- "北京天气" → 城市=北京
- "北京今天天气怎么样" → 城市=北京,时间=今天
- "明天上海天气" → 城市=上海,时间=明天

## 参数
- 城市(必填):从消息中提取地名
- 时间(可选):今天/明天/后天,或具体日期
```

示例 2:图片生成 Skill

```markdown
# 图片生成技能

## 触发条件
用户说"画图"、"生成图片"时触发

## 参数提取
用户消息格式:
- "画一张海边日落" → prompt=海边日落,比例=默认
- "画一张 16:9 的海边日落" → prompt=海边日落,比例=16:9
- "生成一张二次元女孩,竖版" → prompt=二次元女孩,比例=9:16

## 参数
- prompt(必填):图片描述,从"画一张"之后提取
- 比例(可选):默认为 1:1,支持 16:9、9:16、4:3
- 风格(可选):默认写实风,支持二次元、卡通等
```

三、参数验证

```markdown
## 参数验证
- 城市:必须是有效的城市名称,长度 2-20 字符
- 比例:必须是 1:1、16:9、9:16、4:3 之一
- prompt:长度 1-500 字符,不能为空

## 参数错误处理
如果验证失败,返回:
"参数错误:请提供有效的[参数名]"
```

四、多参数 Skill 示例

```markdown
# 销售数据查询技能

## 触发条件
用户说"查销售"、"看数据"、"销售报表"时触发

## 参数提取
支持以下参数:
| 参数 | 来源 | 示例 |
|------|------|------|
| 时间范围 | 今天/昨天/本周/本月/具体日期 | "昨天的销售" |
| 产品 | 产品名称或编号 | "A产品的销售" |
| 销售人员 | 姓名 | "张三的销售" |
| 数据类型 | 销售额/订单数/客户数 | "销售额" |

## 参数组合
- "查今天销售" → 时间=今天
- "查本周各产品销售额" → 时间=本周,数据=销售额
- "查张三昨天的订单数" → 时间=昨天,销售=张三,数据=订单数

## 返回格式
{
  "success": true,
  "data": [
    {"产品": "A", "销售额": 10000},
    {"产品": "B", "销售额": 8000}
  ],
  "summary": "总计:18000元"
}
```

五、条件参数

```markdown
# 会议预约技能

## 触发条件
用户说"预约会议"、"创建会议"、"约个会议"时触发

## 必要参数
- 时间(必填):用户指定的时间

## 可选参数
- 地点(可选):会议室或地点,默认视频会议
- 时长(可选):默认1小时
- 参会人(可选):默认只有发起人

## 参数提取逻辑
1. 首先提取时间(必须有)
2. 检查是否有地点、时长、参会人
3. 如果缺少可选参数,使用默认值

## 错误处理
- 时间格式错误:"请提供正确的时间,如'明天上午10点'"
- 时间冲突:"该时间已有其他会议,请选择其他时间"
```

六、下一步学什么

  • 5.6 常见 Skill 模板 → 直接套用的模板
  • 5.7 Skill 调试技巧 → 出了问题怎么排查

带参数的 Skill 更强大,可以处理各种复杂需求!

常见问题

Q: Skill 参数验证在哪做?
A: 可以在 Skill 代码中做验证,也可以在 prompt 中描述清楚。