aloudata logo
产品解决方案客户案例资源中心合作伙伴关于我们立即咨询

给小龙虾装上业务大脑:两个 SKILL 让 OpenClaw 学会查数和归因

2026-03-20|NoETL 博客

全网都在教小龙虾点外卖,我们让它算清了 GMV 为什么跌。这篇文章是配套的上手指南——从安装到提问到进阶调教,手把手带你跑通。

我们把小龙虾接上了 Aloudata CAN 语义层。六轮对话,从「上月销售额多少」一路追到「江西电商渠道销售额环比下降 67%,主因是购买用户数从 28 断崖式跌到 8」,最后还自动生成了一份带因子拆解、城市下钻的 HTML 归因报告。

操作视频在这里 ↓

https://weixin.qq.com/sph/AyLNg0BZQ

这篇文章主要回答看完视频之后你大概率会问三个问题:

  • 一、我自己能跑起来吗? —— 能,十分钟以内。

  • 二、它到底是怎么做到的? —— 两个 SKILL + Aloudata CAN 语义层 API,不是魔法。

  • 三、我能改它、甚至自己写新的 SKILL 吗? —— 能,而且这才是最有价值的部分。

一、十分钟跑起来

你需要准备什么

OpenClaw 与 Aloudata CAN 等技术材料获取方式对照表,含版本要求与功能说明

安装步骤

第一步:装 SKILL。

两个 SKILL 已经发布到 ClawHub,URL 如下,用你自己习惯的方式来安装。

https://clawhub.ai/jackyujun/metric-query

https://clawhub.ai/jackyujun/metric-attribution

安装过程中如果出现安全提示,点击「仍然安装」即可(这是因为 SKILL 需要 API Key 但未在配置中声明,不影响正常使用)。

第二步:配置 API Key。

SKILL 通过 Aloudata CAN Gateway 访问数据,Gateway 需要 API Key 做认证。把你的 Key 写到 OpenClaw 的环境变量文件 ~/.openclaw/.env 里:

CAN_API_KEY=cgk-你的Key

写好后,可能需要重启 OpenClaw,然后开一个新 session。 旧 session 不会自动拿到新的环境变量。

SKILL 调用 Gateway 时会通过 X-API-Key 请求头自动带上这个 Key。Key 不会出现在 SKILL 文件或对话记录中。

第三步:开始问问题。

就这么简单。试试:「上月销售额是多少?」

你会连到什么数据

Demo 环境是一个零售场景的数据集:54 个指标(销售额、客单价、购买用户数、UV、转化率等)、58 个维度(渠道、省份、城市、品牌、品类、性别等)。数据涵盖多个月份,足够你做各种同环比和归因分析。你可以直接问小龙虾「有哪些指标和维度?」,它会给你列明。

不用担心「问错了」——语义层已经定义好了所有指标的口径和计算逻辑,你用自然语言问,它翻译成结构化查询,不存在「写错 SQL」的可能。

二、两个 SKILL,各管一件事

很多人看完视频以为这是一个大而全的「AI 分析师」Agent,其实不是。我们拆成了两个 SKILL,各司其职:

metric-query:问数的 SKILL

这个 SKILL 只做一件事——把你的自然语言翻译成语义层的指标查询 API 请求。

你说「上月各渠道的销售额和环比」,它做的事情是:

  1. 先调 Aloudata CAN 搜索 API,找到「销售额」对应的指标名 retail_amt

  2. 再调 Aloudata CAN 维度 API,确认「渠道」对应的维度名 first_channel

  3. 然后构造一条结构化的 JSON 请求

  4. 发给指标查询 API,拿回数据

  5. 用自然语言把结果告诉你

注意第 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 之后,你会发现「怎么问」直接决定了回答的质量。这里是我们测试过程中总结的提问技巧:

查数:说清楚四件事

小龙虾内部会把你的问题拆解成四个维度,你说得越清楚,它翻译得越准:

查数

好的提问:

上月各一级渠道的销售额环比及占比情况如何?按占比从高到低排序。

这句话四个维度全覆盖了:指标(销售额)、分析方式(环比+占比+排序)、维度(一级渠道)、时间(上月)。

效果一般的提问:

数据怎么样?

太模糊了,小龙虾不知道你要看什么指标、什么时间、什么维度,只能「虾」猜。

归因:给它一个业务公式

如果你要做归因分析,最有效的做法是直接把业务公式告诉它。视频里那句话就是一个好例子:

