OpenClaw × Aloudata CAN:两个 Skill 让 AI 学会查数和归因

OpenClaw × Aloudata CAN:两个 Skill 让 AI 学会查数和归因全网都在教小龙虾点外卖 我们让它算清了 GMV 为什么跌 这篇文章是配套的上手指南 从安装到提问到进阶调教 手把手带你跑通 OpenClaw GitHub https github com OpenClawAI openclaw 我们把小龙虾接上了 Aloudata CAN 语义层 六轮对话 从 上月销售额多少 一路追到 江西电商渠道销售额环比下降 67 主因是购买用户数从 28

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



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

OpenClaw GitHub: https://github.com/OpenClawAI/openclaw

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

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

  1. 我自己能跑起来吗?——能,十分钟以内。
  2. 它到底是怎么做到的?——两个 Skill + Aloudata CAN 语义层 API,不是魔法。
  3. 我能改它、甚至自己写新的 Skill 吗?——能,而且这才是最有价值的部分。

  • 已安装的 OpenClaw(能正常对话)
  • Aloudata CAN Demo 环境 API Key(文末申请)

第一步:装 Skill

两个 Skill 已经发布到 ClawHub,用你自己习惯的方式来安装:

  • metric-query: https://clawhub.ai/jackyujun/metric-query
  • metric-attribution: 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」的可能。


很多人看完 Demo 以为这是一个大而全的「AI 分析师」Agent,其实不是。我们拆成了两个 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 支持的查询能力覆盖:

能力 说明 基础查询 单指标/多指标查询 同环比 年/季/月/周/日同比环比 占比 维度内占比计算 排名 按指标值排序 维度筛选 按维度值过滤 结果筛选 按指标值过滤 临时指标定义 计算派生指标 时间限定 相对/绝对时间范围 多层聚合 多维度交叉分析

这个 Skill 是一个诊断流程的编排器。当你问「为什么跌了」,它不是调一次 API 就完事,而是按照一套诊断逻辑走多个步骤:

Step 1 → 确认波动事实:变了多少?跟什么比? Step 2 → 因子拆解:哪个业务环节出了问题?(如 销售额 = 用户数 × 客单价) Step 3 → 维度归因:问题集中在哪个渠道、哪个地区、哪个品类? Step 4 → 外部事件关联:有没有天气、促销、政策等外部因素? Step 5 → 综合诊断报告:把所有发现串成一条因果链

每一步都会调用 metric-query 的查询能力取数据,然后在本地做归因计算(包括 Shapley 值分解),最后汇总成报告。

视频里那份深色主题的 HTML 归因报告,就是 Step 5 的产出。

因为查数和归因是两个频率完全不同的操作。

操作 频率 重量 查个数 日常 80% 轻量、快速、一问一答 挖原因 发现异常时 20% 重量、多步、完整诊断

拆开之后,简单问题不走复杂流程,复杂问题有专门的方法论。这个原则不只适用于数据分析,适用于所有 Skill 设计。


装好 Skill 之后,你会发现「怎么问」直接决定了回答的质量。这里是我们测试过程中总结的提问技巧:

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

好的提问

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

效果一般的提问

数据怎么样?

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

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

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

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

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

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

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

坑点 说明 「同比」和「环比」别混 「同比」默认是年同比(yoy),「环比」根据时间粒度选择(月环比=mom,周环比=wow)。如果要月同比,明确说「月同比」 不要问太笼统的排名 「销售额排名前 10」——什么时间段?哪个维度?没说的话会用默认策略,不一定是你想要的 筛选条件要精确 「按渠道筛选」但系统有「一级渠道」和「二级渠道」两个维度——不确定时先问「渠道有哪些维度和值?」

如果你是工程师,可能想了解得更深一些。这一节拆解 Skill 背后的 API 体系。

两个 Skill 的所有请求都走一个 Gateway:https://gateway.can.aloudata.com

Gateway 内置了认证,你不需要在每次请求中手动传 token。Gateway 暴露了两类 API:

搜索类(用来找指标和维度)

API 说明 GET /api/metrics/search?keyword=销售额 搜指标 GET /api/metrics/{metricName}/dimensions 查某个指标有哪些维度 GET /api/metrics/dimensions?metricNames=指标1,指标2 查多个指标的共同维度(交集)

查询类(用来取数据)

API 说明 POST /api/metrics/query 指标数据查询

整个流程就是两步:先搜后查。每次查询前都先通过搜索 API 确认指标名和维度名的正确性,避免幻觉。

以「上月各渠道销售额及环比」为例,小龙虾构造的 JSON 请求体大概长这样:

