先说说我为什么要折腾这套组合吧。过去做月度经营分析报告,我的流程基本是固定的:从数据库里导出明细,在Excel里做透视表,拉到Power BI Desktop里拖字段、调图表、换主题色,最后还要担心领导临时加一句"把上个月也放进来对比一下"。这一套下来,少说半天时间没了。后来我开始用WorkBuddy搭配PowerBI官方skill,把"取数—建模—出图—排版"这几个环节交给AI去跑,整个周期从半天压到了半小时左右。这篇文章的主角就是WorkBuddy、PowerBI、skill、AI、可视化报告这五个词组成的这一套工作流。
这篇文章不是写给专职数据分析师的,而是写给那些日常要交数据报告、被周报月报压得喘不过气,又愿意花一下午把流程工具化的业务和运营同学。我会把WorkBuddy为什么需要skill、PowerBI官方skill内置了什么能力、从一份Excel到一页看板到底怎么跑通、以及我实测踩过的几个坑,全部交代清楚。
1. 先解决一个认知问题:PowerBI官方skill到底是什么,以及它为什么值得折腾
1.1 没配skill的AI,和配了skill的AI,差距在哪
你可能已经让AI写过DAX公式,甚至让AI给你规划过Power BI报表结构。但大多数人的体感是:问一次能用,连续问几个问题就开始前后矛盾。比如它前一条建议用CALCULATE做同比,后一条又把筛选条件直接写在了SUMMARIZE里;前一条让你建日期表,后一条又给了一个不关联任何表的YEAR(TODAY())判断。
这不是AI笨,而是因为它对"你的Power BI环境"一无所知。通用AI对话模型只知道Power BI这个软件的模糊轮廓,不知道你在用哪个版本、你的数据模型里有几张表、字段之间的关联关系是什么样的、你们公司的指标口径是怎么定义的。没有这些约束,AI给你的建议就永远是"看起来对,落不了地"。
WorkBuddy这种AI工作台解决了一部分问题:它能在会话里读写文件、执行命令、调用接口,相当于给AI装上了手和脚。但光有手脚还不够——它还需要一份"这个项目到底应该怎么干活"的操作规范。这份操作规范就是skill。
1.2 skill的运行逻辑:行为说明书,不是插件市场里的"小工具"
很多人一听skill,容易把它理解成类似浏览器插件那种"装了就多一个功能"的存在。其实没那么玄。WorkBuddy里的skill,本质上是一份高度结构化的行为说明书,里面写的是:这个技能负责解决什么类型的问题、触发条件是什么、执行步骤是哪些、每一步有什么硬性规则、输出格式长什么样。
我习惯把它类比成给新来的实习生发岗位SOP。实习生不需要重新发明工作方法,按SOP走,至少能交出60分的活儿;遇到SOP没覆盖到的意外,再回来问你。skill对AI的作用也一样——它把Power BI场景里那些"老师傅才知道的门道"提前写进规则,模型在生成建议时就有据可依,而不是凭猜。
PowerBI官方skill拿到的权限更高一些:它不光有文本规则,还封装了与Power BI生态对接的接口能力。比如数据源连接检查、语义模型结构识别、DAX表达式校验、图表配置生成、主题JSON输出,甚至Power BI Service上的数据集和报告发布。换句话说,这个skill让WorkBuddy不再只是"会聊Power BI",而是"能按Power BI官方的规范去操作Power BI"。
为什么Power BI特别适合做成skill?因为Power BI的复杂度恰恰不在鼠标点选上。拖一个图表谁都会,真正的门槛在三个地方:数据模型怎么设计、DAX怎么写才不出错、视觉对象怎么选才能把信息讲清楚。这三块都是高度结构化的知识,完全可以沉淀成规则模板。而WorkBuddy这种Agent工作台,又天然适合"读取规则—理解数据—生成结果—调用接口"这样的循环。
所以我现在的固定搭配是:WorkBuddy负责跑流程,PowerBI官方skill负责把Power BI的门道塞给模型,最后把关的仍然是我。
2. 环境准备:WorkBuddy装好之后,先把PowerBI skill请进门
2.1 安装WorkBuddy时容易被忽略的三个细节
如果你还没装WorkBuddy,先说明一下:它是一个可以跑在本地的工作台,Windows和Linux都能装。安装包本身不复杂,但我第一次装的时候还是踩了几个细节,这里直接列出来。
第一,底层依赖要提前确认。WorkBuddy这类工作台一般依赖Python环境和Git环境,尤其是要跑skill里封装的各种脚本时,缺了哪个都会在中间步骤才报错,排查起来很头疼。我建议装之前先在终端里跑一遍python --version和git --version,确认版本别太老,再开始装。
第二,缓存目录别放C盘。WorkBuddy在跑报告生成类任务时,会产生大量的中间文件——数据源临时副本、图表JSON、主题文件、日志。默认缓存如果放在系统盘,几轮生成下来C盘空间会很紧张。我后来把工作目录和缓存都指到了D盘,世界清净了。这个配置在WorkBuddy的设置文件里改,具体路径不同版本有差异,装好后花十分钟提前改掉,比事后迁移省事。
第三,skill清单的拉取渠道要认准官方源。WorkBuddy能加载的skill不少,社区里也有热心人分享各种封装包,但涉及Power BI这种要连生产数据的场景,我建议只用官方发布的skill版本。社区版可能会有更激进的功能,但接口稳定性和数据安全没法保证,万一在刷新报告时把数据集结构改乱了,得不偿失。
2.2 让PowerBI skill生效的配置方式
装好WorkBuddy之后,PowerBI官方skill并不是默认启用的,需要你把它放到指定的skills目录,并在配置里声明一下。这个动作本身不难,但有几个关键配置值得展开讲。
skill的入口文件通常长这样:
name: powerbi-report-builder description: 将原始数据转换为可发布的Power BI可视化报告。当用户提到报表、看板、数据可视化、Power BI、DAX时使用。 version: "1.2" trigger: - 报表 - 看板 - powerbi - 数据可视化 - dax这个文件的职责是让WorkBuddy在合适的时机想起这个skill。trigger列表里写的词,决定了AI在听到哪些关键词时会主动加载这套工作流。我建议你把"周报""月报""经营分析"这类你们团队的高频词也加进去,这样就不需要每次手动指定。
入口文件只是敲门砖,真正的核心规则写在配套的Markdown文档里,我用一个精简版示范一下:
# Power BI 报告生成技能 ## 执行总流程 1. 数据探查:读前100行数据,输出字段清单、数据类型、缺失率、去重统计。 2. 模型设计:区分事实表和维度表;所有包含日期的字段必须关联日期维度表。 3. 度量值设计:金额类用DECIMAL,比率类需明确返回格式,统一标注口径。 4. 视觉对象设计:按信息层级选图,趋势优先折线图,占比优先条形图。 5. 输出自检:交付前须报告数据血缘、DAX校验结果、口径说明。 ## 硬性规则 - 所有DAX表达式必须附带一句中文解释。 - 日期维度表必须包含"日期、年、月、季度、星期"五个字段。 - 禁止在无明确业务口径的情况下直接计算同比环比。这些规则看起来简单,但它们就是AI在生成报告时不能越过的边界。没有它们,AI可能给你一个花哨但口径错误的"毛利率";有了它们,AI至少会在计算前先问一句"这里的毛利是扣掉退货后的吗"。
说实话,第一次看到skill生效的过程,我还是有点意外的。原本在对话里要反复强调的"注意日期维表""金额字段用小数""图表标题要有单位"这些要求,全都安静地沉到了后台,我只管提需求就行。这就是skill和临时对话最大的区别——临时对话靠你每次记得说,skill靠系统必然执行。
3. 实战演示:从一份销售明细表到一页可视化看板
3.1 典型的数据输入:一份销售明细,两张附加表
纸上谈兵没意思,我拿一份模拟数据走一遍完整流程。假设你手上有三份数据:
- 销售明细表:包含订单日期、区域、产品名称、销售金额、成本、订单量,大概5万行。
- 区域维度表:区域编号对应的区域名称、负责人。
- 产品分类表:产品名称对应的品类、上市日期。
大多数业务报表的源头数据也就是这个规模,既有明细又有维度,适合用来演示整个建模过程。
3.2 四段关键对话的设计思路
我把整个生成过程拆成四段对话,每段只让AI干一件事。不要试图一句话让AI"把报告全做了",那样它容易自作主张,且中间出错后很难定位问题。
第一段,数据探查。我的原始指令是:
"读取销售明细表、区域维度表、产品分类表,先做数据探查。我需要你告诉我:每张表的行数和列数、关键字段的数据类型、明显的缺失值和异常值、以及销售金额的时间覆盖范围。不要急着建模,先让我确认数据没问题。"这一步的目的不是听AI汇报,而是让它把数据读进上下文。探查结果也会暴露问题,比如日期字段被识别成字符串、销售金额里有负数——这些都是后续DAX出错的隐患。
第二段,建模与度量值。确认数据没大问题后,我继续:
"基于这三张表设计一个星型模型。销售明细表是事实表,另外两张是维度表。请输出模型关系的完整描述,并创建以下度量值:总销售额、总成本、毛利额、毛利率、订单量、同比增速。每个度量值必须给出DAX表达式、度量值名称和口径说明。"这一步是决定报告质量的关键。AI在PowerBI skill的约束下,会先检查日期维度表是否就位,再输出度量值。我记得当时它给我的总销售额DAX是:
总销售额 = SUM(销售明细[销售金额])看似简单,但它同时给出了一句解释:"该度量值使用隐含的筛选上下文,当报表切片器选中某区域或某月份时,结果会自动随之变化。"这句解释虽然不起眼,但能让我确认它没有把筛选上下文搞乱。
第三段,视觉对象设计。我提的要求很明确:
"基于以上度量值,设计一个经营分析看板,需要包含以下视觉对象:月度销售额趋势折线图、区域销售额占比条形图、产品销售额TOP10排行、毛利率变化柱线组合图。每个视觉对象要给出Power BI视觉对象的类型、放在哪个字段、使用哪个度量值、以及标题建议。图表类型如果与实际意图不匹配,说明原因。"PowerBI官方skill在这里的用处就体现出来了:它不会一上来就丢给我五个饼图,而是按照"趋势用折线、排行用条形、占比用树状图或条形"的规则来选择。AI还会在输出里标注每一个视觉对象的字段映射,方便我后面在Power BI Desktop里直接复现。
第四段,主题与布局。最后我让它收尾:
"把上面所有视觉对象组织成一页看板布局,输出一个Power BI主题JSON文件,主色用蓝色系,背景色用浅灰色,标题字号统一。另外用200字说明这个报告的阅读顺序和建议使用人群。"这个阶段输出的主题JSON可以直接导入Power BI Desktop,字体会不会挤在一起、颜色是否统一,都在这一步定下来。
3.3 它生成的东西,和我预期之间的差距
整套流程跑完,AI交付的内容比我想象中完整,但绝不是"一键生成PBIX文件"那么神奇。它交付的是三样东西:一套可以直接在Power BI Desktop里新建查询时粘贴的M语言脚本、一组带中文注释的DAX度量值、一个主题JSON文件。我把M脚本粘进Power Query,把DAX复制到模型层,把主题JSON导入报表视图,大概花了十分钟,看板就成型了。
如果团队用的是Power BI Service,还可以让skill走接口模式,直接在线上工作区创建数据集、推数、生成报告。但本地日常使用,配方模式反而更顺手——因为Power BI Desktop这个桌面工具本身的图形化操作没法完全被脚本替代,PBIX文件也不是一个普通文本,AI没法直接改。所以最优解就是"skill生成配方、我导入执行、AI再复查",这一条路径已经是自动化程度和可控性之间的平衡点。
最后别忘了让AI做一次自检。我补了一句:
"请按你skill里的自检清单逐项检查:模型关系是否完整、哪个度量值可能缺少合适的筛选上下文、主题JSON是否符合Power BI规范。"它确实挑出了一个隐患——毛利率度量值在没有日期关联时,会被切片器错误过滤成空值。这个我后面会展开讲。
4. 比干活更该较真的事:AI生成的DAX和图表要不要信
4.1 三步校验:DAX、数据血缘、口径
我知道有人会说,AI生成的东西不靠谱,怎么能直接信。这个态度是对的,但"不直接信"不等于"全都自己重写",而是要做三轮有针对性的校验。
第一轮校验DAX公式。重点看两点:筛选上下文和计算上下文是否正确。拿总销售额这类简单聚合来说,问题不大;但遇到"各区域销售额占比"这类涉及ALL或ALLSELECTED的表达式时,就要仔细推敲。我常用的方法是挑一条最简单的明细数据,心算一遍结果,再和AI给的解释对应上。如果心算都对不上,直接让它重写。
第二轮核对数据血缘。说白了就是从最终的图表指标往前追,一直追到源数据的字段,链路是否一致。比如图表里的"区域销售额"来自"区域维度表"还是"销售明细表"里的冗余区域字段,这会直接影响到筛选行为。AI在skill的约束下一般会在输出里标注字段来源,但你要验证它标注的和实际使用的是不是同一个。
第三轮对齐业务口径。这一步 AI 完全替代不了人。你们的"销售额"是含税还是不含税?"毛利"是只扣成本还是还要扣物流费?"同比"是自然月同比还是工作日对齐同比?这些业务规则经常写在某个群聊天记录里,或者在某位老同事的脑子里,根本不存在于任何系统文档。skill能做的只是让AI在计算前先问一句"口径是什么",最终的裁决必须来自业务负责人。
4.2 哪些环节必须人来拍板
整个过程跑下来,我的体会是:AI可以承担数据的加工和呈现,但有三件事必须人来拍板。
第一,指标定义。任何涉及分润、成本分摊、库存价值的指标,AI给的计算逻辑即使是标准的,也不等于你们公司认可的口径。这类指标我从来不让AI直接生成,而是先在skill里把计算公式写好,AI只负责执行。
第二,数据权限。AI生成报告时,需要读取的是源数据文件或数据库视图。给AI开的权限边界、哪些表不能碰、哪些字段要脱敏,这必须是管理员设置好的规则,不能指望AI自己判断"这个字段是不是敏感词"。
第三,布局所代表的决策逻辑。一页报告放到领导面前,第一眼看到什么、第二眼跟进什么,是有逻辑的。AI会按模板排出"趋势图在左上角、排名图在中间"这种标准布局,但你们部门的经营会议可能更看重"区域对比"而不是"趋势变化"。这种阅读优先级,只有懂业务场景的人能定。
我最后养成的习惯是:在skill的自检清单里追加四条固定项目——"指标口径是否已与业务确认""数据权限是否已检查""图表顺序是否符合汇报逻辑""DAX是否已通过样例数据验证"。这相当于让AI在交付前先给自己挑一轮错,我再复核它挑出来的错,比从头检查效率高一倍。
5. 实测踩坑记录:PowerBI skill最常见的四类翻车现场
5.1 第一类翻车:DAX看着对,一刷新就报"函数不匹配"
第一次跑通流程时,AI给了一个"本月累计销售额"的度量值:
本月累计销售额 = CALCULATE( [总销售额], DATESINPERIOD('日期维度'[日期], MAX('日期维度'[日期]), -1, MONTH) )语法没问题,逻辑也没问题。但一刷新,Power BI直接报"函数DATESINPERIOD在上下文中无效"。查了半天,根因是模型里根本没有一个叫日期维度的表——AI在生成M脚本时,把日期表的名字写成了Date,而在DAX里又用了中文名字,两边对不上。
这事的教训有两层:一是AI在长链路生成时,跨脚本的一致性偶尔会开小差,M脚本、DAX、模型关系里的同一张表名必须逐一核对;二是skill里最好写死一条规则——"所有表和字段名称,以实际数据导入后的Power Query步骤为准,禁止自行改名"。后来我把这条加进去,类似的表名错位就再没出现过。
5.2 第二类翻车:中文字段名带来的隐藏成本
我们的源数据是从业务系统导出来的,表头全是中文,比如"订单日期""销售金额(含税)"。Power Query会自动把这些中文列名保留下来,初看没问题,但后续有两个隐患。
一个隐患是DAX表达式必须用单引号包表名、方括号包列名,中文列名在切换中英文输入法时特别容易打出全角括号,报错信息又不是很直观,排查很浪费时间。另一个隐患是主题JSON文件里的中文标题,偶尔会出现字体编码问题,显示成乱码。这个不是AI的锅,是JSON编码与Power BI字体加载机制的老矛盾。
我的建议是:在skill的数据探查阶段,就强制要求AI输出一份"字段重命名映射表",把中文列名改成英文或拼音列名,例如"销售金额(含税)"变成SalesAmountWithTax,同时在映射表里保留中文原名供阅读。这一步前期麻烦一点,后期所有DAX和主题配置都会稳定很多。
5.3 第三类翻车:图表类型出现"意图漂移"
有一次我让AI做"区域销售额对比",它给我生成了一个饼图,五个区域四个象限,还要拉图例才看得出来哪个最大。从Power BI功能角度说,这不算错;但从信息传达角度说,一个降序条形图明显更直观。
这种现象我管它叫"意图漂移"——AI在执行环节做对了,但在理解意图时跑偏了。原因在于"对比"这个词在数据可视化里有多种表达方式,饼图、条形图、树状图都能表达对比,但效率完全不同。
在skill里针对这一点我加了一条强制规则:"当你需要比较多个类别的大小时,默认使用降序条形图或柱状图;只有当类别之间的和等于100%时才允许使用饼图;严禁使用三维饼图与环形图。"加了这条之后,AI产出的图表质量立刻上了一个台阶。
5.4 第四类翻车:本地数据源路径变了,刷新直接断链
这套流程跑顺之后,我把报告发布到了Power BI Service,并且设置了每日自动刷新。结果没过两天,刷新就失败了。查下来才发现,原本放在D盘某路径下的Excel明细文件被同事移动了位置,导致数据源连接失效。
这个坑其实和AI关系不大,但偏偏是"自动生成报告"这个目标最脆弱的环节。你让AI帮你自动做报表,就得让整个链路自动化,而不只是"生成图表"那一步。后来我在skill里追加了数据源连接检查动作:每次生成报告前,先验证数据源的绝对路径或数据库连接串是否可达,如果不可达,立即终止并给出错误报告,而不是生成一份空数据看板。
如果你也打算走"AI生成+定时刷新"这条路,建议把源数据文件放到固定的共享目录或数据库里,不要放在个人电脑的本地路径。个人电脑一关机、一切换网络,调度任务就断了。
6. 最后分享一个让我效率翻了倍的提效技巧
所有流程跑通之后,我最大的收获不是"AI能生成报告"这个结果,而是我把自己的常规做法固化成了一个小小的技能库。每次做周报,我在WorkBuddy里只需要说一句话:"按模板生成本周经营周报,源数据更新到本周五。"剩下的流程——数据探查、模型刷新、度量值计算、图表布局、主题套用、自检清单——都由skill接管。
我还把团队的业务口径文档整理成了Markdown,作为附加规则挂到同一个skill后面。这样一来,AI面对的不再是"一个通用的Power BI专家",而是"一个了解我们公司指标口径的Power BI专家"。这比用任何通用提示词都管用。
如果你想复现这套玩法,我的建议是别急着一次配到位。先跑一个最简单的数据源,让AI生成一个销售额趋势图,然后逐步加复杂指标、加图表、加权限、加刷新,每加一层就回头看一遍skill规则。skill是越用越厚的东西,你踩过的每一个坑,都值得变成一条规则写进去。等到规则足够厚,AI的产出稳定到你可以只做复核时,那半小时出报表的日子,离你就不远了。