江西环比下降这么多(销售额=购买用户数×客单价),生成一个归因诊断报告

括号里的公式告诉了小龙虾:销售额可以拆成两个因子来分析。有了这个公式,它才能判断「是用户少了还是价格低了」。

如果你不给公式,它也能做维度归因(按渠道、地区等维度看贡献度),但少了因子拆解那一层,分析深度会打折扣。

追问:跟着它的建议走

你可能注意到视频里小龙虾经常主动建议下一步——「要不要帮你看看是哪个渠道拖的后腿?」「要不要继续下钻江西?」

这不是客套话,而是它根据当前数据情况判断的合理分析方向。如果你不确定接下来问什么,跟着它的建议走通常不会错。当然你也完全可以无视它的建议,按自己的思路追问。

一些容易踩的坑

「同比」和「环比」别混。小龙虾对这两个词的理解很严格——「同比」默认是年同比(yoy),「环比」根据时间粒度选择(月环比=mom,周环比=wow)。如果你要月同比,请明确说「月同比」而不是「同比」。

不要问太笼统的排名。「销售额排名前 10」——什么时间段的?哪个维度的?如果你没说,它会用默认策略(通常是近 30 天),但不一定是你想要的。

筛选条件要精确。你说「按渠道筛选」,但系统里有「一级渠道」(firstchannel)和「二级渠道」(secondchannel)两个维度——数据查出来可能不符合你的预期。不确定的时候,先问「渠道有哪些维度和值?」让它列一下再选。

四、它背后到底调了什么 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:你要查的指标。retailamt 是销售额本身,后面带 _sameperiodmom 后缀的是快速计算——环比值、环比变化额、环比增长率。这些计算是语义层内置的,不需要你写公式。

  • dimensions:按什么维度拆分。first_channel 是一级渠道。

  • timeConstraint:时间范围。这里用 NOW() 函数做相对时间计算,意思是「当月往前推一个月」。语义层要求相对时间一律用 NOW(),不允许硬编码日期——这样你下个月再跑同一条查询,自动就是查最新的数据。

  • orders:排序。你可以按环比变化额升序排,跌得最狠的排最前面。

快速计算的命名规则

语义层的快速计算用双下划线拼接在指标名后面,像搭积木一样。常用的几块积木:

快速计算的命名规则

有一个重要限制:每个指标只能做一次快速计算,不能链式叠加。SKILL 约束了小龙虾不能写类似 retailamt_sameperiodmomgrowthrankDensedesc__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」——关键是想清楚三件事:

1. 它需要调哪些 API? 语义层 API 支持的能力(指标查询、快速计算)是底座,你的 SKILL 就是编排这些能力的「剧本」。

2. 它需要哪些护栏? 哪些错误是 LLM 容易犯的?写进「铁律」里,防患于未然。这也是我们两个 SKILL 里规则写得特别多的原因——都是测试过程中踩出来的坑。

3. 它的输出长什么样? 是一个数字?一段文字分析?一个 Word 文档还是一份 HTML 报告?你也可以定义输出格式偏好。

SKILL 是纯文本文件,不需要写代码,不需要编译部署。改完之后重新加载就能生效。

六、已知的不完美

这个 Demo 我们没花多少时间,也没太过精心编排,Demo 和小龙虾都会有些小瑕疵,在这里坦诚说说:

归因报告的外部事件模块需要你手动配搜索 Key。 视频里你看到了,我们给了 Tavily 的 Key,但小龙虾调的是 Brave 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

API key 二维码

下载安装 metric-query 和 metric-attribution SKILL

https://clawhub.ai/jackyujun/metric-query

https://clawhub.ai/jackyujun/metric-attribution

看完整的演示视频

视频二维码

Topic Hub

AI 数据智能

相关产品推荐
Recommended

Aloudata Agent

基于 NoETL 明细级语义编织的企业级可信数据分析智能体,以指标为中心进行语义一致的对话式数据分析。

联系我们
contact us code
扫码关注 Aloudata 微信公众号
获取更多 NoETL 技术干货
contact us code
扫码加入 Aloudata 技术交流群
获取更多最新案例资讯

即刻开启可信智能之旅

我们的行业专家会第一时间联系您,帮助您了解更多
aloudata logo

电话0571-85106688

邮箱marketing@aloudata.com

简历hr@aloudata.com

wechat service qr code扫码关注 Aloudata

© 2021-2026 大应科技有限公司 浙 ICP 备 2021026047 号 -1

浙公网安备 33010602011980 号