本文为您介绍配置智能分析Agent的数据集时,在前期规划、数据处理、数据集的配置等方面的操作思路与场景实践。
通用原则
- 数据集数量限制:为保证性能和准确率,建议一个智能体关联的数据集数量不超过 5 个。
- 字段数量限制:一个智能体关联的总字段数建议不超过 300 个。
- 字段清晰度:智能体内部的数据集字段和维值需要经过治理,减少或消除二义性冲突(如同名但含义不同的字段)。
- 尽量前置做好数据ETL,避免实时多表关联计算;如无法避免,参与多表关联的数据集数据行数建议不超过 10000 行。
数据规划与准备
完成初步智能体应用场景和用户角色的梳理规划后,您需要结合各个用户角色的典型问题,分析梳理需要使用的数据集、业务指标等,以下为一个简单的示例。
- 基于初步智能体应用场景规划,梳理涉及的数据源、指标。

- 依次梳理各个数据集数据表名称、对应表的特殊说明等表信息。

- 梳理当前智能体的应用场景下,各数据表中会涉及到的关键字段、字段数据类型、字段的业务含义(是否需要额外知识释义该字段等)。

- 梳理当前智能体的应用场景下,高频维度字段的维度值、维度字段说明等信息。

数据处理
完成数据集规划和梳理后,您需结合梳理后的业务指标、维度字段等结果,对数据提前进行必要的处理,保障接入智能体的数据集满足通用原则中的数据集/字段的数量、含义的要求。
ETL规范与限制
高质量的数据是DataAgent-分析Agent成功的基础。以下ETL规范旨在确保输入数据的标准性和可用性,是实现准确分析的前提。
要点1:不支持跨表筛选逻辑
- 问题:不支持在一个查询中,先从A表查询出一个条件(如时间范围),再用这个条件去B表进行筛选。
- 解决方案:这种复杂的跨表逻辑需要通过ETL预先将相关信息关联到一张宽表中。
要点2:禁止多事实表直接拼接
- 问题:直接拼接不同颗粒度的多张事实表会导致数据重复计算(笛卡尔积),造成结果错误。

- 解决方案:应先将各事实表按共同维度进行聚合,统一颗粒度后,再进行拼接。

要点3:不要在明细表中添加聚合结果
- 问题:在明细数据行上直接加入预先计算好的聚合值(如平均值),会导致二次聚合(如总计)时结果错误。
- 解决方案:保持明细表的原始性,聚合计算应在查询时动态进行,或在专门的聚合层处理。
要点4:禁止使用透视表作为底表
- 问题:透视表是人为定义的、用于展示的格式,其结构(如行列转换)大模型无法理解,不能作为稳定的数据源。

- 解决方案:应使用规范的、未经过透视的二维表作为数据源。
要点5:数据源应为BI数据集而非可视化图表
- 问题:客户有时会提供BI工具中已经可视化、处理过的图表或其数据,这些数据往往经过了复杂的加工,不适合作为Agent的原始输入。
- 解决方案:必须使用BI系统底层的、原始的数据集。
- 示例:
要点6:关注时点余额类指标
问题:对于余额这类“时点型”指标,按时间段进行常规的加和汇总(SUM)是无意义的。
解决方案:在提问时,需要明确指出查询的是特定时间点的余额,而不是一个时间段的汇总。
示例:
时间 | 业务类型 | 余额 | 亏损金额 | 盈利金额 |
|---|
1月 | 信用卡 | 50000 | 400 | 100 |
2月 | 信用卡 | 40000 | -300 | -200 |
1月 | 理财基金 | 1000000 | 600 | 300 |
2月 | 理财基金 | 1200000 | 200 | -400 |
这种表,每个月的数据本身就是累计数据,没法进行合并计算,正常情况下所有指标都是需要合并计算的,比如算1-2月整体余额
业务类型 | 余额(sum) |
|---|
信用卡 | 90000 |
理财基金 | 2200000 |
这种数据就是错的,真正的提问,应该用户直接问2月的余额是多少,所以这种表不适合做问数,或者说问数场景下要知道表本身的业务含义,直接问具体时间点
其他
- 符合上述规范的ETL,尽量做合表处理,不然一个Agent里面数据集过多会影响智能体的性能和准确率。
- 所有ETL的标准参考BI数据集,而不是BI可视化的图表,很多客户把BI可视化后的表拿来当底表,是错误的。
应用实践
实践1:数据清洗算子使用示例
智能分析Agent为您提供了可视化建模能力,支持多种数据清洗算子(字段设置、多表连接、合并行等),您可以在可视化建模页面通过拖拽对应算子来灵活处理数据,以下为您介绍常用的算子与适用场景。
常用算子 | 优势/使用建议 |
|---|
计算列 | - 算子定义:自由度最高的算子,作用等同于写SQL去构建一个新的字段,支持调用多种函数。
 - 适用场景:适用于需要新增一个字段的数据处理场景。
