OpenClaw Skill × DuckDB:一个会自动进化的电商销售分析预测是怎么炼成的

简介: OpenClaw的Skill系统为AI提供“操作手册”,将人类可读的Markdown技能(如商品预测)转化为可执行流程;结合DuckDB列式分析引擎,实现秒级数据查询与全自动模型迭代优化,让AI真正“会做事”。

一、OpenClaw的操作手册——Skill 系统是什么?

先说一个反直觉的事实:

AI 什么都懂,但什么都"不会做"。

你问 ChatGPT"北京明天天气怎么样?",它答不上来。不是它笨,而是它没法联网查实时数据。它的知识停留在训练数据截止的那一刻。它就像一个博学多才但被关在图书馆里的学者,读了很多书,但看不到窗外是晴天还是下雨。

不只是天气。你让 AI 帮你关灯、帮你查 GitHub 上的 issue、帮你发一条消息,它都做不到。它知道这些事情是什么,但它没有手脚去做。

OpenClaw 解决这个问题的方式很巧妙:给 AI 一本操作手册(Skill)。

什么是 Skill?就是一个 Markdown 文件(SKILL.md),里面用人类语言写着操作步骤。比如一本"查天气"Skill,核心内容就几行:

  • 用户问天气时,执行 curl wttr.in/Beijing 这个命令
  • 拿到结果后,用自然语言回复用户

OpenClaw 读到 SKILL.md 后就会照着做,就像实习生拿到了 SOP,不需要额外培训就能上手。

OpenClaw 内置了 50 多本这样的Skill,覆盖天气查询、GitHub 操作、智能家居控制,甚至"指挥其他 AI 写代码"。但更厉害的是,你可以自己写新的 Skill,教 AI 做任何你想让它做的事。

每本 SKILL.md 从"放进去"到"被 AI 使用",经过 5 步流水线,加上 1 条后台常驻的监听线程:

阶段

在做什么

产出

Discovery

扫描 6 个目录找到所有 SKILL.md,按优先级合并,自定义的会覆盖内置的

Skill[]

Parse

读取 YAML 封面,提取名字、描述、依赖条件等结构化信息

SkillEntry

Filter

过三道关:用户禁用了吗?依赖工具装了吗?系统兼容吗?不通过直接丢弃,AI 看不到它

过滤后的 SkillEntry[]

Inject

把通过筛选的 Skill 打包成一段 XML 塞进系统提示词,每个 Skill 只有摘要,约 100 词

SkillSnapshot

Runtime

用户提问时 AI 扫描摘要匹配,命中后读取完整 SKILL.md 正文执行

Watch

文件保存 → change 事件 → 版本号递增 → SkillSnapshot 过期 → 下次对话自动重建,全程无需重启

新 SkillSnapshot

纵向看"产出"那一列:Skill[] → SkillEntry → SkillSnapshot,这就是一条 SKILL.md 在内存里的完整变身路径。

这套流程的精髓是渐进式披露(Progressive Disclosure),不一次性把所有 SKILL.md 的 body 塞给 AI(那样会超出 token 限制),而是先注入 description 摘要(约 100 词/个),匹配命中后才读全文。

本文中,我们会通过创建一个基于 RDS DuckDB 分析型实例的商品分析与预测 Skill 来详细介绍下 OpenClaw 的 Skill 原理。


二、电商数据分析与预测的烦恼

2.1 先从一个简单的场景说起

张大爷在菜市场卖了 20 年菜。每天下午他都会想:明天进什么货?

凭经验,他知道:周末排骨好卖、下雨天叶子菜不好卖、春节前牛肉必须多进。这就是最原始的购买预测,靠人脑、靠经验。

但如果张大爷不是一个菜摊,而是一家日均百万订单的电商平台呢?

几千万用户、几十万 SKU,每天产生上亿条浏览、收藏、加购、下单记录,不同地区、不同季节、不同促销活动,规律完全不同。人脑搞不定了。需要让 AI 来当张大爷,翻阅所有人的购买记录,找到规律,预测谁在未来 7 天会买什么。

