5.5 进阶 Skill:带参数的 Skill
通过本文你将全面了解进阶 Skill:带参数的 Skill的核心概念、实际应用方法和最佳实践。
概述
一、什么是带参数的 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 中描述清楚。