1. 当智能体开始"读懂"业务:一个被低估的转折点
过去一年,我接触过不少做智能体落地的团队,大家聊得最多的是模型选型、提示词工程、工具调用链路。但几乎所有人都会在同一个地方卡住:智能体很聪明,却不懂业务。你让它查个销售数据,它得先问你"销售数据在哪个表里";你让它分析一下本季度的客户流失,它反问你"流失的定义是什么"。这种"高智商、零业务常识"的割裂感,是当前绝大多数智能体项目从Demo走向生产环境时最真实的拦路虎。
微软 Fabric 这次被推到"智能体学习业务运作的平台"这个位置上,本质上就是在回应这个痛点。Fabric 本身不是新东西,它是微软把 Power BI、Data Factory、Synapse、Real-Time Analytics 等一堆数据能力整合到 OneLake 统一存储之上的数据平台。但真正值得关注的,是它正在成为智能体理解企业业务语义的"底座"——语义模型、指标定义、数据血缘、权限体系,这些东西过去是给人看的,现在开始被智能体消费。
这篇文章我想聊的不是"Fabric 有多强"这种官方口径,而是一个从业者视角的拆解:为什么智能体需要 Fabric 这样的平台来"学业务"、它到底提供了哪些别的方案给不了的东西、以及如果你正在做智能体落地,这套组合拳该怎么打。适合正在做企业级智能体、数据智能应用、或者 Power BI 生态相关工作的朋友参考,也适合想搞清楚"平台化智能体"和"手搓智能体"本质差异的开发者。
2. 智能体"不懂业务"这件事,到底卡在哪
2.1 业务语义不是知识,是结构化的共识
很多人第一反应是:业务知识喂给大模型不就行了?把公司的销售手册、产品文档、流程规范全部塞进知识库,做个RAG,智能体不就懂业务了吗?我实测过这条路,结论是:能解决一部分问题,但解决不了核心问题。
原因在于,业务语义的本质不是"文本知识",而是"结构化的共识"。什么叫"活跃客户"?什么叫"有效订单"?什么叫"毛利率"?这些概念在每个公司都有精确定义,而且这些定义会随着组织调整而变化。它们不是散落在文档里的段落,而是存在于数据模型、指标定义、维度关系里的结构化约束。你用RAG检索出来的是一段描述文字,但智能体真正需要的是"当用户问活跃客户时,应该去哪个表的哪个字段,用什么过滤条件,按什么口径聚合"。
这就是为什么单纯靠向量检索做业务智能体,最后往往变成一个"看起来很懂、一算就错"的花瓶。它能把定义背给你听,但没法把定义落到数据上。
2.2 手搓智能体的天花板:每次都要重新教一遍
我见过不少团队的做法是:在智能体的系统提示词里硬编码业务规则,或者写一堆自定义函数去封装业务逻辑。短期能跑通,但问题很快暴露。
第一,业务规则一变,你得改代码、重新部署,智能体本身没有"学习"能力,它只是被动执行你写死的逻辑。第二,规则散落在提示词、函数、配置文件里,没有单一事实来源,时间一长没人说得清哪个版本是对的。第三,也是最要命的,智能体无法跨业务域推理。销售智能体不知道财务的口径,客服智能体不理解供应链的约束,每个智能体都是一个信息孤岛。
说白了,手搓智能体是在"教一个新人死记硬背",而平台化智能体应该做的是"让新人接入公司的知识体系,自己查、自己理解"。
2.3 Fabric 的切入点:把业务语义变成智能体可消费的接口
Fabric 的思路不一样。它把企业数据治理的成果——语义模型(Semantic Model)、指标(Metrics)、数据血缘、行级权限——统一放在 OneLake 之上,然后通过 Copilot 和智能体框架把这些能力暴露出去。智能体不需要"记住"业务规则,它需要的是"知道去哪里查规则、怎么查、查完怎么用"。
这个转变很关键。它把智能体从"业务规则的容器"变成了"业务语义的消费者"。规则维护在 Fabric 里,由数据团队统一管理,智能体通过标准接口调用。业务变了,改 Fabric 里的语义模型,所有接入的智能体自动同步。这才是"智能体学习业务运作"的真正含义——不是让智能体去背,而是让智能体去接。
3. OneLake 与语义模型:智能体理解业务的"字典"是怎么建起来的
3.1 OneLake 解决的是"数据在哪"的问题
OneLake 是 Fabric 的统一存储层,你可以把它理解成"企业数据的一个逻辑湖"。所有 Fabric 工作负载的数据都落在 OneLake 里,以 Delta Parquet 格式存储,跨工作区、跨引擎共享。对智能体来说,这意味着它不需要关心数据物理上存在哪——SQL 数据库、数据仓库、实时流、Power BI 数据集,在 OneLake 里都是统一的表。
我实际用下来的感受是,OneLake 最大的价值不是技术多先进,而是"消除了数据位置的歧义"。以前做智能体,最头疼的就是数据源分散,智能体要对接五六个系统,每个系统的连接方式、认证方式、查询语法都不一样。现在只要数据进了 OneLake,智能体面对的就是一套统一的访问模式。这大幅降低了智能体接入业务数据的工程成本。
3.2 语义模型才是真正的"业务字典"
但光有数据不够,智能体还需要知道"这些数据代表什么业务含义"。这就是语义模型的作用。在 Fabric 里,语义模型定义了表、列、关系、度量值、层级结构,以及最重要的——业务指标的计算逻辑。
举个例子,一个"销售额"指标,在语义模型里可能定义为:SUM(订单表[金额]) - SUM(退货表[金额]),并且限定在"已支付"状态的订单上。这个定义一旦建立,智能体查询销售额时,拿到的就是符合业务口径的结果,而不是自己去猜"销售额是不是要减退货"。
这里有个我踩过的坑值得分享:语义模型的度量值一定要用 DAX 写清楚,不要图省事在智能体侧做二次计算。我早期做过一个项目,语义模型里只放了原始表,让智能体自己写聚合逻辑,结果同一个"月度环比"问题,智能体每次算出来的数都不一样,因为它的聚合顺序和过滤条件不稳定。后来把所有指标都固化成 DAX 度量值,智能体只负责调用,数据一致性立刻就上来了。
3.3 指标层:让智能体说"人话"的关键
Fabric 里的指标(Metrics)功能,是我认为对智能体最友好的设计。它允许你把业务指标单独定义、集中管理,并且和语义模型绑定。每个指标有明确的名称、描述、计算逻辑、负责人。
对智能体来说,这相当于一本"业务术语词典"。用户问"上个月华东区的复购率是多少",智能体不需要理解"复购率"这个词,它只需要在指标库里匹配到"复购率"这个指标,拿到它的计算逻辑和数据范围,然后执行查询。指标库是人和智能体共用的同一套定义,这就避免了"人算的和智能体算的不一样"这种经典尴尬。
提示:指标命名一定要用业务人员日常说的词,不要用技术缩写。我见过把"客户终身价值"命名成 CLV_Calc_v2 的,智能体匹配起来非常吃力,业务人员也看不懂。
4. Copilot 与智能体框架:业务语义怎么变成智能体的"行动能力"
4.1 Microsoft 365 Copilot 是入口,不是全部
很多人把 Fabric 和 Copilot 混为一谈,其实两者角色不同。Microsoft 365 Copilot 是面向终端用户的交互入口,用户在 Teams、Excel、Outlook 里用自然语言提问,Copilot 负责理解意图、调用后端能力。而 Fabric 是后端的数据和语义底座,提供 Copilot 需要的业务上下文。
这个分工很重要。Copilot 本身不存储业务规则,它每次回答问题时,是通过 Fabric 的语义层去获取业务定义的。这意味着,你在 Fabric 里更新了指标口径,Copilot 给出的答案会自动跟着变,不需要重新训练模型或改提示词。
4.2 智能体框架怎么消费 Fabric 的能力
从技术链路看,一个接入 Fabric 的智能体,处理"上季度哪个产品线利润最高"这类问题的流程大致是这样的:
- 意图识别:判断这是一个数据查询类问题,涉及"利润"和"产品线"两个业务概念。
- 语义匹配:在 Fabric 语义模型中定位"利润"对应的度量值和"产品线"对应的维度。
- 查询生成:基于语义模型的关系和度量值定义,生成对应的 DAX 或 SQL 查询。
- 权限校验:Fabric 的行级权限自动生效,智能体只能看到当前用户有权访问的数据。
- 结果返回:查询结果返回给智能体,智能体组织成自然语言回答。
这个链路里,第2步和第4步是 Fabric 独有的价值。手搓智能体要么没有语义匹配能力(靠提示词硬猜),要么没有统一的权限体系(每个智能体自己实现一套,容易出安全漏洞)。
4.3 权限体系:企业级智能体绕不过去的坎
我特别想强调权限这件事。做To C智能体,权限不是大问题;但做企业级智能体,权限是生死线。一个销售智能体如果能看到财务数据,一个区域经理如果能看到其他区域的数据,这在企业里是不可接受的。
Fabric 的行级权限(Row-Level Security)和对象级权限,是定义在语义模型层面的。智能体接入时,是以当前用户的身份去查询,权限自动继承。这意味着你不需要在智能体侧再实现一套权限逻辑,也不会因为智能体的"越权查询"导致数据泄露。
我见过一个反面案例:某团队做内部数据问答智能体,为了图快,用了一个高权限的服务账号去查所有数据,然后在应用层做过滤。结果一次提示词注入攻击,用户绕过了应用层过滤,直接拿到了全公司的薪酬数据。这种坑,用 Fabric 的权限体系从架构上就能避免。
5. 平台化智能体 vs 手搓智能体:一次务实的对比
5.1 从"能跑"到"能管"的差距
很多团队纠结:我用 Python + LangChain 手搓一个智能体,接上数据库,不也能查数据吗?为什么要用 Fabric?这个问题值得认真回答。
手搓智能体在Demo阶段确实快,但到了生产环境,差距就出来了。我整理了一个对比表,都是实际项目中会遇到的维度:
| 维度 | 手搓智能体 | 基于 Fabric 的智能体 |
|---|---|---|
| 业务语义维护 | 散落在提示词和代码中 | 集中在语义模型和指标库 |
| 指标口径一致性 | 依赖开发者自觉 | 由 DAX 度量值强制统一 |
| 权限控制 | 需自行实现,易出漏洞 | 继承语义模型权限,自动生效 |
| 数据源接入 | 每个源单独对接 | OneLake 统一访问 |
| 业务变更响应 | 改代码、重新部署 | 改语义模型,自动同步 |
| 跨域推理 | 各智能体信息孤岛 | 共享同一语义层 |
| 审计与血缘 | 需额外建设 | Fabric 原生提供 |
这张表里,我认为最关键的是"业务变更响应"和"跨域推理"两行。前者决定了你的智能体能不能跟上业务节奏,后者决定了你的智能体能不能从"单点工具"进化成"业务助手"。
5.2 什么时候该手搓,什么时候该上平台
我的经验是,不要一刀切。如果你的智能体只服务一个固定场景、业务规则半年不变、数据源单一,手搓完全够用,上 Fabric 反而是杀鸡用牛刀。但如果满足以下任意两条,就该认真考虑平台化方案:
- 业务指标超过20个,且口径需要跨部门对齐
- 数据源超过3个,且需要跨源关联分析
- 有明确的权限分级要求
- 业务规则变更频率高于每季度一次
- 需要多个智能体共享同一套业务语义
5.3 一个容易被忽略的成本:语义模型的维护
上平台不是没有代价的。Fabric 的语义模型需要专人维护,指标定义需要和业务部门对齐,这些都是实打实的工作量。我见过团队兴冲冲上了 Fabric,结果语义模型半年没更新,智能体给出的还是过时的口径,反而比手搓更糟——因为大家以为它是"权威"的。
所以我的建议是:上 Fabric 之前,先确认你有没有(或者愿不愿意投入)一个数据治理的角色。哪怕只有半个人,也比没人管强。语义模型不是建完就完事的,它是活的,需要跟着业务一起演进。
6. 落地路径:从零开始搭一个懂业务的智能体
6.1 第一步:把数据收进 OneLake
不管你原来数据在哪,第一步都是让数据进 OneLake。Fabric 提供了多种接入方式:Data Factory 做批量同步,Data Activator 做实时流,Shortcut 做跨云引用(不复制数据,直接引用外部存储)。
我的实操建议是,优先用 Shortcut 而不是全量复制。很多企业的数据已经在 S3 或 ADLS 上了,用 Shortcut 直接引用,省去复制成本和同步延迟。只有对性能要求极高的场景,才考虑物化到 OneLake 本地。
6.2 第二步:建语义模型,把业务定义固化下来
数据进来之后,建语义模型。这一步的核心不是技术,是业务对齐。你需要拉着业务部门一起,把关键指标的定义、维度、过滤条件确认清楚。
我通常的做法是先建一个"最小可用语义模型":只覆盖最高频的10到15个指标,把关系和数据口径跑通,让智能体先能用起来。然后再逐步扩展。不要一上来就追求大而全,那样周期太长,业务方等不及,项目容易黄。
6.3 第三步:配置权限,别留后门
语义模型建好后,立刻配置权限。Fabric 支持在语义模型层面定义行级权限,比如"销售只能看自己区域的数据"。这个规则定义一次,所有接入的智能体自动继承。
注意:千万不要为了调试方便,给智能体配一个"看所有数据"的账号。我见过太多项目在调试期留了后门,上线时忘了关。权限这件事,从第一天就要按生产标准来。
6.4 第四步:接入智能体,从单轮问答开始
智能体接入 Fabric 后,建议从最简单的单轮数据问答开始验证。比如"上个月销售额是多少"、"哪个产品卖得最好"。这些问题的语义匹配路径短,容易排查问题。
跑通单轮之后,再逐步增加复杂度:多轮对话、跨指标对比、趋势分析。每增加一类问题,都要回头检查语义模型是否覆盖到位。如果智能体频繁答错,八成不是智能体的问题,是语义模型没定义清楚。
6.5 第五步:建立反馈闭环
最后一步,也是最多人忽略的一步:建立反馈机制。智能体答错了,用户能不能一键反馈?反馈能不能回流到语义模型的维护流程里?
我在项目里会做一个简单的"问题日志":记录智能体答错的问题、错误原因、修复方式。每周review一次,把高频错误对应的语义模型缺陷补上。这个闭环跑起来之后,智能体的准确率会持续提升,而不是停在原地。
7. 几个真实场景里的经验与教训
7.1 指标口径对齐比技术实现难十倍
技术实现从来不是瓶颈,口径对齐才是。我做过一个零售客户的项目,"销售额"这个指标,销售部门算的是下单金额,财务部门算的是收款金额,电商部门算的是扣除平台佣金后的金额。三个部门吵了两周才统一。
这件事给我的教训是:上 Fabric 之前,先做一轮指标口径的梳理和对齐。技术上建语义模型很快,但如果口径没对齐,你建出来的模型就是错的,智能体越准,错得越离谱。
7.2 智能体不是越"自主"越好
现在流行讲"自主智能体",能自己规划、自己调用工具、自己反思。但在企业数据场景里,我反而建议限制智能体的自主性。数据查询这种事,路径越确定越好。让智能体自由发挥去"探索"数据,很容易查出一些口径奇怪、甚至越权的结果。
我的做法是:把智能体的能力边界收窄到"语义模型覆盖的范围"。语义模型里有的指标,它能查;没有的,它明确告诉用户"这个指标暂不支持",而不是自己编一个算法去算。宁可少答,不可错答。
7.3 语义模型的版本管理要提前规划
Fabric 的语义模型支持版本管理,但很多人不用。我强烈建议从第一天就启用。业务口径变更时,保留历史版本,这样当智能体给出的答案和上个月不一致时,你能快速定位是哪个版本改了什么。
我吃过这个亏:一个客户改了"活跃用户"的定义,没记录变更,结果智能体给出的月活数据突然跳变,团队排查了三天才发现是口径改了。从那以后,我要求所有语义模型变更都必须走版本记录。
7.4 别指望智能体替代数据分析师
最后说一个心态问题。Fabric + 智能体能解决的是"高频、标准、口径明确"的数据问答,它替代的是"反复找数据分析师要数"这种低价值重复劳动。但真正的探索性分析、归因分析、策略建议,还是得靠人。
我见过团队把智能体定位成"替代分析师",结果期望落空,项目被砍。正确的定位是"分析师的助手"——把分析师从取数里解放出来,让他们专注在真正需要判断力的工作上。这个定位想清楚了,项目的价值衡量标准也就清楚了。
8. 关于这套组合拳,我个人的几点判断
Fabric 成为智能体学习业务运作的平台,这件事的意义不在于微软又多了一个AI功能,而在于它把"业务语义治理"和"智能体消费"这两件过去割裂的事接上了。过去做智能体,业务语义是开发者的负担;现在,业务语义变成了平台的资产,智能体只是消费者。
如果你正在做企业级智能体,我的建议是:先别急着优化模型和提示词,先看看你的业务语义有没有一个统一的、可维护的、带权限的载体。如果没有,Fabric 这类平台值得认真评估。如果有,那就把智能体接上去,让它从"背规则"变成"查规则"。
这个转变听起来小,但实际做下来,它决定了你的智能体是一个"演示品"还是一个"生产力工具"。我在多个项目里验证过,接入统一语义层之后,智能体的准确率提升不是线性的,是台阶式的——因为很多错误根本不是模型能力问题,是业务上下文缺失问题。把上下文补上,模型的能力才真正释放出来。
至于后续怎么扩展,我的思路是往"多智能体共享语义层"的方向走。销售智能体、客服智能体、供应链智能体,各自负责不同的交互场景,但底层消费的是同一套 Fabric 语义模型。这样既保证了口径一致,又保留了各场景的灵活性。这条路我还在摸索,有新的心得再和大家分享。