- 使用思路:判断是不是需要新增一个字段 > 新增的这个字段自然语言怎么描述 > 自然语言中包含的字段和数据处理逻辑怎么用函数来表达 > 调用函数对涉及的字段进行处理,生成新的字段取值
- 函数的基础使用:
- 数值类字段:通常可调用函数对数值类字段进行加减乘除的计算。
- 文本类字段:
- 典型场景:调用case when函数对文本类字段进行打标。
- 示例:
case when 'activity'='running' then '高价值活动' else '低价值活动' end。
- 其他函数使用场景:日期格式转化、JSON嵌套
|
合并行算子 | - 算子定义:两份数据进行行拼接变成一份数据。
- 适用场景:例如,两张表中分别存储了男性、女性的消费行为习惯数据,需要将两张表的数据合并成一张表。
|
更多算子 | 请参见数据清洗。 |
实践2:时间字段(业务日期、创建时间等)处理实践
- 时间字段通用处理建议
- 关于「时间」、「日期」相关字段,请务必用 date、datetime 类型,避免使用 int、string 类型。
- 建议所有的时间维度按照最细颗粒度展现,例如指标最细颗粒度到日层级的,那季度、月、年不需要单独的字段,有「日期字段」即可,模型会使用日期函数来实现。但是如果最细颗粒度只能到月层级的,就按照月层级展现。
- 示例场景:
- 客户新智能体有一个"工单-节点明细"的数据集;工单场景下有业务时间字段:T1;节点场景下的业务时间字段:T2缺失,只能用 pdate字段代替。
- 使用智能体时,业务提问会T1、T2混合提问,且常常缺失具体时间字段的名称,导致数据查询准确率不高。
- 错误的处理思路:
希望通过配置智能体的知识,让模型知道:
- 按照问题结构和指标,通过知识配置,自动识别应该用T1字段或T2字段去过滤数据集的数据。
- 问到节点指标场景时,希望通过知识配置,让模型对时间字段进行自动识别处理,实现节点指标场景下将pdate字段处理为T2字段,且指标统计要额外去重。
此种方式下,对模型理解数据集字段、理解业务逻辑提出了很高的要求,效果不好。
- 正确的优化思路:ETL处理+优雅提问
- 通过智能分析Agent的可视化建模能力,将增量表的时间字段进行清洗处理,处理逻辑:节点场景下的pdate字段写入T2字段。
- 使用智能体提问时候,问题描述中明确查询的业务场景和指标名称。
实践3:多表处理实践
当完成智能体数据集规划梳理后,如果应用的业务场景可能会出现多表场景时,各个阶段可能出现的问题与处理实践经验如下。
模型流程阶段 | 常见问题 | 解决方案 |
|---|
数据集预处理 | - 多表选择策略失效:历史表与预测表未合并时,选表策略效果差,因为两表仅年份统计粒度差异导致特征配置失效。
- 时间字段格式不兼容:原始时间字段为 “2021 年 Q4” 类字符串,无法直接转换为日期格式,导致模型抽取年度 / 季度时出错。
- 多枚举值字段理解偏差:
- 价格段字段:包含 40 + 个数值区间(如 0-25 美元、25-50 美元),纯数字符号描述(如 “0<25”)导致模型召回不准确;枚举值过长时,宽域筛选易漏选或报错。
| - 强制合并多表:统一历史表与预测表字段,通过字段映射解决统计粒度差异,简化选表逻辑,提升模型关联效率。
- 标准化时间格式:将 “年份 + 季度” 字符串转换为 “YYYY-MM-DD” 格式(如 “2021 年 Q4” 转为 “2021-12-31”),确保模型稳定识别日期字段。
- 处理多枚举值字段:
- 补充业务描述:在价格段字段值中增加 “美元” 等单位描述(如 “0-25 美元”),强化模型语义理解。
- 转换为数值型字段:计算价格段中值(如 0-25 美元取 12.5),通过数值区间筛选(如 “<100 美元”)替代枚举值匹配,解决漏选及报错问题。
|
选表与字段召回问题 | - 多表场景下,模型对表关联逻辑模糊,字段同义词及业务描述不足,导致选表错误或字段匹配失效。
| - 构建语义模型知识库:定义表特征(如 “历史销量表” 标注 “2021-2024 年数据”)、字段同义词(如 “出货量” 同义 “销量”)及业务描述(如 “价格段” 说明 “手机售价区间”),强制引导模型精准召回。
|
SQL 生成 | - 复杂问题(含多字段计算)触发模型概率性生成 SQL,语法错误、嵌套逻辑异常或转写模块限制(如仅执行单段 SQL)导致 50% 以上的报错率,且无明显规律。
| - 沉淀计算层知识库:针对高频报错指标(如 “渗透率”),明确最优 SQL 写法(如 “优先使用窗口函数计算”),通过肯定式陈述语句引导模型生成合规 SQL,避免否定式限制(如 “禁止多层嵌套”)导致的扩散错误。
- 案例对比分析:收集成功与失败 SQL 案例,对比语法差异(如子查询 vs 聚合函数),针对性补充业务规则(如 “多条件筛选时优先使用 JOIN 关联”)。
- 系统级输出规范:在 Prompt 中强制要求保留小数点、添加单位(如 “美元”“台”),统一输出格式。
|
实践4:场景指标定义和计算公式参考
基础指标定义
指标名称 | 英文缩写 | 计算公式 | 说明 |
|---|
展示量 | Impression | 广告展示的总次数 | 衡量广告覆盖面 |
点击量 | Click | 用户点击广告的总次数 | 衡量广告吸引力 |
点击率 | CTR | 点击量 ÷ 展示量 × 100% | 衡量素材效果 |
安装量 | Install | 用户安装应用的总数量 | 衡量转化效果 |
安装率 | IR | 安装量 ÷ 点击量 × 100% | 衡量落地页效果 |
单次安装成本 | CPI | 总花费 ÷ 安装量 | 衡量获客成本 |
投资回报率 | ROI | LTV ÷ CPI × 100% | 衡量投放效率 |
高阶指标定义
指标名称 | 英文缩写 | 计算公式 | 说明 |
|---|
用户生命周期价值 | LTV | ARPU × 生命周期天数 | 用户总价值 |
平均每用户收入 | ARPU | 总收入 ÷ 总用户数 | 用户价值密度 |
付费用户平均收入 | ARPPU | 总收入 ÷ 付费用户数 | 付费用户价值 |
留存率 | Retention | 留存用户数 ÷ 新增用户数 × 100% | 用户质量指标 |
付费率 | Pay Rate | 付费用户数 ÷ 总用户数 × 100% | 付费转化效率 |
同环比计算方法
环比增长率:$$ 环比增长率 = \frac{本期数值 - 上期数值}{上期数值} \times 100%$$
同比增长率:$$ 同比增长率 = \frac{本期数值 - 去年同期数值}{去年同期数值} \times 100%$$
常见问题与注意事项
注意事项 | 说明 | 问题数据集示例 | 未处理的负面影响 |
|---|
保证表名,字段名称唯一无歧义 | - 数据集中的字段使用中文别名时需要唯一
- 规避近似模糊含义的字段,多余字段直接删除
- 需要保证每一个数据集的命名完整且可表示数据实际含义
- 如果存在多个相关联的指标分散在多表之中,建议做合并表操作
- 需要保证同一个数据集中,以及所有数据集中,对应的指标命名不能重复,需要区分
| 说明 订单ID/order_id代表订单表主键ID
订单号/order_num是业务单据号 说明 订单表/订货表,可以改写为订单统计表,发货明细表等明细表述 说明 多个表中都存在订单金额,订货金额与合同金额,分析主体以合同为主,汇总为一个合同的总表,关联合同下各订单与发货金额数据 | 模型可能会使用相似字段名称进行理解和答复,导致结果不精准。 |
设置字段中文别名 | - 数据库中的字段可能是英文的,如果中文提问则需要维护对应的中文字段名
- 如果需要双语提问,优先考虑两套数据集分别负责中英文;如必须一套则需要保证中英文翻译准确完整并辅助描述信息
| | 模型将无法完美地将您的中文自然语言与英文字段进行对应,也就无法给出令人满意的答案 |
设置准确的字段类型(如日期时间、地理信息等) | - 需要根据您设置的字段类型,进行关键词识别、匹配和处理,因此对于日期、时间、地理纬度相关字段,您需要在数据集页面进行数据类型转换
- 如果数据集中有和业务场景不相关的时间字段,推荐直接删除防止干扰
| 说明 日期时间格式配置
订单创建时间:文本
其他时间字段:日期格式
模型会高倾向优先使用日期时间类字段 说明 case2:统计类报表,没有时间日期格式,只有统计周期年 和 月
方式1:创建一个日期字段,CAST(toString(年)
方式2:年和月设置为数字型,并配合描述说明 | 模型无法准确选择召回需要的时间日期字段
产出的sql使用了命令无法适配,造成输出报错 |
设置清晰的字段描述 | - 数据集中的字段可以设置描述信息,您可以在描述中添加具有业务含义的中文描述,同时注意描述内容需要唯一
- 描述一般结构:含义/别名/范围/举例/特例;
- 描述配置后,T+1生效;一般半夜1点前跑完,数据量大可能验收
| 说明 case1:统一厂商
汽车主机厂名称,例如字节跳动,字节代表字节跳动 说明 case2:统一新能源类型
指汽车的能源类型,包括PET指汽油车,EV指电动车,HEV指混合动力汽车,PHEV指插电式混动汽车 说明 case3:月
月份,包括01-12,03代表3月 | 模型无法准确选择召回准确的字段 |
数据集-添加新的计算字段 | - 需要在提问中对已有维度和指标之外的字段进行提问,则需要在数据集中根据新字段的计算逻辑点击「添加字段」,从而「新增计算维度」或者「新增计算指标」
- 计算字段所需的因子字段,需要同时出现在数据集中
- 同时一些特定同环比,上期等和日期相关的计算字段,最好是通过指标的形式呈现
- 最后,如果有一些复杂的时间聚合计算字段,最好通过数据集提前加工的方式处理
| 说明 线索转化率字段,需要做计算字段 - 计算口径:转订单线索/线索数,也可以是转订单线索/有效线索数
- 不可直接聚合:avg(1月转化率+2月转化率)≠1~2月的转化率
说明 同环比,上期,本期的概念字段,最好是直接通过数据集提供,不做额外配置 | - 无法直接识别和分析未知的维度或指标,而无法返回
- 错误处理了需要实时计算的字段,而返回不够准确的结果
|
Flag类型字段符合布尔值规则 | - 布尔结构的内容真和假两种结果,可以使用0/1,true/false,是/否来标志
- 相关标志方式,如果不能准确识别,可以在描述内补充说明
- 非标的描述方式需要提前转化
| 说明 是否为保养:0/1
描述:标识进厂维修工单是否为保养类型的flag,0代表不是,1代表是 是否为保养描述:非保养回厂/保养回厂
推荐直接删除易混淆字段 | 模型无法准确识别一些业务条件判单 |