技术实践

淘天直播以语义代号层和确定性引擎生成SQL

上下文与知识智能体系统应用与实践知识库AI语义层Agent 工具调用结构化分析、预测与决策

概述

淘天直播团队指出在复杂数仓环境下 AI 取数必然产生幻觉:一是理解数仓难(业务变化导致事实行为描述越来越多、冗余与表膨胀、同一代号对应多种计算方式),二是写 SQL 更难(同一指标代号有多种计算方式,需做口径确定、表选择、维度与筛选等一串决策),AI 可以生成语法完美但语义错误的 SQL,即使做到 70%~90% 正确率在生产环境也意味着永远有错的可能,而运营、产品、分析师甚至下游 AI Agent 无法判断 SQL 语义是否正确。 方案是“AI 的思考能力 + 工程的确定性”:针对理解环节建设代号层,以逻辑表为骨架对整个数仓做又一次抽象,把业务行为的标准唯一代号(如“在直播间成交的金额”代号为“成交金额”)与数仓中冗余存储的事实表/dws 汇总表、维表字段绑定,并提供字段映射与自定义 CTE 把不标准数仓挂载到标准代号层。针对写 SQL 环节,只让 AI 输出用户需求构造的轻量级 JSON 查询请求,由工程侧确定性翻译为 SQL——先收集本次需求的数仓要求、在满足要求的表里选参与计算数据量最小的最优路径,再按标准语法做筛选提前、维表关联方式选择、派生指标先加工原子指标与限定词、结尾追加 limit 等组织。 所有查询请求日志被中心化记录,用于常用 DSL 分析、工程稳定性监控、数仓迭代与评测系统数据源。连带效应是数据开发角色从“写 SQL 的人”转为“建语义层的人”。