2.2 但 AI 翻账本存在大问题

电商的交易数据存在 MySQL 数据库里。MySQL 是一个非常优秀的记账员,每秒处理几万笔交易,稳如老狗。但它的存储方式是行存储(一行一行地存),适合写入一笔订单、查一个用户的最近订单这类操作。可如果我们问它"过去 90 天,按品类统计所有用户的购买频次和金额",这需要扫描几亿行数据。MySQL 可能要跑几个小时,甚至直接超时。

行存储就像一本按日期排列的流水账。我们要查"过去 3 个月所有人的零食消费",就得从头到尾一页一页翻,因为零食消费散落在每一天的各种订单里。

而我们可以通过 RDS DuckDB分析实例可以实现了复杂分析查询性能百倍跃升。通过列式存储压缩技术,显著降低存储成本,为企业在海量数据规模场景下提供高性价比的实时分析能力,提升企业数据驱动型决策效能。更多介绍请参考附录 DuckDB分析实例。

三、OpenClaw + DuckDB 完成商品售卖分析与预测

场景描述:

使用 eCommerce behavior data from multi category store 这个公开数据集中的 7 个月的数据,来验证和完成自动进化的商品售卖分析与预测 Skill。在该部分中,我们会根据商品分析与预测 Skill 来剖析 openClaw 的 Skill 能力。

3.1:环境准备

创建并配置 OpenClaw

在 RDS Custom 上简单、快速部署 OpenClaw。详情请参考附录 RDS Custom集成OpenClaw。

创建 RDS MySQL DuckDB 分析型实例

免费试用

企业用户与个人用户均可免费试用DuckDB分析实例。更多细节,请参见附录免费试用与体验。

创建并连接DuckDB分析主实例

请参见附录创建并连接DuckDB分析主实例。

也可以直接让 OpenClaw 在学习 Aliyun Cli 后,根据该官方文档,直接创建规格为 myduck.n2.large.1 RDS DuckDB 分析型实例。

*注意实例最好与 ECS 在同一可用区,使用同一个 VPC。

1.先学学习Aliyun CLi
2.根据 https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/create-and-connect-to-a-duckdb-based-analytical-primary-instance?spm=a2c4g.11186623.help-menu-26090.d_3_4_0_2.325a17e86coqAu 以及其他官方文档,创建一个规格为 8.0版本、规格为myduck.n2.large.1、磁盘大小为100G的RDS DuckDB分析型实例
3. 创建完成后需要创建高权限账号、数据库以及验证数据库连通性,根据RDS官网自行解决连接不上的问题。

3.2:下载并导入数据

  • 下载数据:可以通过 附录 中的天池数据集或者 Kaggle 平台进行下载。
  • 使用 MySQL 工具 LOAD DATA 导入数据。
  • 或者直接让 OpenClaw 帮你编写脚本导入数据到 DuckDB 实例中
通过<该处填写附录中下载地址>下载数据集并解压。编写脚本通过MySQL load data 工具加速导入 csv 文件到<rm-xx该处填写3.1中创建的DuckDB实例名>。

3.3 构建商品分析预测 Skill

而关于 Skill 的编写,只用了这么一段话,让 OpenClaw 学习我们上传的商品售卖预测 Skill 即可:

先从Aliyun Cli中学习如何调用接口,然后连接<rm-xx该处填写3.1中创建的DuckDB实例名>RDS MySQL 实例,分析下业务与实际数据,最后根据https://github.com/huanjizhou/ecommerce-predictor这个skill做出合适的调整,构建一个能够自动进化的模型能够分析业务并且预测用户行为

Skill 生成后,我们再查看 Skill.md 能看到如下 FrontMatter:

name: ecommerce-predictor
description: "电商用户行为时间序列预测。GradientBoosting/Lasso 预测 PV、UV、购买量。
 Use when: 预测、时间序列、趋势分析、销量预测、电商预测。
 NOT for: 实时风控、中国电商双 11/618、非时序分类问题。"
metadata:
 OpenClaw:
 emoji: "📈"
requires:
 bins: ["python3"]

更多 Skill 细节请参考附录内容。

