模块作用
技能提取把 FSP 的完整技能定义转换为设备技能描述,经过质量评估后进入合格设备技能库。每项技能均以对象、控制和系统三个维度形成一个完整契约。输入
输入是fsp/get_capabilities(detail_level="full") 返回的数据。摘要结果只用于检索,不能用于技能提取:
输入示例
以下输入包含一条加液技能及其三个说明维度;skills 可以包含更多技能:
提取实现逻辑
技能提取不是让模型重新设计设备技能,而是把 FSP 完整技能定义转换为可阅读、可检查、可生成函数调用的说明。实现按以下顺序处理:- 读取一个固定
device_id和revision的完整技能快照; - 逐项解析每条技能的对象、控制和系统维度,保留原始容器类型、
command_id、请求分类、参数路径、枚举、单位和安全围栏; - 将每条技能展开为“适用对象 → 前置状态 → 参数 → 约束 → 状态变化 → 返回值 → 结果验证”的完整契约;
- 对缺失字段生成待修订项,不用自然语言或模型推测补值;
- 输出设备技能描述,并写入来源修订号和字段映射,使后续评估、函数定义和方法都能追溯到同一能力快照。
输出:设备技能描述
设备技能描述必须采用以下结构:输出章节含义
完整产物关系
设备能力从提取到可使用,需要形成以下彼此关联的产物。它们均应记录同一device_id 和来源 revision,使任一环节可以追溯到设备接口事实。
产物之间不得只凭名称关联;必须使用设备标识、操作标识和来源修订号建立确定映射。
设备技能描述的最小结构
设备技能描述应为每项技能完整保留接口信息。以下结构示例说明产物字段,不绑定任何具体存储格式:parameters、constraints、effects 和 returns 在实际产物中必须是完整对象定义,不得仅保留字段名称。上例仅用于展示三个维度如何共同说明一项技能。
字段映射
转换规则
- 不得新增 FSP 未声明的技能;
- 不得改变技能的
request_class; - 不得改变参数类型、单位、范围和枚举;
- 嵌套参数必须按完整技能定义中的层级展开;
- 初始状态和状态更新必须分别保留;
- FSP 修订号变化后,旧能力说明必须重新生成或标记过期;
- 自然语言润色不得改变强制约束。