OpenClaw两大SKILL实测:查数与归因效率翻倍
先给出几个核心判断。把小龙虾(OpenClaw)接入 Aloudata CAN 语义层后,通过六轮对话就能从「上月销售额多少」一路追问到「江西电商渠道销售额环比下降 67%,主因是购买用户数从 28 骤降至 8」,最终自动生成一份包含因子拆解和城市下钻的 HTML 归因报告。本文是配套的上手实操指南——涵盖安装、提问到进阶调优,帮你完整跑通全流程。
完整演示视频地址:
https://www.bilibili.com/video/BV16AAjzKEYU/
看完视频,你大概率会冒出三个问题:
一、我自己能搞定部署吗? ——可以,十分钟内搞定。
二、它的工作原理是什么? ——两个 SKILL + Aloudata CAN 语义层 API,不是魔法,是工程化组合。
三、能自定义或开发新的 SKILL 吗? ——完全可以,而这正是最有价值的部分。
一、十分钟快速部署
需要准备的组件
| 资源 | 获取途径 | 备注 |
|---|---|---|
| OpenClaw | 官网一键安装,各发行版也适用 | 版本 ≥ 2026.3.x |
| Aloudata CAN API Key | 扫描下方二维码申请 | 免费 Demo 环境,包含零售场景数据集(指标与维度) |
| metric-query SKILL | ClawHub | 负责指标查询 |
| metric-attribution SKILL | ClawHub | 负责归因分析 |
安装流程
第一步:安装 SKILL。
两个 SKILL 已发布到 ClawHub,按你习惯的方式安装即可。若出现安全提示,点击「仍然安装」继续。这是因为 SKILL 需要 API Key 但未在配置中声明,不影响正常使用。
第二步:配置 API Key。
SKILL 通过 Aloudata CAN Gateway 访问数据,Gateway 需要 API Key 进行认证。将你的 Key 写入 OpenClaw 的环境变量文件 ~/.openclaw/env:
CAN_API_KEY=cgk-你的Key
完成后建议重启 OpenClaw,然后开启一个新会话。旧会话不会自动获取新环境变量。SKILL 调用 Gateway 时会通过 X-API-Key 请求头自动携带该 Key,不会明文出现在 SKILL 文件或对话记录中。
第三步:开始提问。
就这么简单。直接试问:「上月销售额是多少?」
你会连到的数据
Demo 环境是一个零售场景数据集:54 个指标(销售额、客单价、购买用户数、UV、转化率等)、58 个维度(渠道、省份、城市、品牌、品类、性别等)。数据涵盖多个月份,足以进行各类同环比和归因分析。你也可以直接问小龙虾「有哪些指标和维度?」,它会列出所有可用的元素。
不用担心「问错」——语义层已定义所有指标的口径和计算逻辑,你用自然语言提问,它翻译成结构化查询,不存在「写错 SQL」的可能。
二、两个 SKILL,各司其职
很多人看完视频以为这是一个大而全的「AI 分析师」Agent——其实不然。我们拆成两个独立的 SKILL,职责明确。
metric-query:负责数据查询的 SKILL
这个 SKILL 只做一件事:将你的自然语言翻译成语义层的指标查询 API 请求。
你说「上月各渠道的销售额和环比」,它执行以下步骤:
- 先调用 Aloudata CAN 搜索 API,找到「销售额」对应的指标名
retail_amt - 再调用 Aloudata CAN 维度 API,确认「渠道」对应的维度名
first_channel - 然后构造一条结构化的 JSON 请求
- 发送给指标查询 API,获取数据
- 用自然语言将结果反馈给你
关键在第 1 和第 2 步——它不是凭记忆猜测指标名和维度名。每次查询前,它都会先向 Aloudata CAN 语义层的 Gateway 搜索,确认指标和维度确实存在。这就是它不会「幻觉」出不存在的指标的原因。
该 SKILL 支持的查询能力包括:基础查询、同环比(年/季/月/周/日)、占比、排名、维度筛选、结果筛选(基于指标值)、临时指标定义、时间限定、多层聚合——几乎所有常见的数据查询操作,它都能翻译成对应的 API 请求。
metric-attribution:负责归因分析的 SKILL
这个 SKILL 是一个诊断流程的编排器。当你问「为什么跌了」,它不是调用一次 API 就结束,而是按照一套诊断逻辑执行多个步骤:
Step 1 → 确认波动事实:变化幅度多大?与什么基准对比?
Step 2 → 因子拆解:哪个业务环节出了问题?(如 销售额 = 用户数 × 客单价)
Step 3 → 维度归因:问题集中在哪个渠道、哪个地区、哪个品类?
Step 4 → 外部事件关联:有无天气、促销、政策等外部因素?
Step 5 → 综合诊断报告:将所有发现串联成因果链
每一步都会调用 metric-query 的查询能力取数据,然后在本地进行归因计算(包括 Shapley 值分解),最后汇总成报告。视频中深色主题的 HTML 归因报告就是 Step 5 的输出成果。
为什么要拆成两个 SKILL? 因为查数和归因是两个使用频率完全不同的操作。日常 80% 的场景是「查个数」——metric-query 轻量、快速、一问一答。只有当发现数据异常、需要深挖原因时,才触发 metric-attribution 的完整诊断流程。拆开后,简单问题不走复杂流程,复杂问题则有专门的方法论支撑。
三、如何提问效果最佳
安装好 SKILL 后,你会发现「怎么问」直接决定了回答质量。以下是我们测试中总结的提问技巧。
查数:讲清楚四要素
小龙虾在后台会将你的问题拆解为四个维度——你说得越清晰,它翻译得越精准:
| 你要明确的 | 示例 |
|---|---|
| 看什么(指标) | 「销售额」「客单价」「购买用户数」 |
| 怎么看(分析方式) | 「环比增长率」「各渠道占比」「按贡献排序」 |
| 看谁的(维度和筛选) | 「电商渠道的」「江西省的」「按省份拆分」 |
| 看哪段时间(时间范围) | 「上月」「近 30 天」「2025 年 Q4」 |
高效提问示例:
「上月各一级渠道的销售额环比及占比情况如何?按占比从高到低排序。」——这个提问覆盖了全部四个维度。
低效提问示例:
「数据怎么样?」——过于模糊,小龙虾无法确定你要看什么指标、什么时间、什么维度,只能随机猜测。
归因:给出业务公式
若要执行归因分析,最有效的做法是直接将业务公式告诉它。视频中的提问就是一个好范例:
「江西环比下降这么多(销售额=购买用户数×客单价),生成一个归因诊断报告」
括号内的公式告诉小龙虾:销售额可以拆为两个因子进行分析。有了这个公式,它才能判断「是用户减少了还是价格降低了」。如果你不提供公式,它也能进行维度归因(按渠道、地区等维度来拆解贡献度),但缺少因子拆解这一层,分析深度会打折扣。
追问:跟随它的建议推进
你可能会注意到视频中小龙虾经常主动给出下一步建议——「要不要帮你看看是哪个渠道拖的后腿?」「要不要继续下钻江西?」这不是客套话,而是它根据当前数据判断出的合理分析方向。如果你不确定接下来问什么,跟随它的建议通常不会出错。当然,你也可以完全忽略它的建议,按自己的思路继续追问。
常见易错点
「同比」和「环比」不要混用。 小龙虾对这两个词的理解非常严格——「同比」默认是年同比(yoy),「环比」根据时间粒度选择(月环比=mom,周环比=wow)。如果你需要月同比,请明确说「月同比」而非「同比」。
避免笼统的排名请求。 「销售额排名前 10」——什么时间段?哪个维度?如果你没指定,它会使用默认策略(通常是近 30 天),但可能并非你想要的。
筛选条件要精确。 你说「按渠道筛选」,但系统中有「一级渠道」(first_channel)和「二级渠道」(second_channel)两个维度——查询结果很可能不符合预期。不确定时,先问「渠道有哪些维度和值?」让它列出后再选择。
四、背后调用了哪些 API
如果你是工程师,想深入了解底层机制,下面拆解 SKILL 背后的 API 体系。
Gateway:所有请求的入口
两个 SKILL 的所有请求都经过同一个 Gateway:https://gateway.can.aloudata.com。Gateway 内置了认证,你不必在每次请求中手动传递 token。Gateway 暴露了两类 API:
搜索类(用于查找指标和维度):
GET /api/metrics/search?keyword=销售额— 搜索指标GET /api/metrics/{metricName}/dimensions— 查询某个指标有哪些维度GET /api/metrics/dimensions?metricNames=指标1,指标2— 查询多个指标的共同维度(交集)
查询类(用于获取数据):
POST /api/metrics/query— 指标数据查询
整体流程就是两步:先搜索后查询。每次查询前都先通过搜索 API 确认指标名和维度名的正确性,避免幻觉。
一条查询的结构示例
以「上月各渠道销售额及环比」为例,小龙虾构造的 JSON 请求体大致如下:
{
"metrics": [
"retail_amt",
"retail_amt__sameperiod__mom__value",
"retail_amt__sameperiod__mom__growthvalue",
"retail_amt__sameperiod__mom__growth"
],
"dimensions": ["first_channel"],
"timeConstraint": "DateTrunc(['metric_time'], \"MONTH\") = DATEADD(DateTrunc(NOW(), \"MONTH\"), -1, \"MONTH\")",
"orders": [{"retail_amt__sameperiod__mom__growthvalue": "asc"}]
}
核心概念说明:
- metrics:你要查询的指标。
retail_amt是销售额本身,后面带__sameperiod__mom__后缀的是快速计算——环比值、环比变化额、环比增长率。这些计算由语义层内置,无需你手动写公式。 - dimensions:按什么维度拆分。
first_channel是一级渠道。 - timeConstraint:时间范围。这里使用
NOW()函数进行相对时间计算,意为「当前月往前推一个月」。语义层要求相对时间一律使用NOW(),不允许硬编码日期——这样你下个月再运行同一条查询,自动会查最新数据。 - orders:排序方式。你可以按环比变化额升序排列,让跌幅最大的排在最前面。
快速计算的命名规则
语义层的快速计算通过双下划线拼接在指标名后面,像搭积木一样组合。常用的积木块:
| 你想要的 | 写法 | 示例 |
|---|---|---|
| 月环比增长率 | __sameperiod__mom__growth |
retail_amt__sameperiod__mom__growth |
| 年同比值 | __sameperiod__yoy__value |
retail_amt__sameperiod__yoy__value |
| 全局占比 | __proportion__ |
retail_amt__proportion__ |
| 按渠道排名(降序) | __rankDense__desc__first_channel |
retail_amt__rankDense__desc__first_channel |
有一个重要限制:每个指标只能做一次快速计算,不能链式叠加。 SKILL 约束了小龙虾不能写类似 retail_amt__sameperiod__mom__growth__rankDense__desc__xxx(先算环比再排名)这样的代码。如果需要多步计算,会通过临时指标定义(metricDefinitions)分步实现。
五、如何调教和改造
如果你不只是想使用现成的 SKILL,而是希望根据自身业务场景进行调整,这一节会告诉你操作方法。
理解 SKILL 的结构
SKILL 本质上是一份 Markdown 文档,包含以下内容:
- 触发条件(description):何时该调用这个 SKILL
- API 信息:接口地址、请求格式
- 规则和约束(铁律):防止 LLM 犯常见错误的护栏
- 示例:完整的 JSON 请求体示例
- 常见错误模式:告诉 LLM 哪些坑不能踩
你可以把它理解为一份写给 LLM 的「操作手册」——LLM 阅读这份手册后,就能正确调用 Aloudata CAN 语义层 API。
可以修改的内容
修改触发条件。 如果你有自己的术语习惯(例如你们称销售额为「实收」),可以在 description 中添加这些同义词,使 SKILL 在你说「实收为什么跌了」时也能被触发。
增加业务规则。 SKILL 适合放置那些每次查询都生效、不应让用户反复解释的结构性约定。例如现有 SKILL 规定「同比」默认映射为年同比(yoy)——如果你们公司说「同比」实际上指月同比,修改这条规则后,所有查询就会自动按月度同比处理。
调整归因流程。 metric-attribution 的五步诊断流程并非固定不变。如果你的业务场景不需要外部事件关联(Step 4),或者你有更精细的因子拆解公式,直接修改 SKILL 文档即可。
更改报告模板。 归因报告的结构定义在 SKILL 的 Step 5 中。想换成你们老板习惯的汇报格式?修改模板即可。
如何编写一个全新的 SKILL
如果你想针对自己的业务场景编写一个新的 SKILL——例如「毛利监控 SKILL」「库存预警 SKILL」——关键在于理清三件事:
- 它需要调用哪些 API? 语义层 API 提供的能力(指标查询、快速计算)是底座,你的 SKILL 就是编排这些能力的「剧本」。
- 它需要哪些护栏? 哪些错误是 LLM 容易犯的?写入「铁律」中,防患于未然。这也是我们两个 SKILL 中规则写得特别多的原因——全是测试过程中踩过的坑。
- 它的输出形式是什么? 是一个数字?一段文字分析?一个 Word 文档还是 HTML 报告?你也可以自定义输出格式偏好。
SKILL 是纯文本文件,无需写代码、无需编译部署。修改后重新加载即可生效。
六、已知局限
这个 Demo 没有投入过多时间,也没有进行精心编排,Demo 和小龙虾都存在一些小瑕疵,在此坦诚说明。
归因报告的外部事件模块需要手动配置搜索 Key。 视频中你看到了,我们给了 Ta vily 的 Key,但小龙虾调用的是 Bra ve Search API——两边不一致,导致报告中的「外部事件关联」部分变成了「待验证假设」。这个问题后续会修复,使搜索引擎配置更灵活。
报告生成偶尔会出现文件路径问题。 视频中第一次打开报告时出现了 404,原因是文件名拼写错误(attribution 少了个 t)。这类问题属于 LLM 的随机性,并非每次都会出现,但确实可能发生。如果遇到,直接问小龙虾「为什么打不开」,它会自行排查修复。
复杂查询偶尔需要多轮纠正。 涉及多步计算(例如「先算环比再排名」)时,LLM 有时会犯链式叠加的错误。SKILL 中已编写了防护规则(铁律 5),大多数情况下能拦截,但并非 100% 可靠。如果结果看起来不对,可以让它重新构建一次查询。
定时任务目前较为基础。 视频最后配置的「每月 2 号自动跑归因」是 OpenClaw 的定时任务功能,目前只能做到定时触发 + 生成归因报告。我们计划后续做一个更完善的「数据月报 SKILL」,将整轮对话的分析逻辑更好地沉淀下来。
七、总结
最后分享一个做这件事过程中最深的体会。小龙虾(OpenClaw)解决的是 Agent 的「执行力」问题——它能操作你的电脑、调用各种工具。但当我们让它进行数据分析时,我们发现它缺的不是手脚,而是业务常识。
「销售额」这个词,在你公司的口径中到底含不含退款?「客单价」是按订单计算还是按客户计算?「环比」是跟上月比还是跟上周比?这些问题,LLM 不知道,也不应该猜测。语义层的价值就在于它把这些业务常识编码成了结构化的定义——指标如何计算、维度如何划分、口径如何统一——然后通过 API 暴露给 Agent。Agent 不需要理解你的业务,它只需要会调用 API,语义层保证返回的数据是正确的。
这就是为什么我们选择做 SKILL 而不是做 Prompt。Prompt 是「教 LLM 怎么猜」,SKILL + 语义层 API 是「让 LLM 不用猜」。
开始尝试
| 你想要的 | 获取方式 |
|---|---|
| 申请 Aloudata CAN Demo 环境 API Key | ![]() |
| 下载安装 metric-query 和 metric-attribution SKILL | https://clawhub.ai/jackyujun/metric-query https://clawhub.ai/jackyujun/metric-attribution |
| 查看完整演示视频 | ![]() |
如有问题欢迎在评论区留言,或直接在 SKILL 市场的讨论区反馈。

