小龙虾 Skill 技能编写入门:从 Markdown 到工业智能体工具调用
本文从最简单的 SKILL.md 讲起,系统介绍工业智能体“小龙虾”的 Skill 技能编写方法:功能说明、触发条件、执行流程、工具调用、权限分级,并结合 MES、MQTT、RAG、AGV 等工业场景,说明如何让 AI 从“聊天机器人”进化为能查询实时数据、执行任务的工业智能体。
一、什么是小龙虾 Skill?
在传统软件中,如果希望程序实现一个功能,通常需要编写代码。
例如:
查询设备状态
↓
连接数据库
↓
执行 SQL
↓
处理结果
↓
返回数据
而在 AI Agent,也就是"小龙虾"这样的智能体系统中,可以把一个具体能力封装成一个 Skill(技能)。
例如:
设备状态查询 Skill
生产统计 Skill
订单查询 Skill
设备报警 Skill
库存查询 Skill
AGV调度 Skill
MES数据分析 Skill
Skill 的核心作用,就是告诉 AI:什么时候使用这个能力、这个能力解决什么问题、应该按照什么规则执行。
最简单的 Skill,可以仅仅是一个 Markdown 文件。
例如:
skills/
└── device-status/
└── SKILL.md
二、Skill 和普通 Markdown 有什么区别?
虽然 Skill 经常使用 .md 文件编写,但它并不是普通的知识文章。
普通 Markdown:
# 设备状态
设备状态包括:
- 运行
- 停止
- 报警
它主要是在告诉 AI:设备有哪些状态。
而 Skill 更像是一份"操作说明书":
# 设备状态查询
## 功能
查询MES系统设备当前运行状态。
## 触发条件
当用户询问:
- 设备是否运行
- 哪台设备停机
- 当前设备状态
- 设备报警
时使用本技能。
## 执行流程
1. 获取设备编号
2. 查询MES实时状态
3. 判断设备状态
4. 返回结果
## 注意事项
不能根据历史数据推测当前状态。
必须调用实时接口。
这里已经包含了:
什么时候用 → 怎么用 → 调用什么 → 怎么判断 → 怎么回答
所以可以把 Skill 理解成:给 AI 使用的"功能说明书 + 操作流程 + 使用规则"。
三、一个最简单的 Skill
我们先写一个最简单的技能。
目录:
skills/
└── hello/
└── SKILL.md
SKILL.md:
# Hello Skill
## 功能
用于回答用户的简单问候。
## 触发条件
当用户发送:
- 你好
- hello
- hi
时使用。
## 回复规则
使用中文回复。
示例:
用户:
你好
助手:
你好,我是小龙虾,很高兴为你服务。
这样,一个最简单的 Skill 就完成了。
四、推荐的 Skill 文件结构
实际项目中,建议不要把所有内容都写到一个 Markdown 文件里。
可以采用:
skills/
├── production/
│ ├── SKILL.md
│ ├── examples.md
│ └── rules.md
│
├── device/
│ ├── SKILL.md
│ ├── device-status.md
│ └── alarm-rules.md
│
├── agv/
│ ├── SKILL.md
│ └── task-rules.md
│
└── inventory/
├── SKILL.md
└── inventory-rules.md
其中:
SKILL.md
负责描述技能本身。
例如:
功能
触发条件
执行流程
工具调用
注意事项
而其他 Markdown 文件负责保存详细知识。
五、Skill 的核心组成
一个完整的 Skill,一般可以分成几个部分。
1. 技能名称
例如:
# MES设备状态查询
名称应该简单明确。
不建议:
超级智能工业设备综合分析技能
建议:
MES设备状态查询
六、功能说明
例如:
## 功能
查询MES系统中生产设备的实时运行状态,
包括运行、停止、报警、离线等状态。
这一部分主要告诉 AI:这个 Skill 是干什么的。
七、触发条件
这是 Skill 非常重要的一部分。
例如:
## 触发条件
当用户询问以下内容时使用:
- 设备现在运行吗?
- 1号机状态
- 哪些设备停机?
- 哪台设备报警?
- 当前产线设备状态
这样 AI 就可以判断:
用户问题
↓
是否属于设备状态?
↓
是
↓
调用设备状态 Skill
八、执行流程
例如:
## 执行流程
1. 判断用户查询的设备。
2. 如果用户没有指定设备,则查询全部设备。
3. 调用MES设备状态接口。
4. 获取实时状态。
5. 根据状态码转换成人类可读状态。
6. 返回查询结果。
这里实际上已经开始形成一个 Agent Workflow。
九、工具调用
真正的工业智能体,不能只会"聊天",它必须能够调用实际系统。
例如:
小龙虾
│
├── 查询设备
├── 查询订单
├── 查询产量
├── 查询报警
└── 查询库存
│
▼
MES
因此 Skill 可以描述工具:
## 工具
使用:get_device_status
例如:
{
"device_code": "LA-IM-01"
}
返回:
{
"device_code": "LA-IM-01",
"status": "RUNNING",
"temperature": 203.3,
"cycle_time": 6.19
}
AI 再把数据转换成自然语言:
LA-IM-01目前运行正常。
当前温度:203.3℃
周期时间:6.19秒
设备状态:运行中
十、为什么不能只使用 Markdown?
这是很多刚开始开发 Agent 的人容易产生的误区。
例如:
# 设备查询
设备状态有:
运行
停止
报警
这只能让 AI"知道设备状态"。
但是用户问:
LA-IM-01现在运行吗?
AI 如果没有实时工具,就无法知道。
因为:
Markdown → 知识
Tool → 实时数据
所以工业智能体应该采用:
Skill + Knowledge + Tool
三者结合。
十一、Skill + Tool 的完整工作流程
例如老板问:
LA产线现在有几台注塑机报警?
小龙虾首先进行意图识别:
用户问题
↓
设备状态查询?
↓
是
↓
设备报警统计?
↓
是
↓
调用设备报警 Skill
Skill 告诉 AI:需要调用 get_machine_alarm_status。
然后调用 MES:
小龙虾 → MES API → 设备数据
例如返回:
{
"line": "LA",
"total": 11,
"running": 8,
"stop": 2,
"alarm": 1
}
最终:
LA产线目前共有11台注塑机:
运行:8台
停止:2台
报警:1台
这才是真正意义上的工业 AI Agent。
十二、一个完整的 MES Skill 示例
下面设计一个实际可用的 MES 生产统计 Skill。
目录:
skills/
└── mes-production/
└── SKILL.md
内容:
# MES生产统计 Skill
## 功能
查询MES系统生产数据,
用于回答产量、完成率、生产进度等问题。
## 适用问题
当用户询问以下问题时使用:
- 今天生产了多少?
- 今天产量是多少?
- 当前订单完成多少?
- 生产进度怎么样?
- 哪条产线产量最高?
- 今日完成率多少?
## 数据来源
MES生产数据库。
## 工具
get_production_summary
## 参数
line:产线编号,可为空。
date:查询日期。
## 执行流程
1. 判断用户查询日期。
2. 判断用户是否指定产线。
3. 调用get_production_summary。
4. 获取实际产量。
5. 获取生产计划。
6. 计算完成率。
7. 返回结果。
## 计算规则
完成率:实际产量 / 计划产量 × 100%
## 注意事项
1. 不允许编造生产数据。
2. 实时数据必须通过工具获取。
3. 如果数据库查询失败,需要明确告诉用户。
4. 不允许使用昨天的数据代替今天的数据。
## 输出格式
产线:
计划:
实际:
完成率:
状态:
十三、Skill 可以让 AI 学会"业务规则"
这是 Skill 最重要的价值之一。
例如你的滴灌带 MES 中:
一卷产品
↓
生产
↓
收卷
↓
称重
↓
视觉检测
↓
压力测试
↓
包装
↓
入库
你可以编写 roll-traceability/SKILL.md 告诉小龙虾:
# 成品卷追溯 Skill
## 功能
根据成品卷编号查询完整生产履历。
## 查询流程
1. 查询成品卷基本信息。
2. 查询生产设备。
3. 查询生产时间。
4. 查询生产长度。
5. 查询重量。
6. 查询视觉检测结果。
7. 查询压力测试结果。
8. 查询包装记录。
## 判断规则
如果视觉检测不合格:
视觉检测状态 = NG
如果压力测试不合格:
压力测试状态 = NG
只要任意关键检测项目为NG:
最终状态 = 不合格
这样,小龙虾就不只是"查数据库",它开始理解你的工厂业务规则。
十四、Skill 与 RAG 的关系
当 Skill 数量越来越多以后,可以进一步加入 RAG。
例如:
小龙虾
│
┌─────────┴─────────┐
↓ ↓
Skill RAG
│ │
怎么执行任务 查找知识
│ │
↓ ↓
Tool Markdown
│
↓
MES
例如用户问:
注塑机换网以后需要检查哪些参数?
RAG 可以找到:注塑机换网操作规范.md
而用户问:
LA-IM-02现在温度是多少?
则应该:
Skill → Tool → MES实时数据
两种问题的处理方式不同。
十五、Skill、RAG、Tool 三者区别
| 组件 | 主要作用 |
|---|---|
| Skill | 告诉AI怎么完成任务 |
| Markdown | 提供业务知识 |
| RAG | 从大量知识中找到相关内容 |
| Tool | 获取实时数据或执行操作 |
| MES | 真正的业务系统 |
| LLM | 理解问题并进行推理 |
可以简单理解成:
Markdown = 知识
Skill = 方法
Tool = 手
LLM = 大脑
MES = 工厂系统
十六、进一步加入 MQTT
你的工业网关场景中,还可以让小龙虾通过 MQTT 获取设备数据。
例如:
注塑机 → OPC-DA → MQTT → 工业网关 → MES → 小龙虾
Skill:
# 注塑机状态查询
## 数据来源
MQTT实时设备数据。
## Topic
/injection/{machine}/status
## 查询内容
- 温度
- 压力
- 周期时间
- 产量
- 报警
- 设备状态
例如用户:
LA-IM-02现在温度多少?
Skill 告诉 AI:
查询注塑机状态
↓
获取 LA-IM-02
↓
读取实时数据
然后得到:
当前温度:203.3℃
设定温度:195℃
周期时间:6.19s
十七、让 Skill 支持"操作型任务"
Skill 不一定只能查询,还可以执行操作。
例如创建生产任务:
用户:
创建一个LA产线生产任务,生产10000米。
小龙虾:
理解任务
↓
生产任务 Skill
↓
检查参数
↓
调用MES API
↓
创建生产订单
Skill:
# 创建生产任务
## 参数
产线:
产品:
数量:
单位:
计划开始时间:
## 执行规则
1. 必须确认产线。
2. 必须确认产品。
3. 必须确认数量。
4. 创建前检查产线是否可生产。
5. 创建成功后返回任务编号。
## 安全规则
创建生产任务属于写操作。
如果用户信息不完整,不能自动创建。
这一步非常重要。因为:查询 Skill 可以自动执行,写入/控制 Skill 必须增加权限和确认机制。
十八、工业 AI 中建议增加权限等级
例如:
Level 0 普通聊天
Level 1 查询数据
Level 2 数据分析
Level 3 创建业务单据
Level 4 修改业务数据
Level 5 控制设备
例如:
查询设备温度 → 允许自动执行
创建生产订单 → 需要确认
启动设备 → 必须人工确认
这样可以避免 AI 因为理解错误直接控制生产设备。
十九、Skill 的推荐目录
如果最终把"小龙虾"做成一个工业智能体,我建议采用:
xiaolongxia/
│
├── skills/
│ ├── mes/
│ │ ├── production/
│ │ ├── order/
│ │ ├── device/
│ │ ├── quality/
│ │ └── traceability/
│ │
│ ├── erp/
│ │ ├── sales/
│ │ ├── purchase/
│ │ ├── inventory/
│ │ └── finance/
│ │
│ ├── agv/
│ │ ├── dispatch/
│ │ ├── status/
│ │ └── transport/
│ │
│ └── factory/
│ ├── equipment/
│ └── process/
│
├── tools/
│ ├── mes_api/
│ ├── mqtt/
│ ├── erpnext/
│ └── agv/
│
├── knowledge/
│ ├── process/
│ ├── equipment/
│ └── manual/
│
└── config/
└── config.yaml
最终形成:
小龙虾
│
┌──────┴──────┐
│ │
Skills Knowledge
│ │
↓ ↓
Tools RAG
│
┌───────┼────────┐
↓ ↓ ↓
MES MQTT AGV
│
↓
工厂数据
二十、Skill 编写的核心思想
刚开始开发 Skill 时,不需要一上来就写复杂系统,可以按照下面的路线:
第一步:Markdown
先写 SKILL.md,让 AI 理解业务。
第二步:增加触发规则
明确什么问题使用这个 Skill?
第三步:增加 Tool
让 AI 能够真正查询 MES、MQTT、ERPNext、AGV、数据库、API。
第四步:增加权限
区分查询、分析、创建、修改、控制。
第五步:增加 RAG
把大量设备手册、工艺文件、SOP、MES文档、产品资料接入知识库。
二十一、最终形成真正的工业智能体
最终的小龙虾不应该只是 ChatGPT + Markdown,而应该是:
┌───────────────┐
│ 小龙虾 │
│ AI Agent │
└───────┬───────┘
│
┌───────┼───────┐
↓ ↓ ↓
Skills RAG Memory
│ │ │
↓ ↓ ↓
Tools 知识库 历史任务
│
┌──────┼───────┬────────┐
↓ ↓ ↓ ↓
MES MQTT ERPNext AGV
│
↓
工厂实时数据
这样,小龙虾才真正从一个"聊天机器人"变成:能够理解工厂业务、查询实时数据、分析生产情况,并通过工具执行任务的工业智能体。
二十二、总结
如果刚开始学习小龙虾 Skill,可以记住一句话:
Markdown 负责告诉 AI"是什么、怎么做",Tool 负责让 AI"真正去做"。
最简单的 Skill:
SKILL.md
进阶:
SKILL.md
↓
触发规则
↓
业务流程
↓
Tool调用
↓
MES/API/MQTT
最终:
用户
↓
小龙虾
↓
Skill选择
↓
RAG / Tool
↓
MES / ERP / MQTT / AGV
↓
实时数据
↓
AI分析
↓
自然语言回答
这套模式特别适合工业场景,因为工厂知识可以用 Markdown 持续积累,实时数据通过 Tool 获取,AI 负责理解和决策,原有 MES/ERP/设备系统不需要推倒重做。
