聊《做过数据分析的人学大模型,哪些经验可以直接迁移?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。
摘要
去年秋天,我带团队做了一个智能分析Agent项目。Demo跑通那天,客户鼓掌,老板满意,我也觉得"数据分析转大模型"这条路通了。结果上线两周,客户投诉了三次:一次是Agent乱查了敏感表,一次是响应时间从3秒飙到47秒,还有一次是它自信地编造了一个根本不存在的指标。
那次事故让我意识到:Demo和上线之间,隔着权限、日志、可观测性这三座大山。很多做数据分析的同学转大模型,以为换个工具就行,其实真正要补的是工程化思维。
目录
- 数据分析经验能迁移多少?
- 自然语言BI:别被Demo骗了
- 指标解释Agent:业务理解才是护城河
- 数据工具调用:权限和日志是命门
- 项目案例:从报表到Agent的完整路径
- 总结:转型大模型,别只学技术
数据分析经验能迁移多少?

说实话,挺多的。
做报表和做智能分析Agent,底层逻辑是相通的:理解业务指标、设计查询逻辑、处理异常数据。我做数据分析那些年,养成的"指标敏感"和"SQL直觉",在转大模型后直接派上了用场。
但迁移不是复制。报表时代,你写死查询逻辑,跑不通就改代码;Agent时代,你给模型工具和能力,它自己决定怎么用。这个转变,让"确定性"变成了奢侈品。
我见过几个转型成功的数据分析师,共同点是:他们没把自己当成"会调API的人",而是把自己当成"会设计系统的人"。前者写Prompt,后者设计权限边界、日志追踪、异常兜底。
自然语言BI:别被Demo骗了

市面上很多自然语言BI的Demo,演示的都是简单问题:"上个季度销售额多少?""哪个地区增长最快?"
这些问题,模型回答得确实漂亮。但真实业务场景里,用户问的是:"把华东区Q3的GMV拆到SKU级别,排除退款,和去年同期比,标出异常波动点。"
这种问题,Demo阶段根本不会演示。我测试过几个主流方案,遇到复杂查询时,模型要么回答"我理解不了这么复杂的问题",要么自信地给出一堆错误数据。
关键问题在于:数据质量、指标口径、权限控制,这些在Demo里都是"假设好的",在生产环境里全是"坑"。
我的建议是:别急着上复杂查询,先让Agent能正确回答5个以内的基础指标问题,且100%准确。这是门槛,跨过去再谈进阶。

指标解释Agent:业务理解才是护城河
数据分析转大模型,最大的优势是业务理解。
很多转大模型的同学,把精力都花在学LangGraph、RAG、工具调用上,结果做出来的Agent"技术很炫,业务很弱"。用户问"为什么销售额下降",Agent能给出花哨的图表,但指标解释一塌糊涂。
我们当时做了一个指标解释Agent,专门处理"为什么"类问题。核心思路是:让模型先理解指标定义和计算逻辑,再结合数据做归因分析。
# 指标解释Agent的核心逻辑
class MetricExplainerAgent:
def __init__(self, metric_registry, data_source):
self.metrics = metric_registry # 指标注册表
self.data = data_source # 数据源
def explain(self, metric_name, time_range, context):
# 1. 先查指标定义,确保理解正确
metric_def = self.metrics.get_definition(metric_name)
if not metric_def:
return "指标未注册,请联系数据团队"
# 2. 获取数据,计算变化
data = self.data.query(metric_def, time_range)
# 3. 归因分析:拆维度、找异常
attribution = self.attribution_analysis(data, metric_def)
# 4. 生成解释,标注置信度
return self.generate_explanation(attribution, metric_def)
这段代码看起来简单,但背后是对业务指标的深刻理解。每个指标的定义、口径、计算逻辑,都需要提前梳理清楚。这是数据分析同学的优势,也是你们转大模型时最值得投入的方向。
数据工具调用:权限和日志是命门
Demo阶段,工具调用是炫技;上线阶段,权限和日志是保命。
我们当时踩的最大坑,就是没做好权限控制。Agent能调用查询工具,理论上可以查任何表。结果第一次上线,就有用户通过Agent查到了不该看的数据。
解决方案很简单,但很多人会忽略:
1. 给Agent配置数据权限白名单,明确哪些表、哪些字段可以查
2. 所有查询日志必须记录:谁问的、问了什么、查了什么表、返回了多少行
3. 设置查询上限,防止模型"幻觉"导致无限循环查询
# 工具调用的权限控制示例
def call_tool_with_permission(user_id, tool_name, params):
# 1. 检查用户权限
if not check_user_permission(user_id, tool_name, params):
raise PermissionError(f"用户 {user_id} 无权使用工具 {tool_name}")
# 2. 记录日志
log_entry = {
"user_id": user_id,
"tool": tool_name,
"params": params,
"timestamp": datetime.now(),
"status": "pending"
}
log_to_database(log_entry)
# 3. 执行工具
try:
result = call_tool(tool_name, params)
log_entry["status"] = "success"
log_entry["result_rows"] = len(result) if isinstance(result, list) else 0
return result
except Exception as e:
log_entry["status"] = "error"
log_entry["error"] = str(e)
raise
finally:
log_to_database(log_entry) # 无论成功失败都记录日志
这段代码的关键点:权限检查在前,日志记录必须执行(用finally),异常也要记录。生产环境的Agent,权限和日志写得比Prompt还仔细,这话不夸张。
项目案例:从报表到Agent的完整路径
我们团队做的那个智能分析Agent,核心流程是:用户提问 → 意图识别 → 工具调用 → 数据查询 → 结果解释。
Demo阶段,这个流程跑得很顺。上线后,问题出在三个地方:
1. 意图识别不准:用户问"看看业绩",模型不知道是看销售额、利润还是订单量
2. 工具调用失控:模型为了回答复杂问题,调用了不该用的工具
3. 结果解释不靠谱:模型给出的解释,和实际数据对不上
我们的解决方案:
- 意图识别:加一层业务规则校验,不确定的问题先问用户确认
- 工具调用:严格限制工具白名单,复杂查询拆成多个简单查询
- 结果解释:基于真实数据生成解释,不允许模型自由发挥
上线三个月后,客户满意度从60%提升到85%,投诉率下降了70%。关键不是模型更智能了,而是系统更可控了。
总结:转型大模型,别只学技术
数据分析转大模型,技术门槛确实不高。会写SQL、懂业务指标、有数据分析经验,这些已经够用。但真正决定你能不能做出能上线的Agent,是工程化能力:权限控制、日志追踪、异常兜底。
我的建议是:
1. 先把业务指标梳理清楚,这是你的核心优势
2. 学Agent开发时,别只关注Prompt和工具调用,权限和日志要同步设计
3. 做项目时,先保证简单场景100%准确,再逐步扩展复杂度
4. 上线前,找测试同学模拟"坏用户"行为,提前暴露问题
Demo能跑通,谁都会。能上线、能稳定运行、能被团队接手维护,才是真本事。
那些在Demo阶段就急着上线的同学,最后都要为权限和日志买单。别成为那个人。
资料展示
下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。





如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。


273

被折叠的 条评论
为什么被折叠?



