QClaw Skill 开发实战:自然语言转 U8c 执行命令

QClaw Skill 开发实战:自然语言转 U8c 执行命令

一、背景

在公司日常工作中,我有一项任务是处理错误的U8c单据,需要根据不同类型执行各种同步命令:

php think order_sync 2025-09-20
php think stock_sync in 2025-10-28 2025-10-31
php think inside_service_order_sync

解决方案:由于单据类型复杂又多,用 QClaw + Skill 把自然语言转换成命令。


二、Skill 效果预览

在 QClaw 对话框中直接说:

你说Skill 输出
"推一下5月28日的销售订单"php think order_sync 2026-05-28
"同步5月19到31日的入库单"php think stock_sync in 2026-05-19 2026-05-31
"同步内部交易售后单"php think inside_service_order_sync

AI 只输出命令,不执行,用户可以核对后再手动执行,安全可靠。


三、Skill 完整代码

1. 目录结构

~/workspace/AI/skills/u8-sync/
├── SKILL.md          # Skill 描述文件
└── scripts/
    └── sync.py       # 同步脚本(可选,用于扩展)

2. SKILL.md

---
name: u8-sync
description: U8数据同步命令生成器。根据自然语言生成对应的 thinkphp 同步命令。当用户说"同步"、"推"、"采购"、"订单"、"售后"、"内部交易"时触发。
allowed-tools: Read
---

# U8 数据同步命令生成器

## 功能

根据用户的自然语言描述,生成对应的 `php think` 同步命令。

## 命令映射表

### 采购相关
| 用户说 | 生成命令 |
|-------|---------|
| "同步采购单 2025-09-08" | `php think purchase_sync 2025-09-08` |
| "同步采购入库单 2025-09-08" | `php think purchase_in_sync 2025-09-08` |
| "同步采购退货单 2025-10-28" | `php think purchase_return_sync 2025-10-28` |

### 订单相关
| 用户说 | 生成命令 |
|-------|---------|
| "同步订单 2025-09-20" | `php think order_sync 2025-09-20` |
| "同步订单出库单 2025-09-07" | `php think out_order_sync 2025-09-07` |
| "同步手工单 2025-09-29" | `php think manual_order_sync 2025-09-29` |

### 售后相关
| 用户说 | 生成命令 |
|-------|---------|
| "同步售后单 2025-10-28" | `php think service_order_sync 2025-10-28` |
| "同步售后入库单 2025-10-28" | `php think out_service_order_sync 2025-10-28` |

### 库存相关
| 用户说 | 生成命令 |
|-------|---------|
| "同步其他出库单 2025-10-28" | `php think out_other_order_sync 2025-10-28` |
| "同步库存其他出库单 9月18到30日" | `php think stock_sync out 2025-09-18 2025-09-30` |
| "同步库存其他入库单 10月28到31日" | `php think stock_sync in 2025-10-28 2025-10-31` |

### 内部交易
| 用户说 | 生成命令 |
|-------|---------|
| "同步内部交易订单 2025-09-29" | `php think inside_order_sync 2025-09-29` |
| "同步内部交易售后单" | `php think inside_service_order_sync` |
| "同步内部交易采购单 2025-09-29" | `php think inside_purchase_order_sync 2025-09-29` |
| "同步内部采购退货单 2025-10-28" | `php think inside_purchase_return_sync 2025-10-28` |

### 档案同步
| 用户说 | 生成命令 |
|-------|---------|
| "同步商品" | `php think goods_sync` |
| "同步测试商品" | `php think goods_sync test` |

## 日期解析规则

- 支持 "5月28日" → `2026-05-28`
- 支持 "2025-09-08" → 直接使用
- 支持 "今天/昨天" 相对日期

## 输出格式

📋 请执行以下命令:

`php think {command} {args}`

> ⚠️ 请核对命令无误后再执行

四、安装步骤

步骤1:创建 Skill 目录

mkdir -p ~/workspace/AI/skills/u8-sync/scripts

步骤2:创建 SKILL.md

将上面的 SKILL.md 内容复制到文件中:

cat > ~/workspace/AI/skills/u8-sync/SKILL.md << 'EOF'
# 粘贴上面的内容
EOF

步骤3:验证目录结构

ls -la ~/workspace/AI/skills/u8-sync/

应该看到:

~/workspace/AI/skills/u8-sync/
├── SKILL.md
└── scripts/

步骤4:在 QClaw 中加载

在 QClaw 对话框中输入:

/reload-skills

或重启 QClaw。

步骤5:验证安装

输入 /list-skills,检查 u8-sync 是否在列表中。


五、使用示例

示例1:同步销售订单

输入

推一下5月28日的销售订单

输出

📋 请执行以下命令:

php think order_sync 2026-05-28

> ⚠️ 请核对命令无误后再执行

示例2:同步库存入库单

输入

同步5月19到31日的困存入库单

输出

📋 请执行以下命令:

php think stock_sync in 2026-05-19 2026-05-31

示例3:同步内部交易售后单

输入

同步内部交易售后单

输出

📋 请执行以下命令:

php think inside_service_order_sync

总结

通过这个 Skill,我们把复杂的命令记忆变成了自然语言对话。

核心价值

  • ✅ 不需要记命令格式
  • ✅ 不需要记参数顺序
  • ✅ 减少问同事的次数
  • ✅ 降低操作出错率

扩展方向

  • 支持更多命令类型
  • 添加执行确认机制
  • 集成到 CI/CD 流程

参考资料


博客配图
QClaw 对话效果截图
53475-hn5mlq64wv6.png
74768-9tdsu6qih9.png

希望这篇博客对你有帮助!🚀