Skill 的主体我们可以看出来,是通过 「滚动式训练 + 自动验证 + 历史追踪」 实现的预测的自优化:

┌─────────────────────────────── ──────────────────────────────┐                                                                                                                                                                                            
   │  第 1 轮:10 月数据训练 → 11 月验证 → 保存结果                │                                                                                                                                                                                           
   │         ↓                                                    │                                                                                                                                                                                            
   │  第 2 轮:10-11 月数据训练 → 12 月验证 → 保存结果             │                                                                                                                                                                                           
   │         ↓                                                    │                                                                                                                                                                                            
   │  第 3 轮:10-12 月数据训练 → 1 月验证 → 保存结果              │                                                                                                                                                                                           
   │         ↓                                                    │                                                                                                                                                                                            
   │  ...每导入新月份数据,就重新训练一次...                       │                                                                                                                                                                                           
   │         ↓                                                    │                                                                                                                                                                                            
   │  模型越来越强!📈                                            │                                                                                                                                                                                            
   └─────────────────────────────── ──────────────────────────────┘                

3.4: 自优化的四个关键机制

如何让模型越来越聪明,预测越来越准确?关键点在于 Skill 中的四个关键机制:

3.4.1 滚动式训练 (Rolling Training)

# 每次用「所有历史数据」训练,不是只用最新数据                                                                                                                                                                                                              
  train_start = '2019-10-01'  # 固定起点                                                                                                                                                                                                                      
  train_end = '2019-11-01'    # 动态终点(每月推进)                                                                                                                                                                                                          
                                                                                                                                                                                                                                                              
  # 下一轮自动变成:                                                                                                                                                                                                                                          
  train_end = '2019-12-01'    # 包含 11 月新数据

这样设计:

  • 保留全部历史模式(季节性、节假日、趋势)
  • 新数据加入后,模型自动学习新规律
  • 不会遗忘旧知识(不是在线学习)
  • 但如果历史数据量变得非常庞大(例如几年甚至十年的分钟级数据),每次训练都包含“所有历史数据”会导致训练时长指数级增加。建议增加一个“窗口滑动”或“权重衰减”机制。

3.4.2 自动验证 (Auto Validation)

# 用下个月的真实数据验证准确性                                                                                                                                                                                                                              
  val_start = train_end       # 验证集开始 = 训练集结束                                                                                                                                                                                                       
  val_end = '2019-12-01'      # 验证集结束                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                              
  # 计算 MAPE、R² 等指标                                                                                                                                                                                                                                      
  mape = mean_absolute_percentage_error(y _true, y_pred) * 100                                                                                                                       

这是为了验证:

  • PV(页面浏览量)预测误差
  • 购买量预测误差
  • 黑五/感恩节等特殊节日的预测效果

3.4.3 历史追踪 (History Tracking)