{  "metrics": [  "retail_amt",  "retail_amtsameperiodmomvalue",  "retail_amtsameperiodmomgrowthvalue",  "retail_amtsameperiodmomgrowth"  ],  "dimensions": ["first_channel"],  "timeConstraint": "DateTrunc([‘metric_time’], "MONTH") = DATEADD(DateTrunc(NOW(), "MONTH"), -1, "MONTH")",  "orders": [{"retail_amtsameperiodmomgrowthvalue": "asc"}] }

核心概念解释:

字段 说明 metrics 要查的指标。 retail_amt 是销售额本身,带 sameperiodmom 后缀的是快速计算——环比值、环比变化额、环比增长率 dimensions 按什么维度拆分。 first_channel 是一级渠道 timeConstraint 时间范围。用 NOW() 做相对时间计算,下个月再跑同一条查询,自动就是最新数据 orders 排序。按环比变化额升序排,跌得最狠的排最前面

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

指标名对比基准对比方式计算类型

有一个重要限制:每个指标只能做一次快速计算,不能链式叠加。Skill 约束了小龙虾不能写类似 retail_amtsameperiodmomgrowthrankDensedescxxx(先算环比再排名)这样的代码。如果需要多步计算,会用临时指标定义(metricDefinitions)分步来做。


如果你不只是想用现成的 Skill,而是想根据自己的业务场景调整,这一节告诉你怎么做。

Skill 本质上就是一份 Markdown 文档,里面包含了:

组成部分 说明 触发条件(description) 什么时候该调用这个 Skill API 信息 接口地址、请求格式 规则和约束(铁律) 防止 LLM 犯常见错误的护栏 示例 完整的 JSON 请求体示例 常见错误模式 告诉 LLM 哪些坑不能踩

你可以把它理解成一份写给 LLM 的「操作手册」——LLM 读了这份手册,就知道怎么正确地调用 Aloudata CAN 语义层 API。

改什么 说明 触发条件 如果你们管销售额叫「实收」,在 description 里加上同义词 业务规则 Skill 规定「同比」默认映射为年同比(yoy)——如果你们公司说「同比」其实是指月同比,改掉就行 归因流程 metric-attribution 的五步诊断流程不是固定的,按需调整 报告模板 归因报告的结构定义在 Step 5 里,想换汇报格式直接改模板

如果你想针对自己的业务场景写一个新的 Skill——比如「毛利监控 Skill」「库存预警 Skill」——关键是想清楚三件事:

问题 说明 它需要调哪些 API? 语义层 API 支持的能力是底座,你的 Skill 就是编排这些能力的「剧本」 它需要哪些护栏? 哪些错误是 LLM 容易犯的?写进「铁律」里,防患于未然 它的输出长什么样? 一个数字?一段文字分析?一个 Word 文档还是一份 HTML 报告?

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


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

问题 说明 应对 归因报告外部事件模块需手动配搜索 Key Tavily 的 Key 和 Brave Search API 没对上,导致「外部事件关联」变成「待验证假设」 后续会修复,让搜索引擎配置更灵活 报告生成偶尔有文件路径问题 文件名拼写错误(attribution 少了个 t),属于 LLM 的随机性 直接问小龙虾「为什么打不开」,它会自己排查修复 复杂查询偶尔需要多轮纠正 涉及多步计算时,LLM 有时会犯链式叠加的错误,铁律能拦住大多数但不是 100% 如果结果看起来不对,让它重新构建一次查询 定时任务目前比较基础 只能做到定时触发 + 生成归因报告 计划后续做更完善的「数据月报 Skill」

小龙虾(OpenClaw)解决的是 Agent 的「执行力」问题——它能操作你的电脑、调用各种工具。但当我们让它去做数据分析的时候,我们发现它缺的不是手脚,而是业务常识。

「销售额」这个词,在你公司的口径里到底含不含退款?「客单价」是按订单算还是按客户算?「环比」是跟上月比还是跟上周比?

这些问题,LLM 不知道,也不该猜。语义层的价值就在于它把这些业务常识编码成了结构化的定义——指标怎么算、维度怎么分、口径怎么对——然后通过 API 暴露给 Agent。Agent 不需要懂你的业务,它只需要会调 API,语义层保证返回的数据是对的。

这就是为什么我们选择做 Skill 而不是做 Prompt。Prompt 是「教 LLM 怎么猜」,Skill + 语义层 API 是「让 LLM 不用猜」。

步骤 链接 申请 API Key Aloudata CAN Demo 环境 安装 metric-query https://clawhub.ai/jackyujun/metric-query 安装 metric-attribution https://clawhub.ai/jackyujun/metric-attribution

小讯
上一篇 2026-04-19 21:42
下一篇 2026-04-19 21:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271373.html