淘宝百亿补贴数据分析助手 Agent:让自然语言查询先经过业务语义层
自然语言转 SQL 最容易被低估的部分,不是 SQL 语法,而是业务语义。用户说“百亿补贴商品销量”“补贴效果”“转化率”时,Agent 必须知道指标口径、时间范围、商品粒度、数据权限和表之间的血缘关系。只把问题翻译成一条能执行的 SQL,并不能证明结果正确。
本文根据大淘宝技术《淘宝百亿补贴数据分析助手 Agent 实战》的公开摘要整理。摘要披露的关键路径是:在自然语言与 SQL 之间增加业务语义层,通过多 Agent 编排、知识检索、执行校验、血缘溯源和 Python 沙箱串联取数、分析与归因。案例查询耗时由 30—120 秒缩短至 3—10 秒,这属于原文项目数据,不应直接当作所有数据 Agent 的性能保证。
一、为什么要在自然语言和 SQL 之间加一层
直接 Text-to-SQL 的链路通常是:
用户问题 → LLM → SQL → 数据库 → 结果
问题在于 LLM 看到的是字段名,而用户表达的是业务概念。中间缺少语义层时,模型可能:
- 选错时间字段或统计粒度;
- 把支付金额、下单金额和 GMV 混为一谈;
- 把实验桶与全量数据混合;
- 忽略数据延迟、权限和口径版本;
- 生成可以执行但业务含义错误的 SQL。
更可靠的链路是:
自然语言
→ 意图与指标识别
→ 业务语义层
→ 表、字段、口径和血缘检索
→ SQL 生成
→ 静态校验与执行校验
→ 结果分析与归因
二、业务语义层应该维护什么
语义层不是一张简单的字段别名表,至少应包含:
| 内容 | 示例 |
|---|---|
| 指标定义 | GMV、支付买家数、补贴金额、ROI |
| 统计粒度 | 商品、店铺、类目、用户、实验桶 |
| 时间口径 | 下单日、支付日、自然日、活动周期 |
| 过滤规则 | 有效订单、退款剔除、实验流量范围 |
| 数据来源 | 事实表、维表、汇总表和更新时间 |
| 权限边界 | 可访问字段、脱敏字段、租户范围 |
| 版本信息 | 口径生效时间和变更记录 |
Agent 先把用户问题映射成一个结构化查询意图,再基于这个意图生成 SQL,能够把“业务理解错误”和“SQL 编写错误”分开诊断。
三、多 Agent 如何分工
一个可控的职责拆分可以是:
- 意图 Agent:识别指标、维度、时间范围和比较目标。
- 语义检索 Agent:检索指标口径、字段说明、样例查询和血缘。
- SQL Agent:生成候选 SQL,并说明每个关键字段的选择依据。
- 校验 Agent:检查权限、字段、类型、时间范围、Join、成本和空结果。
- 分析 Agent:对查询结果做统计、趋势、异常和分组分析。
- 归因 Agent:在证据充分时提出可能原因,并区分事实、推断和待验证假设。
多 Agent 不是越多越好。每个 Agent 都会增加延迟、调用成本和状态管理复杂度。适合拆分的是责任边界清晰、可以独立验证的步骤。
四、SQL 执行前后的两类校验
执行前需要做确定性检查:
- SQL 是否只读;
- 是否访问越权字段;
- 是否缺少时间过滤;
- Join 是否可能产生笛卡尔积;
- 是否超过扫描量或运行时间限制;
- 指标字段是否符合当前口径。
执行后需要检查:
- 是否为空或异常放大;
- 结果粒度是否符合用户问题;
- 总量与已知基线是否相差过大;
- 是否需要进一步用 Python 做统计;
- 结论是否有可回溯的 SQL、数据版本和时间戳。
五、Python 沙箱的价值与边界
SQL 适合取数和聚合,Python 更适合做相关性、分布、趋势、异常检测和可视化。把 Python 放在隔离沙箱中,可以让 Agent 对查询结果做二次分析,但必须限制:
- 只能读取当前任务已经授权的数据;
- 禁止网络访问、文件系统越权和密钥读取;
- 限制 CPU、内存、执行时长和输出大小;
- 记录代码、输入摘要、依赖和输出;
- 结果需要引用原始查询和数据版本。
六、性能提升不能只看总耗时
原文摘要提到查询耗时由 30—120 秒缩短至 3—10 秒。要判断这类优化能否复用,应进一步拆分:语义检索、模型调用、SQL 执行、结果分析和网络传输各自耗时多少。常见优化包括语义缓存、查询模板、并行检索、结果缓存、轻重模型分工和异步分析,但每一项都要用相同数据集和相同口径复测。
七、上线前检查清单
- 指标、字段、维度和时间口径有唯一事实源。
- SQL 生成与执行权限分离。
- 查询前有只读、成本、权限和时间范围校验。
- 查询结果带数据版本、更新时间和 SQL 记录。
- Python 分析运行在有资源限制的沙箱中。
- 归因结论区分事实、推断和待验证假设。
- 结果质量使用空结果、异常值和基线校验。
- 延迟、失败率、错误类型和用户修正被持续记录。
来源与边界
原文:大淘宝技术|淘宝百亿补贴数据分析助手 Agent 实战。本文依据奇舞周刊第 597 期中的公开摘要整理,未取得原文全文和原文配图,因此未虚构源码、接口或架构图;项目耗时数据属于来源文章案例。
সম্পর্কিত গাইড
让 Agent 可评、可控、可迭代:业务效果导向的评测体系与实践