# 每次验证结果保存到 JSON 文件                                                                                                                                                                                                                              
  validation_history.json                                                                                                                                                                                                                                     
  ├── versions: [                                                                                                                                                                                                                                             
  │   ├── version: "v20260309_134100"                                                                                                                                                                                                                         
  │   ├── train_days: 31                                                                                                                                                                                                                                      
  │   ├── best_model: "Lasso"                                                                                                                                                                                                                                 
  │   ├── pv_mape: 17.50%                                                                                                                                                                                                                                     
  │   └── purchase_mape: 11.63%                                                                                                                                                                                                                               
  │   ├── version: "v20260309_152600"                                                                                                                                                                                                                         
  │   ├── train_days: 61                                                                                                                                                                                                                                      
  │   ├── best_model: "GradientBoosting"                                                                                                                                                                                                                      
  │   └── pv_mape: 8.15%                                                                                                                                                                                                                                      
  │   ...    

实时追踪实际上是构建了一个轻量级的 MLOps 实验记录系统(类似 MLflow 的简易版)。它确保我们每一次训练的成功与失败都有迹可循,从而让模型能够从“靠运气瞎猜”进化为“有据可查的持续优化”。

  • 对比不同版本的性能
  • 观察模型是否随数据增加而提升
  • 发现过拟合/欠拟合问题

3.4.4 模型自动选择 (Auto Model Selection)

# 训练 7 种模型,自动选最佳                                                                                                                                                                                                                                 
  models = {                                                                                                                                                                                                                                                  
      'Ridge': Ridge(alpha=1.0),                                                                                                                                                                                                                              
      'Lasso': Lasso(alpha=0.01),                                                                                                                                                                                                                             
      'RandomForest': RandomForestRegressor(...),                                                                                                                                                                                                             
      'GradientBoosting': GradientBoostingRegressor(...),                                                                                                                                                                                                     
      'XGBoost': xgb.XGBRegressor(...),                                                                                                                                                                                                                       
      ...                                                                                                                                                                                                                                                     
  }                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                              
  # 自动选择 PV 预测误差最小的模型                                                                                                                                                                                                                            
  best_model = min(val_results.keys(),                                                                                                                                                                                                                        
                   key=lambda x: val_results[x]['pv_mape'])                                                                                                                                                                                                   
  • 不同数据量适合不同模型(小样本用 Lasso,大样本用 GradientBoosting)
  • 自动适配数据特征,不需要人工调参

3.5:第一次预测:

我们来简单看下预测结果。在第一次预测中,RDS MySQL 分析型实例中存了 eCommerce behavior data from multi category store 这个公开数据集中的前两个月的数据。让它基于 19 年 10 月的数据构建模型,并且用 19 年 11 月的数据进行验证。

在数据洞察、迭代验证、策略调整阶段,需要连接 RDS DuckDB 实例进行查询。对比普通 MySQL 实例,DuckDB 能够加速约 700 倍。

1. 执行预测
/skill ecommerce-predictor 预测下个月的PV\UV\Purchase\Cart
2. 结果

指标

数值

说明

PV MAPE 

26.92% 

平均绝对百分比误差 

购买量 MAPE

11.39%

购买量预测误差

黑五误差

45%

黑色星期五期间误差(未考虑节假日)

训练天数

31 天

2019-10-01 ~ 2019-11-01

验证天数

30 天

2019-11-01 ~ 2019-12-01

特征数

5 个

基础时间特征

模型

指数平滑

Baseline 模型 

问题: 黑五预测误差 45%,因为模型不知道 11 月 29 日是黑色星期五。

3. 发现问题、汲取经验教训

1. 未考虑节假日 - 黑五误差 45%

2. 基线建立 - 后续版本可以对比改进

3. 特征太少 - 只有 5 个基础特征,需要增加

可以看到商品预测 Skill 不仅可以分析当前的数据、预测数据,更重要的是,能根据预测结果来优化自身的模型从而使准确率越来越高。

3.6 第二次到第六次预测

之后每导入一个月的数据,Skill 会自动完成“分析-预测-自优化”的三个步骤。

来看 HISTORY.md 中记录的数据:

版本

训练天数

最佳模型

PV 误差

购买量误差

发生了什么

v1.0

31 天

指数平滑

26.92%

11.39%

基线模型,黑五误差 45%

v2.0

61 天

RandomForest

8.15%

23.17%

✅ 训练数据翻倍

v3.0

92 天

GradientBoosting

2.73%

42.28%

✅ PV 预测历史最优

v4.0

123 天

GradientBoosting

2.73%

42.28%

✅ 正式 v1

v5.0

152 天

Ridge

29.99%

36.99%

⚠️ 撞上美国疫情爆发

v6.0

183 天

GradientBoosting

10.03%

12.65%

✅ 购买量预测最优

PV 预测(每日页面浏览量)

指标

v1.0

v6.0 

改进

PV 预测

平均误差

26.92%

10.03%

↓ 62.7%

黑五误差

45%

-

完全解决

0.78

模型解释力优秀

购买量预测

平均误差

11.39%

12.65%

优秀水平(<15%

训练数据

31 天

183 天

数据量×5.9 

模型稳定性

高 

LOO CV 验证

从 v1.0 到 v6.0 的进化:

1. ✅ PV 预测误差下降 62.7%(26.92% → 10.03%)

2. ✅ 购买量预测保持优秀(11.39% → 12.65%,<15%)

3. ✅ 节假日预测完全解决(黑五误差 45% → 完美预测)

4. ✅ 数据量增长 5.9 倍(31 天 → 183 天)

5. ✅ 特征工程完善(5 个 → 20 个核心特征)

6. ✅ 模型稳定性验证(LOO CV MAPE 5.38%)

7. ✅ 全自动优化(无需人工干预)


四、总结

让我们回到第 1 部分开头的那句话:

AI 什么都懂,但什么都"不会做"。

现在,我们有了让 AI"会做事"的方法:

Skill 系统:给 AI 一本操作手册

  • ecommerce-predictor:教 AI 预测购买趋势(完整流程:数据洞察 → 特征工程 → 模型训练 → 验证迭代)
  • 每本 SKILL.md 经过同一套 pipeline:Discovery → Parse → Filter → Inject → Runtime
  • 系统不关心 SKILL.md body 里写的是一条 curl 命令还是一整套机器学习流程

DuckDB:让 AI 能秒级翻账本

  • 分析查询提速 1000+ 倍
  • 不影响线上交易(只读实例隔离)
  • 99.9% 兼容 MySQL 语法(现有 SQL 直接能用)

没有 DuckDB 之前: 查询一次历史数据等 2 小时,一天只能迭代 2 轮,对业务有影响。

有了 DuckDB 之后: 查询一次 2 秒,一天可以迭代几十轮,对业务无影响。

DuckDB + OpenClaw 如何帮助我们自动优化模型,预测未来?

1. Skill 系统 解决了"教 AI 按流程做事"的问题,给 AI 一本操作手册,它就能照着做

2. DuckDB 分析型实例 解决了"大数据分析太慢"的问题,秒级查询

3. 两者结合 实现了一个自动化的数据分析迭代闭环,AI 按手册操作,用分析引擎快速翻阅数据、生成预测、验证偏差、调整策略,循环往复,越来越准。

更多信息

附录

1. DuckDB 分析型实例:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/duckdb-analysis-instance/?spm=a2c4g.11186623.help-menu-26090.d_3_4.4f677453pHXOO7

2. ecommerce-predictor skill:https://github.com/huanjizhou/ecommerce-predictor

3. 创建并连接DuckDB分析主实例:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/create-and-connect-to-a-duckdb-based-analytical-primary-instance?spm=a2c4g.11186623.help-menu-26090.d_3_4_0_2.325a17e86coqAu

4. 访问天池数据集下载数据:https://tianchi.aliyun.com/dataset/220316

5. 访问 Kaggle 下载数据:https://www.kaggle.com/datasets/mkechinov/ecommerce-behavior-data-from-multi-category-store

6. RDS Custom集成OpenClaw :https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/rds-custom-openclaw-integration#section-config-apikey

免费试用

企业用户与个人用户均可免费试用DuckDB分析实例。更多细节,请参见免费试用与体验:

https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/duckdb-analysis-instance/#15729b3c4b3ln

更多性能测试

  • 基于标准TPC-H 的全面测试结果,请参见 附录:DuckDB分析只读实例性能测试。
  • ClickHouse 官方维护的性能基准测试(Benchmark)仪表板,直观地展示并对比各种主流分析型数据库(OLAP)在处理大规模数据集时的查询速度和性能表现。更多细节,请参见 ClickBench:

https://benchmark.clickhouse.com/#system=-&type=-&machine=-ca2l%7C6t%7Cg4e%7C6ax%7C6ale%7C3al&cluster_size=-&opensource=-&hardware=+c&tuned=+n&metric=cold&queries=-

专家面对面

若您对 DuckDB 有任何问题,可通过钉钉搜索群号入群咨询。您可以直接@群内专家,并附上您要咨询的问题。钉钉群号:106730000316。


来源  |  阿里云开发者公众号

作者  |  光齐

相关文章
|
26天前
|
自然语言处理 数据可视化 数据挖掘
BI已死?OpenClaw重塑数据分析:阿里云/本地部署+百炼免费API配置+飞书集成+超市数据实战指南
2026年,一场悄无声息的数据分析革命正在发生。参考文章作者的一句“BI已死!”,道出了无数业务人员的心声——当传统BI还在纠结报表模板、SQL语法时,OpenClaw(昵称“龙虾”)已凭借“自然语言对话+技能组合+一键可视化”的丝滑体验,让业务人员无需技术背景,就能完成从数据导入到报表生成、飞书文档写入的全流程。
531 0
|
1月前
|
人工智能 JSON 前端开发
Skills 真的可以帮我干活了:把工单分析变成一个可复用的 Skill
本文分享将企业内网工单分析SOP固化为Claude Skills的实践:摒弃不稳定的浏览器自动化,创新采用“Copy as fetch + agent-browser eval”方案,直接复用SPA页面接口请求,实现稳定、低开销的数据获取与AI分析,大幅提升重复性工单分析效率。
Skills 真的可以帮我干活了:把工单分析变成一个可复用的 Skill
|
30天前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
824 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
1月前
|
人工智能 移动开发 编译器
打造高可靠 AI 助手:Skill 编排、Workflow 设计与 Spec Coding 的深度实践
文章首先拆解了上下文工程的五大最佳实践模式(状态管理、渐进式上下文、结构化输出、模版程序、多步处理),并深入对比了 Skill 与 Subagent 在上下文管理机制上的本质差异。
打造高可靠 AI 助手:Skill 编排、Workflow 设计与 Spec Coding 的深度实践
|
30天前
|
数据采集 SQL 监控
告别先开发后治理:Agent 驱动的数据质量一体化交付
本文介绍DataWorks如何通过Data Contracts理念实现“代码即质量”:将数据质量规则以YAML Spec形式嵌入SQL开发流程,支持IDE内配置、版本管理、自动部署与闭环执行,解决传统治理滞后、迭代不同步、版本缺失等痛点,推动数据质量工程化、前置化。
|
23天前
|
弹性计算 人工智能 前端开发
Agent/Skills/Teams 架构演进过程及技术选型之道
本文系统梳理Agent架构演进路径:Single Agent→Multi-Agent→Agent Skills→Agent Teams,剖析其本质是大模型“领域知识注入”与“长期记忆管理”能力不足的工程补偿。结合阿里云实践及Google、Anthropic最新研究,提出“由简入繁、按需升级”的科学选型方法论,强调架构复杂度须匹配问题复杂度。
Agent/Skills/Teams 架构演进过程及技术选型之道
|
2月前
|
运维 Kubernetes 监控
3分钟从0到1搭建OpenClaw专属智能运维助手 ClawHub 20大运维skills库实现全流程自动化实战指南
在AIOps技术飞速发展的今天,OpenClaw凭借强大的技能扩展机制,成为运维领域的效率神器。ClawHub作为其官方技能市场,收录了数千个高质量运维相关技能,彻底改变了传统运维“手动操作多、流程繁琐、故障定位慢”的痛点。本文整理了ClawHub中20个最实用的运维技能,结合阿里云零门槛部署步骤、实战代码命令与场景化用法,帮助运维人员从0到1搭建专属智能运维助手,实现K8s管理、监控告警、数据库运维等全流程自动化。
2393 6
|
29天前
|
人工智能 数据库 开发者
OpenClaw「虾搞」数据库首场活动明日杭州开搞!
3月14日,OpenClaw“虾搞”数据库首场线下活动将在杭州阿里西溪园区举行。原定70人的技术沙龙,4天报名超600人,场地紧急扩容3倍!聚焦AI Agent与数据库融合,致敬开发者敢试错、勇探索的“虾搞”精神。全程直播,多地巡演即将启动。
314 3
|
16天前
|
存储 缓存 安全
深入理解OpenClaw技术架构与实现原理(下)
本文是《深入理解OpenClaw技术架构与实现原理(上)》的续篇,主要讲述从沙箱隔离到企业级智能体演进。
深入理解OpenClaw技术架构与实现原理(下)

热门文章

最新文章