自定义 Skill
扩展 AI 助手的能力,创建自定义 Skill。
什么是 Skill
Skill 是 AI 助手的功能扩展单元,每个 Skill 包含:
- 触发词 - 激活 Skill 的关键词
- 参数定义 - Skill 需要的输入参数
- 处理逻辑 - 执行的具体操作
- 返回格式 - 输出结果的格式
创建 Skill
基础 Skill
javascript
{
"name": "查询天气",
"trigger": ["天气", "气温", "预报"],
"description": "查询指定城市的天气",
"parameters": {
"city": {
"type": "string",
"description": "城市名称",
"required": true
}
},
"handler": "weatherQuery"
}
高级 Skill
javascript
{
"name": "空间分析",
"trigger": ["分析", "计算"],
"description": "执行空间分析",
"parameters": {
"layerId": {
"type": "string",
"description": "图层ID",
"required": true
},
"analysisType": {
"type": "enum",
"values": ["buffer", "intersect", "union"],
"required": true
}
},
"handler": "spatialAnalysis",
"permissions": ["analysis"]
}
Skill 类型
系统 Skill
系统内置的 Skill,不可修改:
- 地图导航
- 图层控制
- 测量工具
自定义 Skill
用户创建的 Skill,可以:
- 调用外部 API
- 执行数据库查询
- 操作地图要素
第三方 Skill
从 Skill 市场安装的 Skill。
Skill 管理
启用/禁用
在 Skill 管理页面,可以:
- 启用或禁用 Skill
- 调整 Skill 优先级
- 设置 Skill 权限
导入导出
Skill 支持导入导出:
bash
# 导出 Skill
curl /api/skills/export/{skillId}
# 导入 Skill
curl -X POST /api/skills/import -F file=@skill.json
开发指南
Handler 函数
javascript
async function weatherQuery(params, context) {
const { city } = params;
// 调用天气 API
const weather = await fetchWeather(city);
return {
type: 'text',
content: `${city}今天${weather.temperature}度,${weather.condition}`
};
}
Context 对象
Handler 函数接收 context 对象,包含:
map- 地图实例user- 当前用户project- 当前项目layers- 图层列表