## 申请成为开发者

开发者填写相关注册信息，申请成为技能开发者。通过审核后才可以进入下一步操作。如已是硬件开发者免申请，直接进入开发。



## 创建机器人&技能
在创建技能前，我们需要创建对话机器人。每个设备型号，可以绑定唯一的对话机器人。即一个对话机器人下所有技能，同时作用在一个设备型号中。

技能是意图的多个同类任务意图的合集，便于后续运营维护。如可以把多个意图：`电量查询`、`用电模式切换`，都归入一个叫做`电池管理`的技能中。



## 配置对话逻辑

### 创建意图

意图是技能实现用户请求的基本单元，指用户说话的目的，即用户想要表达什么、想做什么。意图中包括槽位、问法等相关信息。



### 配置问法

常用表达是一系列与意图相对应的常用口语化表达，常用表达可以包含槽位信息。不同用户的表达形式多种多样，需要确保常用表达能够覆盖尽可能多的用户口语表达，这样意图识别越准确。





### 设置槽位

槽位是意图的参数信息。当用户询问“今天北京天气怎么样”时，其中“今天”和“北京”就是参数信息。这些信息可以被抽象成不同的类，就是槽位，比如在`查询天气`意图中，我们可以根据“今天”和“北京”，抽象出`location`和`date`两个槽位。





### 机器人回答

返回结果除了用户Query对应的意图和槽位等NLP解析结果数据，小微技能配置平台还能以意图为颗粒度，提供文本回复配置。支持多条回复内容随机播放。可按照正则规范，在回复结果中使用当前对话提取的槽位内容。

**例如配置：**

> 以下是{时间}{出发地}到{目的地}的机票信息，请选择具体的航班

`时间`、`出发地`、`目的地`，全部来自当前对话过程中的用户QUERY中包含的槽位信息。



## 调试&发布

### 平台调试

通过小微技能平台中机器人调试，来检验当前配置意图的实际的命中情况。WEB平台会显示对应的返回结果以及对应 JSON 数据结构。



### 设备调试

需要前往小微硬件平台，为硬件设备选择绑定一个通开发者账号下创建的对话机器人。一个机器人（BotID）可以同时被多个产品（ProductID）关联。



### 测试白名单

对话机器人在发布到用户环境之前，需要完成完整的端到端的调试。前往小微硬件平台，给不同的设备，配置调试设备（用户）白名单，可以让名单中的设备（用户）收到未发布的，开发环境配置数据。



### 设备端协议

硬件的自定义技能，对应的返回结果都通过小微SDK或小微APP返回到端侧。对应的返回结果协议格式按照接入方式的不同参考协议：

- [小微SDK自定义技能协议](../xiaowei-devices/Linux_SDK/interface/interface#小微SDK自定义技能协议)

- [小微蓝牙自定义技能协议](/doc/xwei/xiaowei-devices/Bluetooth-custom-skill)



### 机器人发布

技能配置平台中完成机器人发布，对应配置的自定义技能可以被用户环境的所有关联设备访问。
