Skip to content
On this page

自定义 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 - 图层列表

基于 MIT 许可发布